Toán tử So sánh và Logic được sử dụng để kiểm tra true
hoặc false
.
Các toán tử so sánh
Toán tử so sánh được sử dụng trong câu lệnh logic để xác định tính bằng nhau hoặc khác nhau giữa các biến hoặc giá trị.
Cho x giá trị là 5 (x = 5), bảng dưới đây giải thích các toán tử so sánh:
Toán tử | Mô tả | So sánh | Trả về |
---|---|---|---|
== | bằng nhau | x == 8 | false |
x == 5 | true | ||
x == “5” | true | ||
=== | bằng về giá trị và kiểu | x === 5 | true |
x === “5” | false | ||
!= | không bằng nhau | x != 8 | true |
!== | không bằng về giá trị hoặc không bằng về kiểu | x !== 5 | false |
x !== “5” | true | ||
x !== 8 | true | ||
> | lớn hơn | x > 8 | false |
< | nhỏ hơn | x < 8 | true |
>= | lớn hơn hoặc bằng | x >= 8 | false |
<= | nhỏ hơn hoặc bằng | x <= 8 | true |
Chúng có thể được sử dụng như thế nào?
Toán tử so sánh có thể được sử dụng trong câu lệnh điều kiện if else để so sánh các giá trị và thực hiện hành động dựa trên kết quả:
if (tuoi < 18) {text = "Còn non và xanh lắm";}
Bạn sẽ học nhiều hơn về sử dụng câu lệnh điều kiện trong chương kế tiếp.
Toán tử Logic
Toán tử logic được sử dụng để xác định logic giữa các biến và giá trị.
Cho x = 6 và y = 3, bảng dưới đây giải thích các toán tử logic:
Toán tử | Mô tả | Ví dụ |
---|---|---|
&& | và | (x < 10 && y > 1) is true |
|| | hoặc | (x == 5 || y == 5) is false |
! | phủ định | !(x == y) is true |
Toán tử logic của JS cũng rất giống với PHP.
Toán tử điều kiện ba ngôi
JavaScript cũng bao gồm toán tử điều kiện chỉ định giá trị cho biến dựa trên một số điều kiện.
Cú pháp:
variablename = (điều kiện) ? giá trị 1:giá trị 2
Ví dụ:
var voteable = (age < 18) ? "Quá trẻ":"Đủ tuổi";
Nếu biến age có giá trị dưới 18, giá trị của biến voteable
sẽ là “Quá trẻ”, ngược lại, giá trị của voteable
sẽ là “Đủ tuổi”.
Các kiểu so sánh khác nhau
So sánh dữ liệu với các kiểu khác nhau có thể dẫn tới các 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ố để tiến hành so sánh. Chuỗi rỗng sẽ được chuyển đổi thành 0. Một chuỗi không phải số sẽ được chuyển đổi thành NaN
với kết quả luôn là false
.
Trường hợp | Giá trị |
---|---|
2 < 12 | true |
2 < “12” | true |
2 < “Đức Anh” | false |
2 > “Đức Anh” | false |
2 == “Đức Anh” | false |
“2” < “12” | false |
“2” > “12” | true |
“2” == “12” | false |
Khi so sánh hai chuỗi, “2” sẽ lớn hơn “12”, bởi vì 1 nhỏ hơn 2 theo thứ tự abc.
Để đảm bảo kết quả phù hợp, các biến nên được chuyển đổi về kiểu dữ liệu thích hợp trước khi so sánh:
age = Number(age);
if (isNaN(age)) {
voteable = "Giá trị nhập vào lỗi";
}
else {
voteable = (age < 18) ? "Quá trẻ" : "Đủ tuổi";
}
Toán tử bitwise trong JavaScript
Toán tử Bit làm việc với các số 32-bit.
Kết quả được chuyển đổi trở lại về dạng số trong JavaScript.
Toán tử | Mô tả | Ví dụ | Giống như | Kết quả | Hệ thập phân |
---|---|---|---|---|---|
& | AND | x = 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | OR | x = 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | NOT | x = ~ 5 | ~0101 | 1010 | 10 |
^ | XOR | x = 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | Left shift | x = 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | Right shift | x = 5 >> 1 | 0101 >> 1 | 0010 | 2 |
Ví dụ trong bảng trên sử dụng 4 bits unsigned. Nhưng JavaScript sử dụng số 32-bit signed
Bởi vì điều đó, trong JavaScript, ~ 5 sẽ không trả về 10. Nó sẽ trả về -6:
~00000000000000000000000000000101 sẽ trả về 11111111111111111111111111111010
Ví dụ:
x = 5 & 1;
Kết quả trong x:
1
—
Ví dụ:
x = 5 | 1;
Kết quả trong x:
5
—
Ví dụ:
x = 5 >> 1;
Kết quả trong x:
2
—
Ví dụ:
x = 5 << 1;
Kết quả trong x:
10
—
Ví dụ:
x = ~ 5;
Kết quả trong x:
-6