Truthy e falsy
Você já converte com String(), Number() e Boolean(). O próximo passo é ver como os valores se comportam dentro de uma decisão — antes do capítulo completo de if / else. Os que agem como «não» chamam-se falsy. Quase todo o resto é truthy. Aprenda a lista falsy curta uma vez; evita muita confusão depois.
O que são truthy e falsy em JavaScript?
Falsy significa: numa condição, o JavaScript trata o valor como false. Truthy significa: como true. Não é um tipo novo — os mesmos números e strings. Pré-visualize com Boolean(value) ou escreva if (value); a regra é a mesma. No início basta a lista falsy; o resto costuma ser truthy.
A lista falsy
📊 Valores falsy que precisa conhecer
| Valor | Por que parece «vazio / não» | Nota |
|---|---|---|
false |
o não booleano | palavra-chave |
0 |
zero numérico | também -0 |
"" |
string vazia | comprimento 0 |
null |
vazio de propósito | sessão anterior |
undefined |
ainda sem valor | sessão anterior |
NaN |
número falhado | typeof continua "number" |
Essa é a lista inicial. Memorize falsy, não um catálogo infinito de truthy. Se não estiver na lista, trate como truthy até uma lição dizer o contrário.
Ver falsy com Boolean()
Boolean(...) é uma prévia clara. Cada item da lista vira 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 iniciantes, o padrão é truthy
Strings não vazias, a maioria dos números e o próprio true são truthy. As primeiras surpresas costumam ser textos que parecem «não» mas têm 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" e "false" são truthy porque são texto não vazio. Um espaço " " também é truthy — entre strings comuns só "" (comprimento zero) é falsy.
if sem chamar Boolean()
Um if (value) simples usa a mesma regra. Não precisa de if (Boolean(value)). O estilo completo de ramos vem depois; aqui só o portão sim/não.
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");
}
Armadilhas de string: "0" e "false"
Formulários e APIs costumam enviar texto. A string "0" não é o número 0. A string "false" não é o booleano false. Ambas são truthy.
console.log(Boolean("0"));
console.log(Boolean(0));
console.log(Boolean("false"));
console.log(Boolean(false));
console.log("0" === 0);
String vazia vs um espaço
Entre strings comuns só "" com comprimento zero é falsy. Um espaço ainda é conteúdo.
console.log(Boolean(""));
console.log(Boolean(" "));
console.log("".length);
console.log(" ".length);
Controle a mensagem da página com um valor
Decida o que o visitante vê com um só valor. Mude e atualize.
<!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>
Defina user como "" ou null, atualize: a mensagem vira a linha de entrar. Mesma regra falsy — agora na página.
Experimente você
- Registre
Booleande cada item da lista falsy. - Registre
Boolean("0")eBoolean(0)lado a lado. - Registre
Boolean(" ")eBoolean("")— espaço vs vazio. - Escreva um
if (score)pequeno comscore = 0e depoisscore = 5. - No demo HTML, ponha
user = "", atualize e leia a mensagem. - Mude
userpara"0"e veja que a saudação ainda corre (string truthy).
Erros comuns
- Tratar
"false"ou"0"como falsy — são strings não vazias - Achar que sempre precisa envolver
Boolean()—if (value)já coerçãoa - Memorizar todos os truthy em vez da lista curta falsy
- Confundir o número
0(falsy) com a string"0"(truthy) - Esquecer
null,undefinedouNaNna lista
Resumo
- Falsy: age como
falsenuma condição — aprenda a lista curta - Truthy: age como
true— a maioria dos valores do dia a dia - Prévia com
Boolean(value)ou diretoif (value) - Armadilhas:
"0"e"false"são truthy - Próximo: operadores — símbolos para calcular e comparar
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo