Maison > Article > interface Web > Chaînage facultatif et fusion nulle
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 !
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 ?
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 :
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
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!