Trong JavaScript bạn có thể nhận thấy hai cách so sánh bằng giữa giá trị:
- Regular equals:
==(double equals) - Strict equals:
===(triple equals)
Sự khác biệt giữa double equals (==) và triple equals (===) là:
- Regular equals chỉ so sánh giá trị và bỏ qua kiểu giá trị type
- Strict equals so sánh cả giá trị và kiểu giá trị.
Ví dụ:
// trả về true 5 == "5" // trả về false 5 === "5"
Trong hai ví dụ trên, giá trị bên trái là kiểu số, bên phải là kiểu chuỗi (chỉ định bởi dấu ngoặc ' ').
Cả hai đều có giá trị năm nhưng một là số, một là chuỗi. Strict equals === chỉ trả true nếu cả hai giá trị và kiểu giá trị giống nhau.
Vì vậy cả hai ví dụ sau trả về true vì kiểu giá trị ở hai bên strict equals giống nhau:
// trả về true 5 === 5 // trả về true "5" === "5"