JavaScript 7 — Operadores de igualdad (== vs ===)

Apr 01 2023
Diferencias entre los operadores de igualdad Las diferencias clave entre los operadores de igualdad == y === en JavaScript son las siguientes: Comparación de valores: para comparar la igualdad de dos valores, puede utilizar el operador == o ===, dependiendo de si desea realizar la coerción de tipo o no. En la segunda línea, null === undefined devuelve falso porque el operador === realiza una comparación estricta, lo que significa que los operandos no se convierten a un tipo común antes de compararlos.

Diferencias entre los operadores de igualdad

Las diferencias clave entre los operadores de igualdad ==y ===en JavaScript son las siguientes:

  • ==realiza la coerción de tipo , lo que significa que intentará convertir los operandos a un tipo común antes de la comparación, mientras que ===no realiza la coerción de tipo .
  • ==comprueba la igualdad de valores con coerción, mientras que ===comprueba la igualdad de valores y tipos.

Comparación de valores : para comparar la igualdad de dos valores, puede usar el operador ==o ===, dependiendo de si desea realizar la coerción de tipo o no.

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

En la segunda línea, null === undefinedregresa falseporque el ===operador realiza una comparación estricta, lo que significa que los operandos no se convierten a un tipo común antes de compararlos. Dado que nully undefinedtienen diferentes tipos, no se consideran iguales.

Verificar si existe un valor : Al verificar si existe un valor, es posible que desee usarlo ==y compararlo con nullo undefinedpara ver si es 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