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
Linda Hamiltonoriginal
2024-12-03 12:51:13427parcourir

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

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!

Déclaration:
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