Carregando...

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.

Mapa falsy com Boolean()

javascript
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.

Exemplos truthy para começar

javascript
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.

if usa truthy e falsy

javascript
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.

Armadilhas de string com cara de falsy

javascript
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.

String vazia vs um espaço

javascript
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.

Portão de página com truthy / falsy

html
<!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ê

  1. Registre Boolean de cada item da lista falsy.
  2. Registre Boolean("0") e Boolean(0) lado a lado.
  3. Registre Boolean(" ") e Boolean("") — espaço vs vazio.
  4. Escreva um if (score) pequeno com score = 0 e depois score = 5.
  5. No demo HTML, ponha user = "", atualize e leia a mensagem.
  6. Mude user para "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, undefined ou NaN na lista

Resumo

  • Falsy: age como false numa condição — aprenda a lista curta
  • Truthy: age como true — a maioria dos valores do dia a dia
  • Prévia com Boolean(value) ou direto if (value)
  • Armadilhas: "0" e "false" são truthy
  • Próximo: operadores — símbolos para calcular e comparar

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
8
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 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