EduTech
Programação

Lógica e fundamentos

Condicionais e lógica booleana

Truthy, falsy e os operadores que evitam bug de valor zero.

12 min5 itens de prática

Em JavaScript, todo valor pode ser lido como verdadeiro ou falso num if. Os falsy são exatamente oito:

false, 0, -0, 0n, "", null, undefined, NaN.

Todo o resto é truthy — incluindo [], {} e "0", que pegam muita gente.

O bug clássico:

function desconto(valor) {
  const v = valor || 10;  // quer 10 como padrão
  return v;
}
desconto(0); // 10 — errado! 0 era um valor legítimo

|| cai no padrão para qualquer falsy. O correto quando só null/undefined devem virar padrão é ??:

const v = valor ?? 10;
desconto(0); // 0 — certo
?? (nullish coalescing) só age em null e undefined. || age em qualquer falsy.

O mesmo vale para acesso encadeado: user?.endereco?.rua devolve undefined em vez de estourar quando endereco não existe.

Agora pratique

5 itens. Ler não fixa; responder fixa.