Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Nên dùng == hay === trong JavaScript?

== (Abstract Equality)

Thực hiện ép kiểu (type coercion) trước khi so sánh.

5 == "5"      // true
0 == false    // true
null == undefined // true
"" == 0       // true

=== (Strict Equality)

So sánh cả kiểu và giá trị, không ép kiểu.

5 === "5"     // false
0 === false   // false
null === undefined // false
"" === 0      // false

Quy tắc ép kiểu của == (rút gọn)

  • Null/Undefined: chỉ bằng nhau.
  • Số vs Chuỗi: chuỗi → số.
  • Boolean → Số (true=1, false=0).
  • Object → Primitive (valueOf/toString).

Khuyến nghị mạnh mẽ

Luôn dùng === (và !==) trừ khi có lý do rõ ràng cần ép kiểu. Code dễ đọc, ít bug, hiệu năng tương đương.

Ngoại lệ hiếm

Kiểm tra null/undefined cùng lúc: value == null (chỉ true cho null hoặc undefined). Nhiều codebase cho phép ngoại lệ này.