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 emnulleundefined.||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.