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:
false0(número zero)""ou''(string vazia)nullundefinedNaN(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
falsypara 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!