[DICAS] Javascript - Truthy e falsy

Em Javascript existem algumas variáveis ou expressões que podem gerar um valor verdadeiro (true) ou falso (false). Elas chamadas de truthy e falsy que são valores que dentro do Javascript podem gerar um valor booleano quando aplicados em uma estrutura de decisão if por exemplo.

O truthy para o javascript é algo que pode assumir o valor de true. Abaixo alguns exemplo de valores truthy em Javascript:

if (true)
if ({})
if ([])
if (1)
if (-1)
if (Infinity)
if (-Infinity)
if (“texto”)

O falsy é algo que dentro do Javascript pode ser avaliado como false. Abaixo alguns exemplos:

if (false)
if (null)
if (undefined)
if (0)
if (-0) // Sim, em Javascript existe o -0 kkkkk
if (NaN)
if ('')

Referências:
https://developer.mozilla.org/pt-BR/docs/Glossary/Truthy
https://developer.mozilla.org/pt-BR/docs/Glossary/Falsy

Espero que gostem :sweat_smile:

10 Likes

Boa Willy.

Vale ressaltar que a maior parte (se não todas) dos tipos que possuem um valor atribuído (diferente de null), resultam em true se testadas em um if. E isso vale não só pra Javascript, mas várias outras também (que eu posso afirmar, Java e C# respondem com true pra uma variável inicializada, desde que não seja um 0 não-literal.

5 Likes

bem lembrado

1 Like

No JS decisões tomadas com base em truthy/falsy são muito comuns, especialmente lidando com respostas de requisições assíncronas ou configurando variáveis de ambiente. Apesar de terem mencionado que em outras linguagens tipadas existe um certo teor de truthy/falsy, pra muitas linguagens, isso é considerado um pitfall enquanto que no JS é uma prática encontrada em quase todo lugar e pode confundir que não está acostumado na hora de rastrear o código.

Mais sobre truthy/falsy e a pegadinha do NaN: Truthy and Falsy Values: When All is Not Equal in JavaScript - SitePoint

Mais sobre os pitfalls de JS que podem poupar horas de depuração: Major and minor JavaScript pitfalls and ECMAScript 6

1 Like

George como sempre preciso nas falas e sempre com um link muito bom que explica o conteúdo. Valeu George :grin:

1 Like

Caramba dessa eu não sabia kkkk. Pensava que era algo do Javascript, bom saber :grin:

Oi @willy ,

Ótima dica, não sabia que tinha -0 em Javascript kk

1 Like

É meio viajado mas existe :rofl: :rofl: