Double Possible:
La détection d'une non défini propriété de l'objet en JavaScriptJe voulais vérifier si la variable est définie ou non. Par exemple, le jette a pas d'erreur définie par l'
alert( x );
Comment puis-je rattraper cette erreur?
Réponses
Trop de publicités?En JavaScript, null
est un objet. Il y a une autre valeur pour les choses qui n'existent pas, undefined
. Le DOM retours null
pour presque tous les cas où il ne parvient pas à trouver une structure dans le document, mais en JavaScript lui-même undefined
est la valeur utilisée.
Deuxièmement, non, il n'y a pas d'équivalent direct. Si vraiment vous voulez vérifier l' null
, ne:
if (null == yourvar) // With casting
if (null === yourvar) // Without casting
Si vous voulez vérifier si une variable existe
if (typeof yourvar != 'undefined') // Any scope
if (window['varname'] != undefined) // Global scope
if (window['varname'] != void 0) // Old browsers
Si vous connaissez la variable existe, mais ne sais pas si il y a une quelconque valeur y sont stockées:
if (undefined != yourvar)
if (void 0 != yourvar) // For older browsers
Si vous voulez savoir si un membre, indépendamment de savoir si il a été attribué une valeur ou pas:
if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance
Si vous voulez savoir si une variable autocasts de vrai:
if(variablename)
J'ai surement oublié un peu de méthode...
Le seul moyen de véritablement tester si une variable est - undefined
est de faire ce qui suit. Rappelez-vous, indéfini est un objet en Javascript.
if (typeof someVar === 'undefined') {
// Your variable is undefined
}
Certains des autres solutions dans ce thread va vous amener à croire à une variable non définie, même si elle a été définie (avec une valeur NULL ou 0, par exemple).