Comment détecter une propriété indéfinie d’un objet en JavaScript ?

Début du contenu principal

Il n’est pas rare de vouloir détecter des propriétés d’objets ayant une valeur de undefined. Bien que cela semble simple à première vue, undefined est une valeur plutôt difficile à vérifier.

Le plus souvent, les solutions s’orientent vers une comparaison directe et stricte avec undefined ou l’utilisation de typeof. Ces deux méthodes ont du mal à différencier les propriétés présentes ayant une valeur de undefined et les propriétés inexistantes. Elles sont donc sujettes à des erreurs silencieuses, si vous vous trompez dans l’orthographe de la propriété.

const obj = { prop : undefined };
obj.prop === undefined; 
typeof obj.prop === 'undefined'; 
obj.porp === undefined; 
typeof obj.porp === 'undefined'; 

Pour pallier à ce problème, Object.prototype.hasOwnProperty() peut être utilisée en plus de la méthode précédente pour vérifier si la propriété est effectivement présente sur l’objet. En outre, elle peut également être utilisée pour le contraire, de sorte que vous pouvez également détecter les propriétés inexistantes et les traiter en conséquence.

const hasUndefinedProperty = (obj, prop) =>
  obj.hasOwnProperty(prop) && obj[prop] === undefined;

const obj = { prop: undefined };
hasUndefinedProperty(obj, 'prop'); 
hasUndefinedProperty(obj, 'porp'); 

Extraits recommandés

À propos deCookiesFAQRSSGitHubTwitter

Site web, nom et logo © 2017-2022 30 secondes de code
Bribes individuelles sous licence CC-BY-4.0
Propulsé par Netlify, Next.js &amp ; GitHub

Laisser un commentaire