0Pricing
JavaScript Academy · Lección

Igualdad flexible frente a estricta

Comprenda las comparaciones entre == y ===.

Igualdad flexible frente a estricta es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 4 lecciones en total.

Dos operadores de igualdad

JavaScript tiene dos operadores de igualdad. La igualdad estricta (triple igual) compara sin conversión. La igualdad no estricta (doble igual) convierte los tipos antes de comparar.

console.log(1 === 1)
console.log(1 == "1")

Igualdad estricta

La igualdad estricta devuelve true únicamente cuando coinciden tanto el tipo como el valor. No se produce ninguna coerción.

console.log(5 === 5)
console.log(5 === "5")
console.log(true === 1)

La igualdad no estricta aplica coerción

La igualdad no estricta intenta convertir los operandos a un tipo común antes de compararlos, lo que puede producir resultados true inesperados.

console.log(5 == "5")
console.log(true == 1)
console.log(0 == false)

Número y cadena

Al comparar un número y una cadena con igualdad no estricta, la cadena se convierte primero en un número.

console.log("10" == 10)
console.log("10" === 10)

Coerción de booleanos

Con la igualdad no estricta, un booleano se convierte en un número, por lo que true se convierte en 1 y false en 0 antes de la comparación.

console.log(true == 1)
console.log(false == 0)
console.log(true == 2)

Null y undefined

La igualdad no estricta considera que null y undefined son iguales entre sí, pero no iguales a ningún otro valor, como cero.

console.log(null == undefined)
console.log(null === undefined)
console.log(null == 0)

La excepción de NaN

NaN no es igual a nada, ni siquiera a sí mismo, con ninguno de los dos operadores. Utilice Number.isNaN para comprobarlo.

console.log(NaN === NaN)
console.log(NaN == NaN)
console.log(Number.isNaN(NaN))

Referencias de objetos

Los objetos se comparan por referencia, no por contenido. Dos objetos distintos con propiedades idénticas nunca son iguales.

const a = { x: 1 }
const b = { x: 1 }
console.log(a === b)
console.log(a === a)

Resultados sorprendentes de la igualdad no estricta

La igualdad no estricta puede producir resultados contraintuitivos. Una cadena vacía es igual a cero, y un arreglo vacío es igual a false después de la coerción.

console.log("" == 0)
console.log([] == false)
console.log("0" == false)

Preferir la igualdad estricta

La mayoría de las guías de estilo recomiendan utilizar la igualdad estricta de forma predeterminada para evitar errores causados por coerciones ocultas. Utilice la igualdad no estricta solo por un motivo deliberado.

const value = "42"
if (value === "42") {
  console.log("matched as string")
}

Comprobar null o undefined

Un uso aceptado de la igualdad no estricta es comprobar null o undefined conjuntamente, ya que el patrón de doble igual con null incluye ambos valores.

function check(v) {
  if (v == null) {
    return "missing"
  }
  return "present"
}
console.log(check(undefined))
console.log(check(0))

Comprobación rápida

Compruebe sus conocimientos sobre igualdad.

Resumen

Resumen: El triple igual evita la coerción; el doble igual la aplica.

  • La igualdad estricta comprueba el tipo y el valor
  • La igualdad no estricta convierte primero a un tipo común
  • null es igual a undefined únicamente con igualdad no estricta
  • Prefiera la igualdad estricta de forma predeterminada
console.log(1 === 1)
console.log(1 == "1")

Preguntas frecuentes

¿La lección «Igualdad flexible frente a estricta» es gratis?

Sí — el texto completo de «Igualdad flexible frente a estricta» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Igualdad flexible frente a estricta»?

Comprenda las comparaciones entre == y ===. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar JavaScript Academy?

No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Igualdad flexible frente a estricta»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?

Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Valores truthy y falsy
  2. Igualdad flexible frente a estricta
  3. Conversión implícita en operaciones
  4. Técnicas de conversión explícita
← Volver a JavaScript Academy