tudo sobre null em JavaScript

JavaScript tem 2 tipos de tipos: primitivos (strings, booleans, números, símbolos) e objetos. os objetos são estruturas de dados complexas. O mais simples objeto em JavaScript é o objeto simples — uma coleção de chaves e valores associados:

let myObject = { name: 'Eric Cartman'};

Mas há situações em que um objeto não pode ser criado. Para tais casos, JavaScript fornece um valor especial null — o que indica um objeto em falta.,

let myObject = null;

neste post, você vai aprender tudo sobre o null em JavaScript: o seu significado, como detectá-lo, a diferença entre null e undefined e por que usar null extensivamente cria manutenção de código de dificuldades.

1. O conceito de null

A especificação de JavaScript diz sobre null:

null é um valor primitivo que representa a ausência intencional de qualquer objeto de valor.,

Se você ver null (atribuído a uma variável ou retornado por uma função), então, em que lugar deve ter sido um objeto, mas, por alguma razão, um objeto não foi criado.

Por exemplo, a função greetObject() cria objetos, mas também pode retornar null quando um objeto não pode ser criado:

no Entanto, ao invocar a função sem argumentos — greetObject() — a função retorna null., Returning null is reasonable because who parameter has no value, and the greeting object cannot be created.

1.1 analogia do mundo Real de null

pensando sobre uma analogia do mundo real, você pode imaginar uma variável como sendo uma caixa. Assim como uma variável pode segurar um objeto, a caixa pode conter objetos como um bule. mas assim que receberes uma caixa e a abrires… e nada lá! Alguém cometeu um erro e Enviou-te uma caixa vazia. A caixa não contém nada, ou, dizendo de forma diferente, contém um valor null. 2., Como verificar null

O boa maneira de verificar null é usando o operador de igualdade estrita:

const missingObject = null;const existingObject = { message: 'Hello!' };missingObject === null; // => trueexistingObject === null; // => false

missingObject === null avalia true porque missingObject variável contém um null valor.

If the variable contains a non-null value, like an object, the expression existingObject === null evaluates to false.

2.,1 null is falsy

null, alongside false, 0, '', undefined, NaN, is a falsy value. If a falsy value is encountered in conditionals, then JavaScript coerces falsy to false.

Boolean(null); // => falseif (null) { console.log('null is truthy');} else { console.log('null is falsy'); // logs 'null is falsy'}

2.2 typeof null

Interestingly, to what value type null evaluates to?,

typeof null; // => 'object'

Hm… como é que o tipo de objecto em falta pode avaliar para 'object'? Acontece que typoef nullsendo'object' foi um erro na implementação JavaScript inicial.

não utilizetypeof operador para detectar um valornull. Como mencionado anteriormente, use o operador de igualdade estrita myVar === null.,

Se quiser verificar se uma variável contém um objecto COM typeof operador, terá de verificar novamente o null também:

3. A armadilha de null

null pode aparecer, muitas vezes inesperadamente, em situações em que você espera um objeto. Então se você tentar extrair uma propriedade de null, JavaScript lança um erro.,

Vamos usar novamente greetObject() função e tente acessar o message propriedade do objeto retornado:

let who = '';greetObject(who).message; // throws "TypeError: greetObject() is null"

Porque who variável é uma string vazia, a função retorna null. Ao acessar messageproperty fromnull, um erro tipográfico é lançado.,

Você pode lidar com null utilizando o opcional de encadeamento com nullish de coalescência:

let who = '';greetObject(who)?.message ?? 'Hello, Stranger!'; // => 'Hello, Stranger!'

ou usar 2 alternativas descritas na próxima seção. 4. Alternativas a null

é tentador retornar null quando você não pode construir um objeto. Mas esta prática tem desvantagens.

assim que null aparece dentro da sua pilha de execução, terá sempre de a verificar.,

vou tentar evitar a devolver null em favor de:

  • retornar um objeto padrão em vez de null
  • jogando um erro, em vez de retornar null

Vamos lembrar o greetObject() função que retorna saudação objetos.

em Vez de retornar null quando o argumento está ausente, você pode retornar um objeto padrão:

quer jogar um erro:

Estas práticas permitem que você evite a lidar com null a todos.

5., null vs indefinido

undefined é o valor de uma variável ou propriedade de objeto não inicializada.

Por exemplo, se você declarar uma variável sem atribuir um valor inicial, o acesso a essas variáveis avalia undefined:

let myVariable;myVariable; // => undefined

A principal diferença entre null e undefined é que null representa um objeto ausente, enquanto undefined representa um estado não inicializado.,

The strict equality operator === distinguishes null from undefined:

null === undefined; // => false

While loose equality operator == considers null and undefined equal:

null == undefined; // => true

I use the loose equality operator to check whether a variable is null or undefined:

6., Resumo

null é um valor especial em JavaScript que representa um objeto em falta.

O operador de igualdade determina se uma variável é nula: variable === null.

typoef operador é útil para determinar o tipo de uma variável (número, cadeia, booleano). No entanto, typeof é enganosa, no caso de null: typeof null avalia 'object'.,

null e undefined estão de alguma forma equivalente, ainda, null representa um objeto ausente, enquanto undefined estado não inicializada.

evite, se possível, retornar nullou definir variáveis paranull. Esta prática leva à propagação de valores nulos e verificações para null. Em vez disso, tente usar objetos com propriedades padrão, ou até mesmo lançar erros.

tendo masterizadonull, por que não masterundefined?, Siga as minhas dicas post 7 para lidar com indefinido em JavaScript.

Qual a condição que utiliza para verificar se existe null?

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *