Comparar falsys en JavaScript: igualdad estricta y más

| Última modificación: 26 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el mundo del desarrollo web, específicamente en el ámbito de JavaScript, se presentan situaciones en las que necesitamos comparar diferentes valores y evaluar su igualdad. Sin embargo, este proceso no siempre es tan sencillo como parece; aquí es donde entran en juego los falsys y las reglas de comparación en JavaScript. En este artículo podremos comparar falsys en Javascript, exploraremos cómo funciona la igualdad estricta y cómo se compara el uso de == (doble igual) frente a === (triple igual) en términos de falsys en JavaScript.

Comparar Falsys en JavaScript

¿Qué son los valores falsys en JavaScript?

Antes de comparar falsys en JavaScript, veamos qué son estos valores booleanos.

En JavaScript, el término falsy es un conjunto de valores que se evalúan como falso cuando se utilizan en un contexto booleano, como en una declaración condicional (if, while, etc.). Estos valores son aquellos que, aunque no son estrictamente booleanos, se consideran equivalentes a false cuando se evalúan en una expresión booleana.

Los valores falsy en JavaScript son los siguientes:

  1. false: el valor booleano false se evalúa como falso, ya que representa directamente el valor booleano “falso”.
  2. 0: el número cero se considera falso en contextos booleanos.
  3. -0: el número cero negativo también se considera falso.
  4. "" (cadena vacía): una cadena vacía se evalúa como falso.
  5. null: el valor null se evalúa como falso.
  6. undefined: el valor undefined se evalúa como falso.
  7. NaN: el valor especial “Not-a-Number” se considera falso.

Estos valores son especiales porque, aunque al evaluarlos individualmente en un contexto booleano devuelven false, al compararlos entre sí pueden tener comportamientos inesperados.

Cuando utilizamos el doble igual == para comparar valores en JavaScript, se realiza una conversión de tipo implícita antes de realizar la comparación. Esto puede llevar a resultados inesperados, como vemos en el siguiente ejemplo:

//Comparar falsys en JavaScript
console.log(0 == false); // true
console.log("" == false); // true
console.log(null == false); // false

En JavaScript, además de los valores falsy, también existen los valores truthy. Los valores truthy son aquellos que se evalúan como verdaderos cuando se utilizan en un contexto booleano.

Igualdad estricta y triple igual === para comparar falsys en JavaScript

Para evitar las conversiones de tipo automáticas y obtener comparaciones más precisas, JavaScript ofrece el operador de igualdad estricta, que se representa con el triple igual ===. Con este operador, se comparan tanto el valor como el tipo de los elementos, lo que permite obtener resultados más consistentes:

//Comparar falsys en JavaScript
console.log(0 === false); // false
console.log("" === false); // false
console.log(null === false); // false

La función isNaN() y otros casos para comparar falsys en JavaScript

El caso especial de NaN también merece una mención aparte. Dado que NaN no es igual a ningún valor, ni siquiera a sí mismo, se puede utilizar la función isNaN() para determinar si un valor es NaN. Por ejemplo:

//Comparar falsys en JavaScript
console.log(isNaN(NaN)); // true
console.log(isNaN("hola")); // true (ya que "hola" no es un número válido)
console.log(isNaN(42)); // false (ya que 42 es un número válido)

Es importante mencionar que, al comparar valores en JavaScript, es recomendable utilizar siempre la igualdad estricta === para evitar resultados inesperados y errores difíciles de rastrear.

Un mundo de reglas que pueden volverse confusas

Es comprensible que las reglas de comparación puedan resultar confusas y complejas, especialmente cuando se trabaja con distintos tipos de datos y valores. El uso del doble igual == puede llevar a resultados sorprendentes debido a las conversiones de tipo, por lo que se recomienda optar por la igualdad estricta === para evitar problemas innecesarios.

Si bien puede parecer desafiante al principio, KeepCoding ofrece una solución que facilitará tu experiencia en el desarrollo web y te ayudará a dominar JavaScript y otras tecnologías relevantes. Al inscribirte en el Desarrollo Web Full Stack Bootcamp de KeepCoding, adquirirás las habilidades y conocimientos que necesitas para enfrentarte a estos desafíos con confianza y destreza.

No pierdas la oportunidad de formar parte de una industria en constante crecimiento y demanda, donde podrás alcanzar salarios atractivos y disfrutar de una estabilidad laboral que pocas profesiones pueden ofrecer. Da el salto hacia tu futuro con KeepCoding y prepárate para cambiar tu vida en poco tiempo. ¡Solicita información y comienza tu camino hacia una carrera exitosa en el sector tecnológico!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado