Artigo original: Falsy Values in JavaScript
Descrição
Um valor falsy é um valor que pode ser avaliado como FALSE, por exemplo, quando verificamos uma variável. Há apenas seis valores falsy em JavaScript: undefined
, null
, NaN
, 0
, ""
(string vazia) e, naturalmente, false
.
Verificando valores falsy em variáveis
É possível verificar um valor falsy em uma variável com um condicional simples:
if (!variavel) {
// Quando a variável tiver um valor falsy, a condição é verdadeira.
}
Exemplos gerais
var string = ""; // <-- falsy
var filledString = "uma string"; // <-- truthy (avaliada como true)
var zero = 0; // <-- falsy
var numberGreaterThanZero // <-- truthy
var emptyArray = []; // <-- truthy, falaremos disso a seguir
var emptyObject = {}; // <-- truthy
Diversão com arrays
if ([] == false) // <-- truthy, executará o código do bloco if
if ([]) // <-- truthy, executará o código do bloco if
if ([] == true) // <-- falsy, NÃO executará o código do bloco if
if (![]) // <-- falsy, também NÃO executará o código do bloco if
Um cuidado necessário
Cuidado com o tipo de dado ao avaliar um valor em um contexto booleano. Se o tipo de dado do valor deve ser um number (número), a avaliação de truthy/falsy pode resultar em algo inesperado:
const partida = { equipeA: 0, equipeB: 1 }
if (partida.equipeA)
// O bloco if não será executado, pois a avaliação é falsy
console.log('Equipe A: ' + partida.equipeA);
}
Uma alternativa para o caso de uso acima é avaliar o valor usando typeof
:
const partida = { equipeA: 0, equipeB: 1 }
if (typeof partida.equipeA === 'number')
console.log('Equipe A: ' + partida.equipeA);
}
Mais informações
- Sobre valores truthy: glossário da MDN
- Sobre valores falsy: glossário da MDN
- Truthy and Falsy: When All is Not Equal in JavaScript (texto em inglês)