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.
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 Entrar.
null == indefinido
A saída deve fornecer algo parecido com isto, o valor booleano retornado de verdadeiro simplesmente significa que os dois valores são iguais.
Saber 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.
nulo indefinido
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 (nulo)
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 (indefinido)
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 verdadeiro; 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 verdadeiro.
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 é verdadeiro, significado nulo é um valor do tipo número em JavaScript. Considerando que, conduzindo o mesmo teste em Indefinido retorna falso.
isFinite (indefinido)
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 + nulo
3 * nulo
1 + indefinido
3 * indefinido;
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.
- Programação
- JavaScript
- Dicas de codificação
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.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Mais um passo…!
Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.