Expressões verdadeiras/falsas `(Truthy/Falsy)` no JavaScript
No JavaScript, valores podem ser avaliados como "verdadeiros" (truthy
) ou "falsos" (falsy
) em contextos booleanos, como em condições de um if
. Isso é útil para simplificar verificações e controlar o fluxo do programa.
Valores falsos (falsy
)
Os valores considerados falsos no JavaScript são:
false
0
(número zero)""
ou''
(string vazia)null
undefined
NaN
(Not-a-Number)
Qualquer valor diferente desses será avaliado como truthy
.
Exemplo:
if (0) {
console.log("Este código não será executado.")
}
else {
console.log("0 é um valor falso.")
}
Saída:
0 é um valor falso.
Valores verdadeiros (truthy
)
Todos os valores que não são falsy
são considerados truthy
. Exemplos incluem:
- Números diferentes de zero (positivos ou negativos)
- Strings não vazias (
"hello"
,"0"
, etc.) - Arrays (
[]
) e objetos ({}
) true
Exemplo:
if ("hello") {
console.log("Strings não vazias são truthy (verdadeiros).")
}
Saída:
Strings não vazias são truthy (verdadeiros).
Uso prático de Truthy
e Falsy
Verificar se uma variável está definida
let nome = ""
if (nome) {
console.log("Nome definido:", nome)
}
else {
console.log("Nome não definido.")
}
Saída:
Nome não definido.
Valores padrão com ||
Você pode usar o operador lógico ||
para definir valores padrão:
let corFavorita = null
let cor = corFavorita || "azul"
console.log(cor) // Saída: azul
Negação com !
O operador !
pode ser usado para verificar se um valor é falsy
:
let ativo = 0
if (!ativo) {
console.log("A conta está inativa.")
}
Saída:
A conta está inativa.
Atenção aos valores enganosos
Alguns valores podem parecer falsy
à primeira vista, mas são avaliados como truthy
. É importante conhecê-los para evitar erros no código.
Exemplos:
// Números decimais são "Truthy"
console.log( Boolean(0.01) ) // imprime true
// Números degativos são "Truthy"
console.log( Boolean(-10) ) // imprime true
// Strings com espaços são "Truthy"
console.log( Boolean(' ') ) // imprime true
// Strings que não estejam vazias são "Truthy"
console.log( Boolean('false') ) // imprime true
// Objetos vazios são "Truthy"
console.log( Boolean({}) ) // imprime true
// Arrays vazios são "Truthy"
console.log( Boolean([]) ) // imprime true
Esses valores podem causar confusão, então sempre revise as condições cuidadosamente para garantir que o comportamento do código seja o esperado.
Dicas práticas
- Lembre-se dos valores
falsy
para evitar comportamentos inesperados. - Use
!!
para converter valores em booleanos explícitos. - Teste diferentes valores para entender como o JavaScript os avalia.
Compreender truthy
e falsy
ajuda a escrever código mais limpo e eficiente no JavaScript. Experimente usar essas expressões em seus projetos!