Những điều bất ngờ cần phải chú ý khi bạn viết code javascript
1. So sánh 2 gía trị bằng nhau Trong javascript có thể so sánh giá trị bằng dầu (==) hoặc (===). Nhưng nó có một chút sợ biệt về việc sử dụng dùng 2 dầu bằng (==) "42" == 42 # true " 42 " == 42 # true Một bên là string còn một bên khác lá số, kết quả so sánh sẽ trả về true nếu giá ...
1. So sánh 2 gía trị bằng nhau Trong javascript có thể so sánh giá trị bằng dầu (==) hoặc (===). Nhưng nó có một chút sợ biệt về việc sử dụng
- dùng 2 dầu bằng (==)
"42" == 42 # true " 42 " == 42 # true
Một bên là string còn một bên khác lá số, kết quả so sánh sẽ trả về true nếu giá trị của 2 bên bằng nhau
- dùng 3 dầu bằng(===) (strict equal) Một số trường hợp cần thiết ví dụ validate..., nên sử dụng strict qual
" 42 " === 42 # false
2. Chú ý khi tính toán với kiểu số float
0.1 + 0.2 = 0.30000000000000004 0.1 * 0.2 = 0.020000000000000004 0.1 + 0.2 === 0.3 => false
Rất bất ngờ khi nhìn kết quả tính toán ở trên. Tại sao tổng không phải 0.3 và kết qủa nhân không phải 0.02? Không chỉ riêng javascript, các ngôn ngữ khác cũng tương tự. Nếu muốn biết tại sao bạn có thể tìm hiểu ở đây http://floating-point-gui.de/basic/
3. null có bằng 0 không? chắc chắn null sẽ không bằng 0 nhưng nếu thực hiện tính toán như bên dưới
null == 0 # false null > 0 # false null >= 0 # true null < 0 # false null <= 0 # true
theo tính toán tại sao lại null không bằng 0?