Esses quatro valores vivem aparecendo no JavaScript — e confundem todo mundo, principalmente quando usados em comparações ou validações:
null
undefined
NaN
''
Eles são parecidos, mas têm diferenças importantes. Bora entender de vez? 👇
🤔 O que é o que
undefined
Valor padrão de uma variável não inicializada, ou retorno de uma função sem
return
.
let x;
console.log(x); // undefined
null
Valor que você define manualmente para indicar "nenhum valor".
let user = null;
NaN
(Not a Number)
Resultado de uma operação matemática inválida.
console.log("abc" * 3); // NaN
''
(string vazia)
Literalmente uma string sem caracteres. Ainda é um valor válido.
let nome = '';
console.log(nome.length); // 0
🔍 Comparando lado a lado
console.log(null == undefined); // true (valor)
console.log(null === undefined); // false (tipo)
console.log(NaN == NaN); // false
console.log(Number.isNaN(NaN)); // true
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean('')); // false
Todos são considerados falsy, mas têm comportamentos distintos!
🧠 Dica rápida de validação
Cuidado com ==
! Use ===
para evitar surpresas.
Se quiser saber se uma variável está "sem valor", essa abordagem é mais segura:
if (value === null || value === undefined || value === '') {
// trate o caso aqui
}
💬 Qual desses já te deu dor de cabeça?
Conta aqui nos comentários 👇
Ou salva esse post pra não esquecer 🔖
Top comments (0)