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ánhTrả về
==bằng nhaux == 8false
x == 5true
x == “5”true
===bằng về giá trị và kiểux === 5true
x === “5”false
!=không bằng nhaux != 8true
!==không bằng về giá trị hoặc không bằng về kiểux !== 5false
x !== “5”true
x !== 8true
>lớn hơnx > 8false
<nhỏ hơnx < 8true
>=lớn hơn hoặc bằngx >= 8false
<=nhỏ hơn hoặc bằngx <= 8true

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ợpGiá trị
2 < 12true
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
&ANDx = 5 & 10101 & 000100011
|ORx = 5 | 10101 | 000101015
~NOTx = ~ 5 ~0101101010
^XORx = 5 ^ 10101 ^ 000101004
<<Left shiftx = 5 << 10101 << 1101010
>>Right shiftx = 5 >> 10101 >> 100102

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

Leave a Comment