Categories JavaScript

Các toán tử So sánh và Logic trong JavaScript

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 = 6y = 3, bảng dưới đây giải thích các toán tử logic:

Toán tử Mô tả Ví dụ
&& (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

Back to Top