Maison  >  Article  >  interface Web  >  Chaînage facultatif et fusion nulle

Chaînage facultatif et fusion nulle

王林
王林original
2024-08-21 06:13:02776parcourir

Optional Chaining and Nullish Coalescing

Chaînage optionnel : l'accesseur gracieux

Disons que vous avez un objet représentant un utilisateur et que vous souhaitez accéder à son adresse.

Dans le passé, vous auriez pu faire quelque chose comme ceci :

const user = {
 name: "Alice",
 address: { street: "123 Main St" }
};

const street = user.address && user.address.street;

console.log('Street: ', street); // Output: 123 Main St

Mais que se passe-t-il si l'objet utilisateur n'a pas de propriété d'adresse ou si l'objet d'adresse n'a pas de propriété de rue ?

Vous obtiendrez une erreur !

Entrez dans le chaînage facultatif !

Cet opérateur (?.) vous permet d'accéder aux propriétés imbriquées en toute sécurité, renvoyant undéfini si une partie de la chaîne est manquante.

Par exemple :

const user = {
 name: "Bob"
};

const street = user.address?.street;
console.log('Street: ', street); // Output: undefined

Vous voyez à quel point le code est plus propre et concis ?

Coalescence nulle

Le défenseur des valeurs par défaut.

Maintenant, imaginons que vous souhaitiez attribuer une valeur par défaut à une variable si elle est nulle ou indéfinie. Traditionnellement, vous pouvez utiliser l'opérateur OR (||). Cependant, cela peut conduire à un comportement inattendu si la variable contient une valeur « fausse » comme 0 ou une chaîne vide.

Pourquoi c'est utile :

  • Il simplifie le code en remplaçant les instructions if verbeuses ou les opérateurs ternaires.
  • Il se concentre spécifiquement sur les valeurs nulles et indéfinies, contrairement à l'opérateur logique OU (||) qui traite également les valeurs fausses (comme 0 ou les chaînes vides) comme « manquantes ».
let userSettings = null; // Imagine this comes from an API or user input

// Without nullish coalescing:
let theme = userSettings !== null && userSettings !== undefined ? userSettings.theme : 'light';

// With nullish coalescing:
let theme = userSettings?.theme ?? 'light'; // If userSettings.theme is null or undefined, 'light' is used

Points clés :

  • Le côté gauche de ?? est évalué en premier.
  • Si le côté gauche est nul ou indéfini, le côté droit est renvoyé.
  • Sinon, le côté gauche est retourné.

C'est particulièrement pratique lorsqu'il s'agit de propriétés facultatives ou de données potentiellement manquantes.


Le chaînage facultatif et la fusion nulle vous aident à écrire un code plus lisible, plus robuste et plus résistant aux erreurs.

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
Article précédent:Premiers pas avec NodeJSArticle suivant:Premiers pas avec NodeJS