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

Apr 01 2023
Diferenças entre os operadores de igualdade As principais diferenças entre os operadores de igualdade == e === em JavaScript são as seguintes: Comparação de valores: Para comparar dois valores de igualdade, você pode usar o operador == ou ===, dependendo se você deseja executar a coerção de tipo ou não. Na segunda linha, null === undefined retorna false porque o operador === realiza uma comparação estrita, o que significa que os operandos não são convertidos para um tipo comum antes de serem comparados.

Diferenças entre os operadores de igualdade

As principais diferenças entre os operadores de igualdade ==e ===em JavaScript são as seguintes:

  • ==executa a coerção de tipo , o que significa que tentará converter os operandos para um tipo comum antes da comparação, enquanto ===não executa a coerção de tipo .
  • ==verifica a igualdade de valor com coerção, enquanto ===verifica a igualdade de valor e tipo.

Comparando valores : Para comparar dois valores para igualdade, você pode usar o operador ==ou ===, dependendo se deseja executar a coerção de tipo ou não.

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

Na segunda linha, null === undefinedretorna falseporque o ===operador realiza uma comparação estrita, o que significa que os operandos não são convertidos para um tipo comum antes de compará-los. Como nulle undefinedtêm tipos diferentes, eles não são considerados iguais.

Verificando se existe um valor : Ao verificar se existe um valor, você pode querer usá-lo ==e compará-lo com nullou undefinedpara ver 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