JavaScript de Cero a Experto / Operadores y control
Truthy y falsy: qué vale como verdadero
Cuando JavaScript necesita un sí/no pero le das algo que no es un boolean
—un texto, un número, null—, lo convierte a true o false según reglas
fijas. Entender esas reglas de "truthy" (vale como verdadero) y "falsy"
(vale como falso) es lo que te deja escribir condiciones limpias como
if (nombre) en vez de comparaciones largas. Y evita un par de sorpresas
famosas.
Vacío o con algo
La lista corta de falsy
Solo hay un puñado de valores falsy. Apréndetelos, porque TODO lo demás es truthy:
La lista falsy completa (para principiantes): false, 0, "", null,
undefined, NaN. Seis valores. Cualquier otra cosa es truthy. Boolean(x)
te dice cómo se convierte cualquier valor — úsalo para salir de dudas.
Las trampas: lo que parece falso pero es TRUE
Las cuatro trampas que sorprenden a todos: "0" y "false" son STRINGS con
caracteres (truthy — el texto no está vacío); un espacio " " es contenido;
y una lista vacía [] o un objeto vacío {} son truthy (existen, aunque no
tengan elementos — para saber si una lista está vacía se usa
lista.length === 0, que verás en el módulo 4).
El uso idiomático
Aprovechar truthy/falsy hace las condiciones cortas y legibles:
// en vez de: if (nombre !== "" && nombre !== null && nombre !== undefined)
if (nombre) {
// se ejecuta si 'nombre' tiene contenido (no vacío, no null, no undefined)
}
// en vez de: if (cantidad !== 0) ... a veces:
if (cantidad) {
// OJO: esto es false también si cantidad es 0. ¿Querías eso? Sé consciente.
}if (nombre) se lee "si hay nombre" y cubre vacío, null y undefined de una.
Pero con NÚMEROS ten cuidado: if (cantidad) también es falso cuando
cantidad es 0 — si el 0 es un valor válido, compara explícito
(if (cantidad > 0) o !== undefined). Aprovecha truthy/falsy, pero con
los ojos abiertos.
Tienes const texto = '0' (el carácter cero, entre comillas). Escribes if (texto) { ... }. ¿Se ejecuta el bloque?
Mini-reto
Prueba con Boolean() cada uno de estos y predice ANTES de ejecutar:
Boolean("Ana"), Boolean(0), Boolean("0"), Boolean(-3),
Boolean(""), Boolean(" "), Boolean(null). Anota tu predicción, ejecuta
y compara. Cada acierto/fallo te fija la regla. En "Mi Bolsillo", usa
if (nombreUsuario) para decidir si saludar con nombre o con "Invitado".
Qué sigue
Ya sabes qué vale como verdadero. Es hora de que tu programa DECIDA de
verdad: la próxima lección construye los CONDICIONALES if / else if / else
—hacer que el código tome caminos distintos según las condiciones—. El
momento en que tu programa deja de ir en línea recta y empieza a ramificar.