Maison >interface Web >js tutoriel >Parlons de l'opérateur facultatif (?.) en JavaScript
Cet article vous présentera l'opérateur facultatif (?.) en JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Comment vérifier les propriétés imbriquées de l'objet d'accès à l'aide de null (null
et undefined
) ?
Vous pouvez utiliser l'opérateur ternaire imbriqué :
const userName = response ? (response.data ? (response.data.user ? response.data.user.name : null) : null) : null;
ou utiliser if
pour la vérification nulle :
let userName = null; if(response && response.data && response.data.user){ userName = response.data.user.name; }
Ou mieux encore, en faire une &&
conditions pour un seul- des liens de ligne, comme ceci :
const userName = response && response.data && response.data.user && response.data.user.name;
Ce que les codes ci-dessus ont en commun, c'est que les liens peuvent parfois être très verbeux et devenir plus difficiles à formater et à lire. C'est pourquoi l'opérateur ?.
a été proposé Changeons ?.
et reconstruisons le code ci-dessus :
const userName = response?.data?.user?.name;
est très sympa.
?.
La syntaxe a été introduite dans ES2020 et son utilisation est la suivante :
obj.val?.pro // 如果`val`存在,则返回`obj.val.prop`,否则返回 `undefined`。 obj.func?.(args) // 如果 obj.func 存在,则返回 `obj.func?.(args)`,否则返回 `undefined`。 obj.arr?.[index] // 如果 obj.arr 存在,则返回 `obj.arr?.[index]`,否则返回 `undefined`。
?.
opérateurSupposons que nous ayons un user
objet :
const user = { name: "前端小智", age: 21, homeaddress: { country: "中国" }, hobbies: [{name: "敲代码"}, {name: "洗碗"}], getFirstName: function(){ return this.name; } }
Accès aux propriétés existantes :
console.log(user.homeaddress.country); // 中国
Accéder aux attributs non existants :
console.log(user.officeaddress.country); // throws error "Uncaught TypeError: Cannot read property 'country' of undefined"
Utilisez ?.
à la place. Accédez aux attributs non existants :
console.log(user.officeaddress?.country); // undefined
Accédez aux méthodes existantes :
console.log(user.getFirstName());
Accéder aux méthodes inexistantes :
console.log(user.getLastName()); // throws error "Uncaught TypeError: user.getLastName is not a function";
Utilisez ?.
à la place. Accédez aux méthodes inexistantes :
console.log(user.getLastName?.()); // "undefined"
console.log(user.hobbies[0].name); // "敲代码"Accédez à la méthode inexistante :
console.log(user.hobbies[3].name); // throws error "Uncaught TypeError: Cannot read property 'name' of undefined"Utilisez
Accédez à un tableau inexistant : ?.
console.log(user.dislikes?.[0]?.name); // "undefined"
??<h3 id="item-5"></h3>
<strong>??</strong>
opérateur Nous savons que le symbole de l'opérateur renvoie simplement ?.
si l'objet n'existe pas. Pendant le développement, il peut ne pas exister. renvoie undefined
mais renvoie à la place une valeur par défaut, nous pouvons alors utiliser l'opérateur double question undefined
. ??
const country = user.officeaddress?.country; console.log(country); // undefinedBesoin de renvoyer la valeur par défaut :
const country = user.officeaddress?.country ?? "中国"; console.log(country); // 中国
Adresse originale en anglais : https://codingncoepts. com/javascript/facultatif-chaining-opeator-javascript/Auteur : Ashish LahotiPour plus de connaissances sur la programmation, veuillez visiter :
Introduction à la programmation ! !
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!