HomeLập trìnhJavaScriptJavaScript Ba dấu...

JavaScript Ba dấu bằng VS Dấu bằng kép – Các toán tử so sánh được giải thích bằng các ví dụ


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 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 foobar 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 numberstringNumber trông giống nhau ở đây. Tuy nhiên, loại numberNumber và loại stringNumberstring. 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 truenhưng khi kiểm tra giá trị 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ế

Đọc thêm  Chuỗi thành số trong JavaScript – Chuyển chuỗi thành số nguyên trong JS

Đâ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ì false có cùng giá trị đối với JavaScript, nhưng khi được kiểm tra loại giá trị, giá trị là sai vì là một numberfalseboolean.

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"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:

hình ảnh-6
Nguồn: https://dorey.github.io/JavaScript-Equality-Table/

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.





Zik.vn – Biên dịch & Biên soạn Lại

Đọc thêm  Thay đổi văn bản bằng javaScript onClick trợ giúp!
spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status