# Null vs Undefined (e ReferenceError) no JavaScript

> Neste drop falo sobre o comportamento das declarações primitivas "null" e  "undefined" e também do erro ReferenceError no JavaScript.

- Canonical: https://betomuniz.com/blog/null-vs-undefined-e-referenceerror-no-javascript
- Published: 2020-12-09
- Updated: 2026-04-21T17:44:00.000Z
- Language: pt
- Tags: JavaScript

---

`ReferenceError` é um tipo de erro que retorna `ReferenceError: {nome da variável} is not defined` quando uma variável é invocada, mas ainda não foi declarada.

`undefined` é atribuído para uma variável ou **propriedade** de objeto quando estes são declarados sem valor atribuído.

`null` é um tipo de atribuição de variável, tal como, números, strings, objetos entre outros, porém com a finalidade de **DEFINIR** explicitamente uma variável com valor vazio/nulo (🤦‍).

`null` e `undefined` **são valores primitivos no JavaScript**, tal como String, Number, etc.

`null` e `undefined` são considerados _**falsy**_, assim como `NaN`, `“”` (string vazia) entre outros, ou seja, são falsos quando em contextos booleanos. Porém não são estritamente iguais, ou seja, `null` **NÃO é** igual a `undefined`.

**Toda função no JavaScript retorna** `undefined` por padrão, exceto se o mesmo for explicitamente declarado com `return`.
