DEV Community

Alisson F.
Alisson F.

Posted on

null, undefined, NaN ou ''? Pare de errar e entenda de vez!

Esses quatro valores vivem aparecendo no JavaScript — e confundem todo mundo, principalmente quando usados em comparações ou validações:

null
undefined
NaN
''
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

null

Valor que você define manualmente para indicar "nenhum valor".

let user = null;
Enter fullscreen mode Exit fullscreen mode

NaN (Not a Number)

Resultado de uma operação matemática inválida.

console.log("abc" * 3); // NaN
Enter fullscreen mode Exit fullscreen mode

'' (string vazia)

Literalmente uma string sem caracteres. Ainda é um valor válido.

let nome = '';
console.log(nome.length); // 0
Enter fullscreen mode Exit fullscreen mode

🔍 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
Enter fullscreen mode Exit fullscreen mode

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
}
Enter fullscreen mode Exit fullscreen mode

💬 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)