tout sur null en JavaScript

JavaScript a 2 types de types: les primitives (chaînes, booléens, nombres, symboles) et les objets.

les Objets sont des structures de données complexes. L’objet le plus simple en JavaScript est l’objet simple — une collection de clés et de valeurs associées:

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

Mais il y a des situations où un objet ne peut pas être créé. Dans de tels cas, JavaScript fournit une valeur spéciale null — qui indique un objet manquant.,

let myObject = null;

dans cet article, vous apprendrez tout sur null en JavaScript: sa signification, comment le détecter, la différence entre null Et undefined, et pourquoi utiliser null crée largement des difficultés de maintenance du code.

1. Le concept de null

la spécification JavaScript dit à propos de null:

null est une valeur primitive qui représente l’absence intentionnelle de toute valeur d’objet.,

Si vous voyeznull (affecté à une variable ou renvoyé par une fonction), alors à cet endroit aurait dû être un objet, mais pour une raison quelconque, un objet n’a pas été créé.

Par exemple, la fonction greetObject() crée des objets, mais aussi de retour null lorsqu’un objet ne peut pas être créé:

Cependant, lors de l’appel de la fonction sans arguments — greetObject() — la fonction renvoie null., Renvoyer null est raisonnable car le paramètre who n’a aucune valeur et l’objet de salutation ne peut pas être créé.

1.1 analogie du monde réel de null

en pensant à une analogie du monde réel, vous pouvez imaginer une variable comme étant une boîte. Tout comme une variable peut contenir un objet, la boîte peut contenir des objets comme une théière.

mais une fois que vous recevez une boîte et l’ouvrez… et rien là! Quelqu’un a fait une erreur et vous a envoyé une boîte vide. La boîte ne contient rien, ou, en le disant différemment, contient une valeur null.

2., Comment vérifier la valeur null

La bonne façon de vérifier pour la null est par l’utilisation de l’opérateur d’égalité stricte:

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

missingObject === null donne true car missingObject variable contient une balise null valeur.

Si la variable contient une valeur non nulle, comme un objet, l’expression existingObject === null donne 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… comment pouvait le type d’un objet manquant d’évaluer la 'object'? Il s’avère que typoef nullétant 'object' était une erreur dans la première implémentation JavaScript.

Ne pas utiliser typeof opérateur de détecter un null valeur. Comme mentionné précédemment, utilisez l’opérateur d’égalité stricte myVar === null.,

Si vous souhaitez vérifier si une variable contient un objet à l’aide de typeof opérateur, vous devez vérifier contre null aussi:

3. Le piège de null

null peut apparaître, souvent de manière inattendue, dans des situations où vous attendez un objet. Ensuite, si vous essayez d’extraire une propriété de null, JavaScript renvoie une erreur.,

nous allons utiliser à nouveau greetObject() fonction et essayez d’accéder à message propriété de l’objet retourné:

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

Car who variable est une chaîne vide, la fonction renvoie null. Lors de l’accès à la propriété message à partir de null, une erreur TypeError est générée.,

Vous pouvez gérer null soit en utilisant l’option de chaînage avec nullish coalescence:

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

ou utiliser 2 alternatives décrites dans la section suivante.

4. Alternatives à null

Il est tentant de renvoyernull lorsque vous ne pouvez pas construire un objet. Mais cette pratique a des inconvénients.

dès null apparaît dans votre pile d’exécution, vous pouvez toujours les vérifier.,

j’essaie d’éviter le retour de null en faveur de:

  • retour d’un objet par défaut au lieu de null
  • lancer une erreur au lieu de retourner null

rappelons que le greetObject() fonction qui renvoie de voeux des objets.

au Lieu de retourner null lorsque l’argument est absent, vous pouvez soit retourner un objet par défaut:

soit renvoie une erreur:

Ces pratiques vous permettent d’éviter de traiter avec des null à tous.

5., null vs undefined

undefined est la valeur d’une propriété de variable ou d’objet non initialisée.

Par exemple, si vous déclarez une variable sans l’assigner une valeur initiale, accéder à cette variable prend la valeur undefined:

let myVariable;myVariable; // => undefined

La principale différence entre null et undefined que null représente un objet manquant, tandis que le undefined représente un état non initialisé.,

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., Résumé

null est une valeur en JavaScript qui représente un objet manquant.

l’opérateur d’égalité stricte détermine si une variable est nulle:variable === null.

typoef opérateur est utile pour déterminer le type d’une variable (nombre, chaîne, booléen). Cependant, typeof est trompeur dans le cas de null: typeof null donne 'object'.,

null et undefined sont en quelque sorte l’équivalent, encore, null représente un objet manquant, tandis que le undefined état non initialisé.

évitez si possible de renvoyernull ou de définir des variables surnull. Cette pratique conduit à la propagation des valeurs nulles et des vérifications de null. Au lieu de cela, essayez d’utiliser des objets avec des propriétés par défaut, ou même de lancer des erreurs.

après Avoir maîtrisé null, pourquoi ne pas master undefined?, Suivez mon post 7 conseils pour gérer undefined en JavaScript.

Quel état avez-vous utiliser pour vérifier null?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *