Bạn có thể đã thấy các dấu bằng gấp đôi và gấp ba trong JavaScript. Nhưng họ muốn nói gì?
Vâng trong ngắn hạn: ==
vốn đã chuyển đổi loại và ===
không chuyển đổi loại.
Bằng kép (==
) chỉ kiểm tra sự bằng nhau về giá trị. Nó vốn đã ép buộc kiểu. Điều này có nghĩa là trước khi kiểm tra các giá trị, nó sẽ chuyển đổi các loại biến để khớp với nhau.
Mặt khác, Ba Bằng (===
) không thực hiện ép kiểu. Nó sẽ xác minh xem các biến được so sánh có cùng giá trị hay không VÀ cùng loại.
OK – vậy hãy giúp bạn hiểu rõ hơn về sự khác biệt thông qua một vài ví dụ. Đối với mỗi trong số này, hãy xem xét đầu ra của những câu lệnh này sẽ là gì.
Ví dụ 1:
const foo = "test"
const bar = "test"
console.log(foo == bar) //true
console.log(foo === bar) //true
Giá trị và loại của cả hai foo
và bar
cũng vậy. Do đó kết quả là true
cho cả hai.
Ví dụ 2:
const number = 1234
const stringNumber="1234"
console.log(number == stringNumber) //true
console.log(number === stringNumber) //false
Giá trị của number
và stringNumber
trông giống nhau ở đây. Tuy nhiên, loại number
Là Number
và loại stringNumber
Là string
. Mặc dù các giá trị giống nhau, nhưng loại không giống nhau. Do đó một ==
kiểm tra trả lại true
nhưng khi kiểm tra giá trị và loại, giá trị là false
.
Ví dụ 3:
console.log(0 == false) //true
console.log(0 === false) //false
Lý do: cùng giá trị, khác loại. Loại cưỡng chế
Đây là một trường hợp thú vị. Giá trị của khi kiểm tra với
false
cũng vậy. Nó là như vậy bởi vì và
false
có cùng giá trị đối với JavaScript, nhưng khi được kiểm tra loại và giá trị, giá trị là sai vì là một
number
và false
Là boolean
.
Ví dụ 4:
const str = ""
console.log(str == false) //true
console.log(str === false) //false
Giá trị của chuỗi rỗng và false
giống nhau trong JavaScript. Vì thế, ==
trả về true. Tuy nhiên, loại là khác nhau và do đó ===
trả về sai.
Khi nào bạn nên sử dụng ==
và khi nào bạn nên sử dụng ===
?
Khi nghi ngờ, hãy sử dụng ===
. Điều này sẽ cứu bạn khỏi rất nhiều lỗi tiềm ẩn.
Nếu bạn đang hỗ trợ một trường hợp sử dụng mà bạn có thể khoan dung một chút về loại dữ liệu đến, thì hãy sử dụng ==
. Ví dụ: nếu một API chấp nhận cả hai "true"
và true
từ khách hàng, sử dụng ==
. Tóm lại là không dùng ==
trừ khi bạn có một trường hợp sử dụng mạnh mẽ cho nó.
Đây là một bảng sự thật JavaScript hữu ích để bạn tham khảo và để cho bạn thấy sự bình đẳng phức tạp như thế nào trong JavaScript:

Nếu bạn thích bài viết này, hãy nhớ theo dõi tôi trên twitter để cập nhật.
Q: Bao nhiêu không gian sẽ được giải phóng sau khi Anh rời EU?
.
.
.Đáp: 1 GB#DevJoke #Không phải là một trò đùa
– Shruti Kapoor (@shrutikapoor08) 4 tháng 10, 2019