Truthy y falsy
Ya sabes convertir con String(), Number() y Boolean(). Lo siguiente es ver cómo se comportan los valores dentro de una decisión — antes del capítulo completo de if / else. Los que actúan como «no» se llaman falsy. Casi todo lo demás es truthy. Aprende la lista corta falsy una vez; evita muchas confusiones después.
¿Qué son truthy y falsy en JavaScript?
Falsy significa: en una condición, JavaScript trata el valor como false. Truthy significa: como true. No es un tipo nuevo — los mismos números y cadenas. Puedes previsualizar con Boolean(value) o escribir if (value) con la misma regla. Al empezar basta la lista falsy; el resto suele ser truthy.
La lista falsy
📊 Valores falsy que debes conocer
| Valor | Por qué se siente «vacío / no» | Nota |
|---|---|---|
false |
el no booleano | palabra clave |
0 |
cero numérico | también -0 |
"" |
cadena vacía | longitud 0 |
null |
vacío a propósito | sesión anterior |
undefined |
aún sin valor | sesión anterior |
NaN |
número fallido | typeof sigue "number" |
Esa es la lista inicial. Memoriza falsy, no un catálogo infinito de truthy. Si no está en la lista, trátalo como truthy hasta que una lección diga lo contrario.
Ver falsy con Boolean()
Boolean(...) es una vista previa clara. Cada valor de la lista se vuelve false.
console.log(Boolean(false));
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));
Para principiantes, lo normal es truthy
Cadenas no vacías, la mayoría de números y el propio true son truthy. Las primeras sorpresas suelen ser textos que parecen «no» pero tienen caracteres.
console.log(Boolean(1));
console.log(Boolean(-3));
console.log(Boolean("hi"));
console.log(Boolean("0"));
console.log(Boolean("false"));
console.log(Boolean(" "));
"0" y "false" son truthy porque son texto no vacío. Un espacio " " también es truthy — entre cadenas normales solo "" (longitud cero) es falsy.
if sin llamar a Boolean()
Un if (value) simple usa la misma regla. No hace falta if (Boolean(value)). El estilo de ramas completo llega después; aquí solo la puerta sí/no.
let name = "Ada";
if (name) {
console.log("name is truthy");
}
let empty = "";
if (empty) {
console.log("will not run");
} else {
console.log("empty string is falsy");
}
Trampas de cadena: "0" y "false"
Formularios y APIs suelen enviar texto. La cadena "0" no es el número 0. La cadena "false" no es el booleano false. Ambas son truthy.
console.log(Boolean("0"));
console.log(Boolean(0));
console.log(Boolean("false"));
console.log(Boolean(false));
console.log("0" === 0);
Cadena vacía frente a un espacio
Entre cadenas ordinarias solo "" con longitud cero es falsy. Un espacio sigue siendo contenido.
console.log(Boolean(""));
console.log(Boolean(" "));
console.log("".length);
console.log(" ".length);
Controla el mensaje de la página con un valor
Decide qué ve el visitante con un solo valor. Cámbialo y recarga.
<!DOCTYPE html>
<html>
<head>
<title>Truthy falsy — page gate</title>
</head>
<body>
<p id="msg">…</p>
<script>
let user = "Sam";
let box = document.getElementById("msg");
if (user) {
box.textContent = "Hello, " + user;
} else {
box.textContent = "Please sign in";
}
</script>
</body>
</html>
Pon user en "" o null, recarga: el mensaje pasa a la línea de inicio de sesión. Misma regla falsy — ahora en la página.
Pruébalo tú
- Registra
Booleande cada ítem de la lista falsy. - Registra
Boolean("0")yBoolean(0)juntos. - Registra
Boolean(" ")yBoolean("")— espacio frente a vacío. - Escribe un
if (score)pequeño conscore = 0y luegoscore = 5. - En el demo HTML pon
user = "", recarga y lee el mensaje. - Cambia
usera"0"y verás que el saludo sigue (cadena truthy).
Errores frecuentes
- Tratar
"false"o"0"como falsy — son cadenas no vacías - Creer que siempre debes envolver
Boolean()—if (value)ya coercióna - Memorizar todos los truthy en vez de la lista corta falsy
- Confundir el número
0(falsy) con la cadena"0"(truthy) - Olvidar
null,undefinedoNaNen la lista
Resumen
- Falsy: actúa como
falseen una condición — aprende la lista corta - Truthy: actúa como
true— la mayoría de valores cotidianos - Vista previa con
Boolean(value)o directoif (value) - Trampas:
"0"y"false"son truthy - Siguiente: operadores — símbolos para calcular y comparar
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior