Toán tử logic và so sánh JavaScript
Các toán tử so sánh và logic được sử dụng để kiểm tra true
hay false
.
Toán tử so sánh
Toán tử so sánh được sử dụng trong các câu lệnh logic để xác định sự bằng nhau hoặc khác biệt giữa các biến hoặc giá trị.
Cho rằng x = 5
, bảng dưới đây giải thích các toán tử so sánh:
Operator | Description | Comparing | Returns | Try it |
---|---|---|---|---|
== | equal to | x == 8 | false | Try it » |
x == 5 | true | Try it » | ||
x == "5" | true | Try it » | ||
=== | equal value and equal type | x === 5 | true | Try it » |
x === "5" | false | Try it » | ||
!= | not equal | x != 8 | true | Try it » |
!== | not equal value or not equal type | x !== 5 | false | Try it » |
x !== "5" | true | Try it » | ||
x !== 8 | true | Try it » | ||
> | greater than | x > 8 | false | Try it » |
< | less than | x < 8 | true | Try it » |
>= | greater than or equal to | x >= 8 | false | Try it » |
<= | less than or equal to | x <= 8 | true | Try it » |
Làm thế nào có thể sử dụng nó
Toán tử so sánh có thể được sử dụng trong câu lệnh điều kiện để so sánh các giá trị và thực hiện hành động tùy thuộc vào kết quả:
if (age < 18) text = "Too young to buy alcohol";
Bạn sẽ tìm hiểu thêm về cách sử dụng câu lệnh điều kiện trong chương tiếp theo của hướng dẫn này.
Toán tử logic
Toán tử logic được sử dụng để xác định logic giữa các biến hoặc giá trị.
Cho rằng x = 6
và y = 3
, bảng dưới đây giải thích các toán tử logic:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | Try it » |
|| | or | (x == 5 || y == 5) is false | Try it » |
! | not | !(x == y) is true | Try it » |
Toán tử có điều kiện (Ternary)
JavaScript cũng chứa toán tử điều kiện gán giá trị cho biến dựa trên một số điều kiện.
Cú pháp
variablename = ( condition ) ? value1 : value2
Ví dụ
let voteable = (age < 18) ? "Too young":"Old enough";
Hãy tự mình thử »Nếu biến tuổi có giá trị dưới 18 thì giá trị của biến có thể bỏ phiếu sẽ là "Quá trẻ", nếu không giá trị của biến có thể bỏ phiếu sẽ là "Đủ cũ".
So sánh các loại khác nhau
So sánh dữ liệu thuộc các loại khác nhau có thể cho kết quả không mong muốn.
Khi so sánh một chuỗi với một số, JavaScript sẽ chuyển đổi chuỗi thành số khi thực hiện so sánh. Một chuỗi trống chuyển đổi thành 0. Một chuỗi không phải số chuyển đổi thành NaN
luôn luôn false
.
Case | Value | Try |
---|---|---|
2 < 12 | true | Try it » |
2 < "12" | true | Try it » |
2 < "John" | false | Try it » |
2 > "John" | false | Try it » |
2 == "John" | false | Try it » |
"2" < "12" | false | Try it » |
"2" > "12" | true | Try it » |
"2" == "12" | false | Try it » |
Khi so sánh hai chuỗi, “2” sẽ lớn hơn “12”, vì (theo bảng chữ cái) 1 nhỏ hơn 2.
Để đảm bảo kết quả phù hợp, các biến phải được chuyển đổi thành loại phù hợp trước khi so sánh:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
Hãy tự mình thử »Toán tử hợp nhất Nullish (??)
Các ??
toán tử trả về đối số đầu tiên nếu nó không có giá trị rỗng ( null
hoặc undefined
).
Nếu không nó sẽ trả về đối số thứ hai.
Toán tử nullish được hỗ trợ trong tất cả các trình duyệt kể từ tháng 3 năm 2020:
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Feb 2020 | Feb 2020 | Jan 2020 | Mar 2020 | Mar 2020 |
Toán tử chuỗi tùy chọn (?.)
Các ?.
toán tử trả về undefined
nếu một đối tượng undefined
hoặc null
(thay vì đưa ra lỗi).
Ví dụ
// Create an object:
const car = {type:"Fiat", model:"500", color:"white"};
// Ask for car name:
document.getElementById("demo").innerHTML = car?.name;
Hãy tự mình thử »Toán tử chuỗi tùy chọn được hỗ trợ trong tất cả các trình duyệt kể từ tháng 3 năm 2020:
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Feb 2020 | Feb 2020 | Jan 2020 | Mar 2020 | Mar 2020 |