JavaScript 7 — Toán tử bình đẳng (== so với ===)

Apr 01 2023
Sự khác biệt giữa các toán tử đẳng thức Sự khác biệt chính giữa các toán tử đẳng thức == và === trong JavaScript như sau: So sánh các giá trị: Để so sánh hai giá trị về đẳng thức, bạn có thể sử dụng toán tử == hoặc ===, tùy thuộc vào việc bạn muốn thực hiện kiểu ép buộc hay không. Ở dòng thứ hai, null === undefined trả về false vì toán tử === thực hiện so sánh nghiêm ngặt, nghĩa là các toán hạng không được chuyển đổi thành một loại chung trước khi so sánh chúng.

Sự khác biệt giữa các toán tử bình đẳng

Sự khác biệt chính giữa các toán tử đẳng thức =====trong JavaScript như sau:

  • ==thực hiện ép buộc kiểu , nghĩa là nó sẽ cố gắng chuyển đổi các toán hạng thành một kiểu phổ biến trước khi so sánh, trong khi ===không thực hiện ép buộc kiểu .
  • ==kiểm tra sự bằng nhau về giá trị bằng sự ép buộc, trong khi ===kiểm tra sự bằng nhau về giá trị và kiểu.

So sánh các giá trị : Để so sánh hai giá trị bằng nhau, bạn có thể sử dụng toán tử ==hoặc ===, tùy thuộc vào việc bạn có muốn thực hiện ép kiểu hay không.

const num1 = 10;
const num2 = '10';
console.log(num1 == num2); // Output: true (value equality with coercion)
console.log(num1 === num2); // Output: false (type inequality)

const day = 'Monday';
switch(day) {
  case 'Monday':
    console.log('Today is Monday');
    break;
  case 'Tuesday':
    console.log('Today is Tuesday');
    break;
  default:
    console.log('Today is not Monday or Tuesday');
    break;
}

let x = null;
let y;

console.log(x == null); // Output: true
console.log(y == undefined); // Output: true
console.log(x === null); // Output: true
console.log(y === undefined); // Output: true

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

Ở dòng thứ hai, null === undefinedtrả về false===toán tử thực hiện phép so sánh nghiêm ngặt, nghĩa là các toán hạng không được chuyển thành một loại chung trước khi so sánh chúng. Vì nullundefinedcó các loại khác nhau, chúng không được coi là bằng nhau.

Kiểm tra xem một giá trị có tồn tại hay không : Khi kiểm tra xem một giá trị có tồn tại hay không, bạn có thể muốn sử dụng ==và so sánh giá trị đó với nullhoặc undefinedđể xem liệu giá trị đó có bị giả mạo hay không.

const myValue = '';
if (myValue == null) {
  console.log('The value is null or undefined');
}

const obj1 = { name: 'John' };
const obj2 = { name: 'John' };
const obj3 = obj1;
console.log(obj1 == obj2); // Output: false
console.log(obj1 === obj2); // Output: false
console.log(obj1 === obj3); // Output: true