Junior #coercion#equality#truthy-falsy
`==` và `===` khác nhau thế nào? Type coercion hoạt động ra sao?
⚡ Trả lời nhanh
`===` so sánh giá trị và kiểu, không ép kiểu. `==` ép kiểu (type coercion) theo quy tắc phức tạp trước khi so sánh nên cho kết quả khó đoán, ví dụ `[] == false` là true. Mặc định dùng `===`; chỉ `x == null` là cách viết gọn hợp lý cho null và undefined.
Giải thích
===(strict equality): khác kiểu thì false ngay, không ép kiểu.==(loose equality): nếu khác kiểu thì ép về primitive/number rồi so sánh. Ngoại lệ đặc biệt:null == undefinedlà true và chúng không==với giá trị nào khác.NaNkhông bằng chính nó; dùngNumber.isNaNhoặcObject.is.Object.isphân biệt+0và-0.
main.js · sửa được