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
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 KumwendaAssine 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