Toán tử so sánh (Operator comparison)

Thumbnail Image

Toán tử so sánh là các ký hiệu toán học được sử dụng để so sánh giá trị của hai biến hoặc hằng số và trả về một giá trị boolean (true hoặc false) để chỉ ra liệu chúng có bằng nhau, lớn hơn hoặc nhỏ hơn nhau. Các toán tử so sánh thường được sử dụng trong các biểu thức điều kiện và vòng lặp để kiểm tra giá trị của biến và thực hiện các hành động khác nhau tùy thuộc vào kết quả của phép so sánh. Các toán tử so sánh phổ biến trong JavaScript bao gồm: ==, !=, >, <, >=, và <=.

 

1. So sánh bằng (==)

Toán tử so sánh bằng (==) trong JavaScript được sử dụng để so sánh giá trị của hai toán hạng với nhau, nếu chúng có cùng giá trị thì kết quả trả về là true, ngược lại thì là false.

Cú pháp: x == y

Trong đó:

  • xy là hai toán hạng cần so sánh.

Ví dụ:

let x = 5;
let y = "5";
console.log(x == y); // true

Giải thích: Dù x có kiểu dữ liệu là số nguyên và y có kiểu dữ liệu là chuỗi, nhưng giá trị của chúng đều là "5", vì vậy khi sử dụng toán tử so sánh bằng (==) sẽ trả về kết quả là true.

Lưu ý: Toán tử so sánh bằng (==) chỉ so sánh giá trị của hai toán hạng, không quan tâm đến kiểu dữ liệu của chúng. Do đó, nếu bạn muốn so sánh giá trị và kiểu dữ liệu của hai toán hạng với nhau, hãy sử dụng toán tử so sánh tuyệt đối (===).

 

2. So sánh tương đương về giá trị và kiểu dữ liệu (===)

Toán tử so sánh tương đương về giá trị và kiểu dữ liệu (===) được sử dụng để so sánh hai giá trị và kiểu dữ liệu của chúng. Toán tử này trả về giá trị true nếu hai giá trị và kiểu dữ liệu của chúng là giống nhau, và trả về giá trị false nếu chúng khác nhau.

Cú pháp: a === b

Trong đó:

  • a và b là hai giá trị cần được so sánh

Ví dụ:

console.log(5 === 5); // true
console.log("5" === 5); // false
console.log(5 === "5"); // false
console.log(5 === 6); // false

Lưu ý: Toán tử so sánh tương đương về giá trị và kiểu dữ liệu (===) nên được sử dụng thay cho toán tử so sánh bằng (==) trong hầu hết các trường hợp để tránh những kết quả không mong muốn.

 

3. So sánh khác (!=)

Toán tử so sánh khác (!=) dùng để kiểm tra xem hai giá trị có khác nhau hay không. Nếu giá trị bên trái khác với giá trị bên phải, thì toán tử sẽ trả về giá trị true, nếu không sẽ trả về giá trị false.

Ví dụ:

console.log(5 != 3); // true
console.log(5 != 5); // false

Trong ví dụ đầu tiên, 5 khác 3 nên kết quả là true. Trong ví dụ thứ hai, 5 không khác 5 nên kết quả là false.

 

4. So sánh khác về giá trị hoặc kiểu dữ liệu (!==)

Toán tử so sánh khác về giá trị hoặc kiểu dữ liệu (!==) trong JavaScript được sử dụng để kiểm tra xem hai giá trị có khác nhau về giá trị hoặc kiểu dữ liệu hay không. Nó trả về giá trị true nếu hai giá trị khác nhau về giá trị hoặc kiểu dữ liệu và ngược lại, trả về giá trị false nếu hai giá trị bằng nhau về giá trị hoặc kiểu dữ liệu.

Cú pháp:

x !== y

Trong đó, x và y là hai giá trị cần so sánh.

Ví dụ:

let a = 10;
let b = '10';
console.log(a !== b); //true, vì a và b khác kiểu dữ liệu

Trong ví dụ trên, biến a có kiểu dữ liệu là number, còn biến b có kiểu dữ liệu là string. Toán tử !== sẽ trả về true vì a và b khác kiểu dữ liệu.

 

5. So sánh lớn hơn (>), nhỏ hơn (<), lớn hơn hoặc bằng (>=), nhỏ hơn hoặc bằng (<=)

Toán tử so sánh lớn hơn (>) và nhỏ hơn (<) được sử dụng để so sánh giá trị của hai biểu thức số với nhau. Kết quả của phép so sánh này là một giá trị boolean - true nếu biểu thức đứng trước toán tử lớn hơn hoặc nhỏ hơn biểu thức đứng sau, ngược lại là false.

Ví dụ:

console.log(5 > 3); // true
console.log(5 < 3); // false
console.log(5 > 5); // false
console.log(5 < 5); // false

Ngoài ra, còn có thể sử dụng toán tử lớn hơn hoặc bằng (>=) và nhỏ hơn hoặc bằng (<=) để kiểm tra xem hai giá trị có bằng nhau hoặc lớn hơn/bằng nhau hay không.

Ví dụ:

console.log(5 >= 5); // true
console.log(5 <= 3); // false
console.log(5 <= 5); // true
console.log(5 >= 7); // false

Lưu ý: Khi so sánh hai chuỗi bằng toán tử lớn hơn hoặc nhỏ hơn, JavaScript sẽ so sánh giá trị của các ký tự trong chuỗi dựa trên mã Unicode của chúng.

Ví dụ: 

let str1 = "apple";
let str2 = "banana";

console.log(str1 < str2); // true
console.log(str1 > str2); // false

Trong ví dụ trên, giá trị Unicode của ký tự "a" trong chuỗi "apple" là 97 và giá trị Unicode của ký tự "b" trong chuỗi "banana" là 98. Vì vậy, khi so sánh, chuỗi "apple" nhỏ hơn chuỗi "banana" vì giá trị Unicode của ký tự đầu tiên trong chuỗi "apple" nhỏ hơn giá trị Unicode của ký tự đầu tiên trong chuỗi "banana".