JavaScript - Comparison Operators

Xin chào các bạn, những pháp sư JavaScript tương lai! Hôm nay, chúng ta sẽ cùng lặn vào thế giới kỳ diệu của các toán tử so sánh. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ là người hướng dẫn thân thiện của bạn trong hành trình thú vị này. Vậy, hãy cầm lên những枝杖 của bạn (tức là bàn phím), và cùng bắt đầu nào!

JavaScript - Comparison Operators

JavaScript Comparison Operators

Các toán tử so sánh giống như những người trọng tài trong thế giới lập trình. Họ nhìn vào hai giá trị và quyết định mối quan hệ giữa chúng. Có phải chúng bằng nhau không? Có phải một giá trị lớn hơn giá trị còn lại không? Các toán tử này giúp chúng ta ra quyết định trong mã của mình, tương tự như cách chúng ta ra quyết định trong cuộc sống thực.

Hãy cùng nhìn qua tất cả các toán tử so sánh mà chúng ta sẽ thảo luận hôm nay:

Toán tử Tên Ví dụ
== Bằng x == y
!= Không bằng x != y
=== Bằng chặt x === y
!== Không bằng chặt x !== y
> Lớn hơn x > y
>= Lớn hơn hoặc bằng x >= y
< Nhỏ hơn x < y
<= Nhỏ hơn hoặc bằng x <= y

Làm thế nào để so sánh?

Trước khi chúng ta đi sâu vào từng toán tử, hãy hiểu cách JavaScript so sánh các giá trị. Nó không quá khác biệt so với cách chúng ta so sánh các thứ trong cuộc sống thực!

  1. Nếu chúng ta đang so sánh các số, nó rất đơn giản. JavaScript kiểm tra số nào lớn hơn.
  2. Đối với các chuỗi, JavaScript so sánh chúng ký tự bằng ký tự, dựa trên giá trị Unicode của chúng.
  3. Nếu chúng ta đang so sánh các kiểu khác nhau (như một số và một chuỗi), JavaScript thường cố gắng chuyển đổi một kiểu sang kiểu khác trước khi so sánh.

Bây giờ, hãy cùng nhìn vào từng toán tử chi tiết.

JavaScript Equality (==) Operator

Toán tử bằng (==) kiểm tra xem hai giá trị có bằng nhau không, nhưng nó linh hoạt một chút. Nó có thể chuyển đổi kiểu trước khi so sánh. Hãy xem một số ví dụ:

console.log(5 == 5);     // true
console.log(5 == "5");   // true
console.log(true == 1);  // true
console.log(null == undefined);  // true

Trong ví dụ đầu tiên, rõ ràng là chúng ta nhận được true. Trong ví dụ thứ hai, JavaScript chuyển đổi chuỗi "5" thành số trước khi so sánh. Ví dụ thứ ba có thể làm bạn ngạc nhiên - JavaScript coi true là 1 và false là 0. Ví dụ cuối cùng cho thấy nullundefined được coi là bằng nhau với toán tử ==.

JavaScript Inequality (!=) Operator

Toán tử không bằng (!=) giống như đối tác ngược lại của ==. Nó kiểm tra xem hai giá trị có không bằng nhau không.

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

Giống như ==, nó cũng thực hiện chuyển đổi kiểu trước khi so sánh.

JavaScript Strict Equality (===) Operator

Bây giờ, hãy gặp toán tử bằng chặt (===). Toán tử này giống như anh chị em严格的 hơn của ==. Nó không chỉ kiểm tra giá trị mà còn đảm bảo rằng các kiểu cũng giống nhau.

console.log(5 === 5);     // true
console.log(5 === "5");   // false
console.log(true === 1);  // false
console.log(null === undefined);  // false

Thấy sao kết quả khác với ==? Toán tử bằng chặt không thực hiện bất kỳ chuyển đổi kiểu nào.

Strict Inequality (!==) Operator

Toán tử không bằng chặt (!==) là đối tác ngược lại của ===. Nó kiểm tra xem hai giá trị có không bằng nhau về giá trị hoặc kiểu không.

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

JavaScript Greater Than (>) Operator

Toán tử lớn hơn (>) kiểm tra xem giá trị bên trái có lớn hơn giá trị bên phải không.

console.log(10 > 5);   // true
console.log(5 > 10);   // false
console.log(10 > 10);  // false
console.log("b" > "a");  // true (so sánh theo giá trị Unicode)

Nhớ rằng, khi so sánh các chuỗi, nó dựa trên giá trị Unicode của chúng, không phải thứ tự từ điển!

Greater Than or Equal (>=) Operator

Toán tử lớn hơn hoặc bằng (>=) kiểm tra xem giá trị bên trái có lớn hơn hoặc bằng giá trị bên phải không.

console.log(10 >= 5);   // true
console.log(10 >= 10);  // true
console.log(5 >= 10);   // false

JavaScript Less Than (<) Operator

Toán tử nhỏ hơn (<) kiểm tra xem giá trị bên trái có nhỏ hơn giá trị bên phải không.

console.log(5 < 10);   // true
console.log(10 < 5);   // false
console.log(10 < 10);  // false

JavaScript Less Than or Equal (<=) Operator

Toán tử nhỏ hơn hoặc bằng (<=) kiểm tra xem giá trị bên trái có nhỏ hơn hoặc bằng giá trị bên phải không.

console.log(5 <= 10);   // true
console.log(10 <= 10);  // true
console.log(10 <= 5);   // false

So sánh null, undefined và NaN

So sánh các giá trị đặc biệt như null, undefined, và NaN có thể là một điều khó khăn. Hãy xem một số ví dụ:

console.log(null == undefined);  // true
console.log(null === undefined);  // false
console.log(NaN == NaN);  // false
console.log(NaN === NaN);  // false
console.log(null > 0);  // false
console.log(null == 0);  // false
console.log(null >= 0);  // true

Hành vi với nullundefined có thể làm bạn ngạc nhiên. NaN không bằng bất kỳ thứ gì, ngay cả chính nó! Và null trong các phép so sánh được chuyển đổi thành 0, nhưng không trong các phép kiểm tra bằng.

Và thế là bạn đã cùng nhau hành trình qua vùng đất của các toán tử so sánh JavaScript. Nhớ rằng, thực hành là cách tốt nhất để thành thạo, vì vậy đừng ngần ngại thử nghiệm các toán tử này trong mã của bạn. Chúc các bạn may mắn!

Credits: Image by storyset