Découvrez comment vérifier les propriétés d'un objet
Si vous programmez en JavaScript, vous avez peut-être rencontré des situations où vous aviez besoin de savoir si une certaine propriété existe dans un objet, et c'est là que l'opérateur in entre en jeu. Je vais vous montrer comment cela fonctionne, comment l'utiliser et pourquoi il peut être plus efficace que d'autres moyens de vérifier les propriétés d'un objet.
L'opérateur in est utilisé en JavaScript pour vérifier si une propriété existe sur un objet. Ce qui est cool, c'est qu'il vérifie non seulement les propriétés directement définies dans l'objet, mais aussi celles héritées des prototypes.
La syntaxe est très simple :
'propriedade' in objeto;
Si la propriété existe, elle renvoie vrai et si elle n'existe pas, faux. Cela semble simple, non ? Mais son utilité va au-delà d’un simple contrôle. Souhaitez-vous voir quelques exemples ?
Pour commencer, voyons un exemple de base d'utilisation de l'opérateur in pour vérifier une propriété directe.
const carro = { marca: 'Toyota', ano: 2020 }; console.log('marca' in carro); // true console.log('modelo' in carro); // false
Ici, nous avons un objet automobile avec les propriétés de la marque et de l'année. Lorsque nous utilisons « marque » dans voiture, le résultat est vrai, car la propriété de marque existe directement dans l'objet. 'model' dans carro renvoie false, puisque cette propriété n'a pas été définie.
Ce type de vérification est idéal pour éviter les erreurs lorsque vous essayez d'accéder à des propriétés qui n'existent pas. Avez-vous déjà essayé d'accéder à une propriété inexistante et brisé le code ? Moi déjà ! ?
Maintenant, regardez comment l'opérateur in détecte également les propriétés héritées du prototype
const pessoa = { nome: 'Ana' }; console.log('toString' in pessoa); // true
Dans ce cas, l'objet personne n'a pas directement la propriété toString, mais cette fonction est héritée de Object.prototype. L'opérateur in peut voir cela et renvoie vrai.
Parfois, vous souhaiterez peut-être vérifier si une fonctionnalité héritée est disponible dans l'objet. Cela peut vous sauver dans certaines situations plus complexes.
Faisons maintenant une comparaison avec une autre façon de vérifier les propriétés, la méthode hasOwnProperty. Il vérifie uniquement si la propriété a été définie directement sur l'objet, en ignorant celles héritées.
const pessoa = { nome: 'Ana' }; console.log(pessoa.hasOwnProperty('toString')); // false console.log('toString' in pessoa); // true
La méthode hasOwnProperty renvoie false pour toString, car cette propriété n'est pas directement sur l'objet personne. Pendant ce temps, l'opérateur in renvoie vrai, car il prend également en compte les propriétés héritées.
La réponse est la plus évoquée lorsqu'on demande quoi que ce soit à un développeur senior, ça dépend.
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!