JavaScript 7 — Operatory równości (== vs ===)

Apr 01 2023
Różnice między operatorami równości Kluczowe różnice między operatorami równości == i === w JavaScript są następujące: Porównywanie wartości: Aby porównać dwie wartości pod kątem równości, można użyć operatora == lub ===, w zależności od tego, czy chcesz wykonać wymuszanie typu, czy nie. W drugim wierszu null === undefined zwraca wartość false, ponieważ operator === przeprowadza ścisłe porównanie, co oznacza, że ​​przed porównaniem operandy nie są konwertowane na wspólny typ.

Różnice między operatorami równości

Kluczowe różnice między operatorami równości ==i ===w JavaScript są następujące:

  • ==wykonuje wymuszanie typu , co oznacza, że ​​przed porównaniem spróbuje przekonwertować operandy na wspólny typ, podczas gdy ===nie wykonuje wymuszania typu .
  • ==sprawdza równość wartości za pomocą przymusu, podczas gdy ===sprawdza równość wartości i typu.

Porównywanie wartości : Aby porównać dwie wartości pod kątem równości, możesz użyć operatora ==lub ===, w zależności od tego, czy chcesz wykonać przekształcenie typu, czy nie.

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

W drugim wierszu null === undefinedzwraca , falseponieważ ===operator przeprowadza ścisłe porównanie, co oznacza, że ​​operandy nie są konwertowane do wspólnego typu przed ich porównaniem. Ponieważ nulli undefinedmają różne typy, nie są uważane za równe.

Sprawdzanie, czy wartość istnieje : Podczas sprawdzania, czy wartość istnieje, możesz chcieć użyć ==jej i porównać z nią nulllub undefinedsprawdzić, czy jest fałszywa.

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