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 ?
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.
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
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
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.
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
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!