981 votes

Comment vérifier un pas variable définie dans le code JavaScript

Double Possible:
La détection d'une non défini propriété de l'objet en JavaScript

Je 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?

1771voto

Natrium Points 14040

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

Source

376voto

Michael Wales Points 3308

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).

72voto

Jason S Points 58434

techniquement, la bonne solution est (je crois)

typeof x === "undefined"

Vous pouvez parfois être paresseux et de l'utilisation

x == null

mais qui permet à la fois un undefined variable x et une variable x contenant la valeur null, retourner la valeur true.

20voto

Dmitri Farkov Points 3743

Encore plus facile et plus version courte serait:

if( !x ){
   //undefined
}

OU

if( typeof x !== "undefined" ){
    //do something since x is defined.
}

16voto

Joe Points 1255

Je l'ai souvent fait:

function doSomething(variable)
{
    var undef;

    if(variable === undef)
    {
         alert('Hey moron, define this bad boy.');
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X