`Truthy` e `Falsy` em JavaScript

`Truthy` e `Falsy` em JavaScript

Este artigo explica truthy e falsy em JavaScript.

YouTube Video

Truthy e Falsy em JavaScript

Os conceitos de truthy e falsy em JavaScript desempenham um papel muito importante, especialmente na avaliação de instruções condicionais. Truthy e falsy determinam se um valor é avaliado como verdadeiro (true) ou falso (false), mas esses valores não são necessariamente os booleanos true ou false em si mesmos.

Valores Falsy

Valores falsy referem-se a valores que são avaliados como false em condicionais de JavaScript. Abaixo está uma lista de valores falsy em JavaScript.

 1const values = [
 2    false,
 3    0,
 4    -0,
 5    0.0,
 6    -0.0,
 7    0n,
 8    -0n,
 9    "",
10    null,
11    undefined,
12    NaN
13];
14
15for (let value of values) {
16    if (value) {
17        console.log(`${value} is truthy`);
18    } else {
19        console.log(`${value} is falsy`);
20    }
21}

Neste exemplo, todos os valores falsy serão exibidos como "falsy". Abaixo está uma lista de valores falsy em JavaScript.

  • falsefalse no tipo Booleano
  • 0 — O número zero (o decimal 0.0 também é falsy)
  • -0 — Zero negativo (tecnicamente distinto de 0, mas ainda é falsy)
  • 0n — Zero no tipo BigInt
  • "" — Uma string vazia de comprimento 0
  • null — Ausência de valor
  • undefined — Valor indefinido
  • NaN — Não é um número

Esses valores são tratados como false em operações lógicas e instruções condicionais (como em instruções if).

Valores Truthy

Todos os valores que não são falsy são truthy. Isso se refere a valores que são avaliados como booleano true. Em JavaScript, muitos valores são tratados como truthy.

 1const values = [
 2    true,
 3    1,
 4    -1,
 5    "Hello",
 6    " ",
 7    [],
 8    {},
 9    function() {},
10    Symbol(),
11    Infinity
12];
13
14for (let value of values) {
15    if (value) {
16        console.log(value, ' is truthy');
17    } else {
18        console.log(value, ' is falsy');
19    }
20}

Neste código, os valores truthy são exibidos como "truthy". Por exemplo, os seguintes valores são truthy.

  • truetrue no tipo Booleano
  • Números (diferentes de 0) — Por exemplo, 1 e -1 também são truthy.
  • Strings (não-vazias) — por exemplo, "Hello" ou " " (mesmo strings que contêm apenas espaços são truthy)
  • Objetos — Mesmo objetos vazios ({}) e arrays ([]) são truthy.
  • Funções — As próprias funções também são truthy.
  • Symbol — Valores do tipo Symbol também são truthy.
  • Infinity — Tanto infinito positivo quanto negativo são truthy.

Aplicações de truthy e falsy

Os conceitos de truthy e falsy são frequentemente usados em condicionais e operações lógicas. Por exemplo, ao definir um valor padrão usando o operador || (OU lógico), o primeiro valor truthy é retornado como resultado.

Como verificar valores falsy

Para verificar valores falsy, usar a função Boolean é conveniente. A função Boolean converte explicitamente um valor dado para o tipo booleano.

Exemplos da função Boolean

 1const values = [
 2    false,
 3    0,
 4    "",
 5    null,
 6    undefined,
 7    NaN
 8];
 9
10for (let value of values) {
11    console.log(`${value} is ${Boolean(value) ? 'truthy' : 'falsy'}`);
12}

Conclusão

Truthy e falsy em JavaScript são importantes para entender como valores não-booleanos são avaliados em expressões condicionais. Os valores falsy incluem false, 0, uma string vazia, null, undefined e NaN, enquanto todos os outros valores são avaliados como truthy. Compreender esses conceitos permite que você escreva um código mais flexível e eficiente.

Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.

YouTube Video