Bây giờ, mối quan tâm chính của chúng ta là tìm hiểu sự khác biệt giữa các toán tử '==' và '===' mà javascript cung cấp, mặc dù chúng trông giống nhau nhưng chúng rất khác nhau
- Toán tử JavaScript '=='. Trong Javascript, toán tử ‘==’ còn được gọi là toán tử đẳng thức lỏng lẻo, chủ yếu được sử dụng để so sánh hai giá trị ở cả hai phía rồi trả về true hoặc false. Toán tử này chỉ kiểm tra đẳng thức sau khi chuyển đổi cả hai giá trị thành một loại chung i. e loại cưỡng chế
Ghi chú. Ép buộc loại có nghĩa là hai giá trị chỉ được so sánh sau khi cố gắng chuyển đổi chúng thành cùng một loại. Hãy xem xét tất cả các giá trị trong đó toán tử '==' sẽ trả về true
Giá trị Boolean của chữ trong quá trình so sánh
Thật
- '0'
- 'false' // false được gói trong chuỗi
- []
- {}
- chức năng[]{}
Sai
- ” hoặc “” // chuỗi rỗng
- sai
- 0
- vô giá trị
- không xác định
- NaN // không phải là số
ví dụ 1.
jav
false false false false5
false false false false6
false false false false7
false false false false6
false false false false9
false false false false6
false false false false0
false false false false1
false false false false2
false false false false6
false false false false4
false false false false5
false false false false6
false false false false5
false false false false2
false false false false6
false false false false4
true true true1
true true true2
false false false false6
false false false false4
true true true5
true true true6
false false false false6
false false false false4
true true true9
false false false false60
false false false false61
đầu ra. Trong đoạn mã trên, khi chúng ta so sánh 21 với '21', javascript sẽ chuyển đổi '21' thành giá trị số là 21 và do đó chúng ta nhận được giá trị true, điều tương tự cũng xảy ra khi chúng ta cố kiểm tra xem 'true == 1' .
Trường hợp của [null == undefined] là đặc biệt vì khi chúng ta so sánh các giá trị này, chúng ta nhận được true. Cả null và undefined đều là giá trị sai và chúng đại diện cho giá trị 'trống' hoặc không xác định trong js, do đó phép so sánh với toán tử '==' trả về true
false false false false8
Bây giờ, hãy xem xét tất cả các giá trị mà toán tử '==' sẽ trả về false
ví dụ 2. Trong mã này khi chúng ta so sánh null với false, chúng ta nhận được false, vì null là kiểu dữ liệu nguyên thủy nên nó không bao giờ có thể bằng giá trị boolean, mặc dù chúng thuộc cùng một nhóm false
jav
false false false false5
false false false false63
false false false false7
false false false false63
false false false false66
false false false false63
false false false false0____169
false false false false2
false false false false63
false false false false4
true true true1
true true true6
false false false false63
false false false false4
true true true9
false false false false6
true true true5
false false false false2
false false false false61
đầu ra
false false false false
Toán tử JavaScript '==='. Còn được gọi là toán tử đẳng thức nghiêm ngặt, nó so sánh cả giá trị và loại, đó là lý do tại sao có tên là "bình đẳng nghiêm ngặt"
ví dụ 1. Hãy xem một số mã trong đó toán tử '===' sẽ trả về true
jav
false false false false61
_______56____564
false false false false6
false false false false4
false false false false67
false false false false68
false false false false67
false false false false2
false false false false6
false false false false4
true true true1
false false false false68
true true true1
false false false false2
_______56____578
false false false false61
đầu ra
true true true
ví dụ 2. Chỉ cần kiểm tra các loại và giá trị ở cả hai bên và sau đó chỉ cần in ra giá trị boolean đúng hoặc sai. Một số ví dụ mà nó sẽ trả về false
jav
false false false false5
_______56____564
false false false false6
false false false false4
true true true1
false false false false66
false false false false6
false false false false4
true true true1
false false false false68
false false false false91
false false false false2
false false false false6
false false false false94____595
false false false false2
false false false false61
đầu ra
false false false false6
Vui lòng xem qua bài viết về Sự khác biệt giữa gấp đôi bằng và gấp ba bằng JavaScript để so sánh các toán tử '===' và '=='