Qual é a diferença entre nulo e indefinido em JavaScript?

Qual é a diferença entre nulo e indefinido em JavaScript?

Este guia examinará a diferença entre nulo e Indefinido valores em JavaScript. Saber a diferença entre esses dois valores é importante para depurar e criar código sem erros.





você pode baixar filmes netflix no mac

Use o console do seu navegador para acompanhar ou experimentar os exemplos de código discutidos neste guia.





Comparando Igualdade de Valores Nulos e Indefinidos

Em JavaScript, nulo é um valor primitivo usado para significar a ausência intencional de um valor de objeto, enquanto Indefinido é um valor primitivo que atua como um marcador de posição para uma variável que não recebeu um valor.





Nulo e Indefinido os valores são iguais quando comparados usando o operador de igualdade JavaScript.

Use o operador de igualdade ( == ) para comparar se nulo e Indefinido os valores são iguais em JavaScript.



Abra o console do navegador e insira o código a seguir e pressione Digitar.

null == undefined

A saída deve fornecer algo parecido com isto, o valor booleano retornado de verdade simplesmente significa que os dois valores são iguais.





Saiba mais: como declarar variáveis ​​em JavaScript

Comparação Estrita de Igualdade

JavaScript também tem um operador de identidade ( === ), também conhecido como operador de igualdade estrita, além do operador de igualdade ( == )





O operador de identidade vai além ao verificar se o tipo subjacente dos valores que estão sendo comparados é o mesmo. Isso significa essencialmente que, embora dois valores sejam iguais, eles podem não ser idênticos ou estritamente iguais se seus tipos subjacentes forem diferentes.

Para testar a igualdade estrita, use o sinal de igual triplo conforme abaixo.

null === undefined

O resultado do comando acima lhe dará um valor booleano de falso , Em outras palavras, os dois valores não são idênticos, embora sejam iguais.

Descobrindo o tipo de nulo e indefinido

Use a função JavaScript integrada tipo de() para descobrir o tipo subjacente de um valor. A função usa um único parâmetro do valor cujo tipo você deseja encontrar.

Relacionado: A última folha de dicas do JavaScript

typeof(null)

O valor nulo é do tipo objeto como você pode ver na saída abaixo.

Executando um teste semelhante no Indefinido valor lhe dará um resultado de Indefinido .

typeof(undefined)

Trabalhando com Números

Para explorar mais diferenças, conduza o teste numérico em nulo e Indefinido valores. Se um valor for um número, isso significa que podemos realizar operações numéricas sobre ele.

Existem duas maneiras principais de testar se um valor é um número em JavaScript.

1. Usando o isFinite () função — se o valor em teste for um número, a função retorna verdade ; caso contrário, ele retorna falso .

2. Usando o isNaN () função — se o valor em teste for um número, ele retorna falso ; caso contrário, ele retorna verdade .

Observação : isNaN é a abreviação de 'não é um número'.

Para manter as coisas simples, este guia usará apenas o isFinite () função para testar se o valor é um número, mas sinta-se à vontade para tentar também o isNaN () função. Ambas as funções usam o valor no qual você deseja executar o teste de número como parâmetro.

isFinite(null)

O resultado é verdade , significado nulo é um valor do tipo número em JavaScript. Considerando que, conduzindo o mesmo teste em Indefinido retorna falso .

isFinite(undefined)

Coerção de tipo

JavaScript é uma linguagem vagamente tipada e, por isso, ao conduzir operações matemáticas, o JavaScript converterá automaticamente o resultado para o tipo que desejar.

Infelizmente, essa conversão automática, comumente chamada de coerção de tipo, pode trazer muitas surpresas.

Execute a seguinte operação numérica em nulo e Indefinido no console do seu navegador.

1 + null 3 * null 1 + undefined 3 * undefined;

Como você pode ver, você pode realizar algumas operações numéricas no nulo valor porque é um número que não tem valor. Portanto, é tratado como um zero. Observe que nulo não é igual a zero em JavaScript, mas é de alguma forma tratado assim neste caso.

As operações numéricas no Indefinido resultado do valor no retorno do NaN (Não é um número) valor. Se não for tratado com cuidado, você pode experimentar isso durante o tempo de execução.

Evitando bugs de tempo de execução

Uma boa compreensão de nulo e Indefinido valores é vital para evitar bugs de tempo de execução em seu código de produção. Bugs relacionados a Indefinido os valores podem ser difíceis de depurar e devem ser evitados.

Considere o uso de TypeScript para código fortemente tipado que compila em JavaScript. No TypeScript, seu código é verificado em tempo de compilação para minimizar bugs de tempo de execução em seu código de produção.

Compartilhado Compartilhado Tweet O email Tópicos relacionados
  • Programação
  • JavaScript
  • Dicas de codificação
Sobre o autor Bom para ir(36 artigos publicados)

Mwiza desenvolve software profissionalmente e escreve extensivamente em Linux e programação front-end. Alguns de seus interesses incluem história, economia, política e arquitetura empresarial.

Mais de Mwiza Kumwenda

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever