Como vimos na seção de variáveis, podemos atribuir qualquer tipo de valor primitivo ou não primitivo a uma variável. JavaScript inclui dois valores de tipo primitivo adicionais – nulo e indefinido, que podem ser atribuídos a uma variável com significado especial.
null
Você pode atribuir null a uma variável para denotar que atualmente aquela variável não tem nenhum valor, mas terá mais tarde. Um nulo significa ausência de um valor.
No exemplo acima, null é atribuído a uma variável myVar. Significa que definimos uma variável, mas ainda não atribuímos nenhum valor, portanto, valor é ausência.
Se você tentar encontrar o elemento DOM usando document.getElelementByID por exemplo, e se o elemento for encontrado, ele retornará null. Portanto, é recomendado verificar se há nulo antes de fazer algo com esse elemento.
Um valor nulo é avaliado como falso na expressão condicional. Portanto, você não precisa usar operadores de comparação como === ou! == para verificar os valores nulos.
undefined
Undefined também é um valor primitivo em JavaScript. Uma variável ou um objeto tem um valor indefinido quando nenhum valor é atribuído antes de usá-lo. Portanto, você pode dizer que indefinido significa falta de valor ou valor desconhecido.
No exemplo acima, não atribuímos nenhum valor a uma variável chamada “myVar”. Uma variável “myVar” não tem um valor. Portanto, é indefinida.
Você obterá um valor indefinido quando você chamar uma propriedade ou método inexistente de um objeto.
No exemplo acima, uma função Sum não retorna nenhum resultado, mas ainda tentamos atribuir seu valor resultante a uma variável. Portanto, neste caso, o resultado será indefinido.
Se você passar menos argumentos na chamada de função, esse parâmetro terá valor indefinido.
Um indefinido é avaliado como falso quando usado em uma expressão condicional.
null e undefined é um dos principais motivos para produzir um erro de tempo de execução no aplicativo JavaScript. Isso acontece se você não verificar o valor de variáveis de retorno desconhecidas antes de usá-lo. Se você não tiver certeza de que uma variável sempre terá algum valor, a prática recomendada é verificar o valor das variáveis como nulo ou indefinido antes de usá-las.
- null e undefined são valores primitivos em JavaScript.
- Um valor nulo significa ausência.
- Um valor indefinido significa falta de valor.
- Um valor nulo ou indefinido é avaliado como falso na expressão condicional.