Trong JavaScript, bạn có thể nhận thấy rằng bạn có hai cách để so sánh bình đẳng giữa các giá trị:
- Thông thường bằng:
==
(gấp đôi bằng) - Chặt chẽ bằng:
===
(ba bằng)
Sự khác biệt giữa double =(==
) và ba bằng (===
) là:
- Giá trị thông thường bằng chỉ so sánh các giá trị và bỏ qua giá trị loại
- Các dấu bằng nghiêm ngặt so sánh cả hai giá trị và các loại giá trị.
Ví dụ:
// returns true
5 == "5"
// returns false
5 === "5"
Trong hai ví dụ trên, giá trị ở bên trái là số loại giá trị, loại bên phải là chuỗi loại giá trị (được chỉ định bởi dấu ngoặc kép ' '
).
Cả hai đều có giá trị năm nhưng một là giá trị số, còn lại là giá trị chuỗi. Nghiêm bằng ===
chỉ đánh giá là true nếu cả hai giá trị và loại giá trị giống nhau.
Vì vậy, cả hai ví dụ này đều đánh giá / trả về true vì kiểu giá trị của chúng ở hai bên của dấu bằng nghiêm ngặt là giống nhau:
// returns true
5 === 5
// returns true
"5" === "5"