Double equals operator là gì?

Noun Javascript
double equals loose equality
Toán tử hai dấu bằng

Trong Javascript, toán tử hai dấu bằng (double equals operator) "==" cố gắng thực hiện chuyển đổi kiểu (type conversion) nếu các kiểu dữ liệu (type) khác nhau và sau đó so sánh để xem có bằng nhau không. Nếu các kiểu dữ liệu khác nhau, một hoặc cả hai toán hạng trước tiên được chuyển đổi thành một kiểu dữ liệu chung. Các quy tắc chuyển đổi kiểu phức tạp và phụ thuộc vào loại đối số

Ví dụ: khi so sánh chuỗi "0" và số 0, đối số đầu tiên được chuyển đổi đầu tiên thành một số.


"0" == 0 // becomes
ToNumber("0") === 0

Mặc dù so sánh chuỗi và số là có thể hiểu được, nhưng các quy tắc phức tạp cho các kiểu dữ liệu khác dẫn đến kết quả phi logic. Ví dụ: hãy xem các so sánh giữa null, undefined và false:


false == undefined // false
false == null      // false
null == undefined  // true

Learning English Everyday