JavaScript 7 — Operatori di uguaglianza (== vs ===)

Apr 01 2023
Differenze tra gli operatori di uguaglianza Le principali differenze tra gli operatori di uguaglianza == e === in JavaScript sono le seguenti: Confronto di valori: per confrontare due valori per l'uguaglianza, puoi utilizzare l'operatore == o ===, a seconda che vuoi eseguire la coercizione di tipo o meno. Nella seconda riga, null === undefined restituisce false perché l'operatore === esegue un confronto rigoroso, il che significa che gli operandi non vengono convertiti in un tipo comune prima del confronto.

Differenze tra gli operatori di uguaglianza

Le principali differenze tra gli operatori di uguaglianza ==e ===in JavaScript sono le seguenti:

  • ==esegue type coercion , nel senso che proverà a convertire gli operandi in un tipo comune prima del confronto, mentre ===non esegue type coercion .
  • ==controlla l'uguaglianza di valore con la coercizione, mentre ===controlla sia l'uguaglianza di valore che quella di tipo.

Confronto di valori : per confrontare due valori per verificarne l'uguaglianza, è possibile utilizzare l' operatore ==o ===, a seconda che si desideri eseguire o meno la coercizione del tipo.

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

Nella seconda riga, null === undefinedrestituisce falseperché l' ===operatore esegue un confronto rigoroso, il che significa che gli operandi non vengono convertiti in un tipo comune prima di confrontarli. Poiché nulle undefinedhanno tipi diversi, non sono considerati uguali.

Verifica dell'esistenza di un valore : quando si verifica l'esistenza di un valore, è possibile utilizzarlo ==e confrontarlo con nullo undefinedper vedere se è falso.

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