Maison > interface Web > js tutoriel > Comment le chaînage facultatif et la fusion nulle simplifient-ils l'accès aux propriétés Null-Safe en JavaScript ?

Comment le chaînage facultatif et la fusion nulle simplifient-ils l'accès aux propriétés Null-Safe en JavaScript ?

Patricia Arquette
Libérer: 2024-12-09 11:39:11
original
832 Les gens l'ont consulté

How Do Optional Chaining and Nullish Coalescing Simplify Null-Safe Property Access in JavaScript?

Accès aux propriétés NULL-Safe et affectation conditionnelle dans EcmaScript 6

EcmaScript 6 offre des opérateurs puissants pour rationaliser l'accès aux propriétés et l'affectation conditionnelle de manière concise et efficace.

Assignation conditionnelle

Dans les anciennes versions de JavaScript, la logique souhaitée pouvait être obtenue en utilisant un bloc try/catch :

const query = succeed => (succeed ? { value: 4 } : undefined);

let value = 3;
for (let x of [true, false]) {
  try { value = query(x).value; } catch {} // Don´t assign if no .value
}
console.log(value); // Outputs: 4
Copier après la connexion

Chaînage facultatif

Maintenant, avec le chaînage facultatif, cette logique peut être considérablement simplifiée :

const query = succeed => (succeed ? { value: 4 } : undefined);

let value = 3;
for (let x of [true, false]) {
  value = query(x)?.value; // Assign only if `.value` exists
}
console.log(value); // Outputs: 4
Copier après la connexion

Le ?. L'opérateur vérifie si query(x) est non nul et non défini, et accède ensuite seulement à la propriété value. Si query(x) est nulle ou indéfinie, elle renvoie indéfini sans générer d'erreur.

Coalescence nulle

Pour les valeurs nullables, l'opérateur de coalescence nulle (??) peut être utilisé :

const query = succeed => (succeed ? { value: 4 } : undefined);

let value = 3;
for (let x of [true, false]) {
  value ??= query(x).value; // Assign only if `value` is null or undefined
}
console.log(value); // Outputs: 4
Copier après la connexion

Le ?? L'opérateur compare l'opérande de gauche à null ou indéfini, et si vrai, attribue l'opérande de droite. Dans ce cas, la valeur ne sera mise à jour que si elle était initialement nulle ou non définie.

Notez que ces opérateurs sont pris en charge dans les navigateurs modernes et peuvent être utilisés avec Babel pour une compatibilité entre navigateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal