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

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

Linda Hamilton
Libérer: 2024-12-03 12:51:13
original
422 Les gens l'ont consulté

How Can Optional Chaining and Nullish Coalescing Improve Null-Safe Property Access and Conditional Assignment in JavaScript?

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

En JavaScript, il peut être fastidieux d'accéder aux propriétés des objets qui peuvent être nul ou indéfini. De plus, l'attribution conditionnelle de valeurs à des variables peut impliquer des blocs try/catch sujets aux erreurs.

L'opérateur de chaînage facultatif (?.), introduit dans ES2020, fournit un moyen concis d'accéder aux propriétés des objets nullables. Il renvoie undefined si la propriété n'existe pas, éliminant ainsi le besoin de vérifications explicites.

Pour l'affectation conditionnelle, l'opérateur d'affectation de fusion nulle (??=) attribue une valeur à une variable uniquement si elle est actuellement nulle ou indéfini. Cela évite d'écraser inutilement les valeurs existantes.

Exemple :

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

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

Dans cet exemple, l'affectation n'a lieu que si query(x).value existe, sinon l'ancienne la valeur est conservée. Le chaînage facultatif garantit qu'aucune erreur n'est générée lors de l'accès à la propriété si la requête (x) n'est pas définie.

Autres notes :

  • L'opérateur ??= ne peut pas être utilisé directement pour l'attribution conditionnelle d'une propriété, car il attribuerait toujours la valeur quelle que soit l'existence de la propriété.
  • Un chaînage facultatif peut être utilisé pour une propriété imbriquée accès, par exemple, a?.b?.c, où a, b et c sont des propriétés d'objets nullables.
  • Babel-preset-env peut être utilisé pour transpiler du code JavaScript avec des opérateurs de chaînage et de fusion facultatifs. pour la compatibilité avec les environnements plus anciens.

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