typestar

Igualdad y coerción en JavaScript

=== compara sin convertir; == convierte primero, y sorprende.

const comparisons = [
  ["'1' == 1", "1" == 1],
  ["'1' === 1", "1" === 1],
  ["null == undefined", null == undefined],
  ["null === undefined", null === undefined],
  ["[] == false", [] == false],
  ["NaN === NaN", NaN === NaN],
  ["Object.is(NaN, NaN)", Object.is(NaN, NaN)],
  ["Object.is(0, -0)", Object.is(0, -0)],
];

for (const [expression, result] of comparisons) {
  console.log(`${expression.padEnd(22)} ${result}`);
}

Cómo funciona

  1. Siempre ===, salvo que quieras la coerción a propósito.
  2. null == undefined es true, y ese es el único caso útil.
  3. Object.is difiere de === con NaN y el cero negativo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
410
Tokens
114
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 86 segundos.

Escribe este fragmento

Paso 3 de 5 en Vinculaciones y valores; paso 3 de 43 en Fundamentos del lenguaje.

← Anterior Siguiente →