Question Comment vérifier une variable non définie en JavaScript


Je voulais vérifier si la variable est définie ou non. Par exemple, ce qui suit renvoie une erreur non définie

alert( x );

Comment puis-je attraper cette erreur?


769
2018-05-13 14:09


origine


Réponses:


En JavaScript, null est un objet. Il y a une autre valeur pour des choses qui n'existent pas, undefined. Le retour du DOM null pour presque tous les cas où il ne trouve pas de structure dans le document, mais dans JavaScript lui-même undefined est la valeur utilisée.

Deuxièmement, non, il n'y a pas d'équivalent direct. Si vous voulez vraiment vérifier spécifiquement pour null, faire:

if (yourvar === null) // Does not execute if yourvar is `undefined`

Si vous voulez vérifier si une variable existe, cela ne peut être fait qu'avec try/catch, depuis typeof traitera une variable non déclarée et une variable déclarée avec la valeur de undefined comme équivalent.

Mais, pour vérifier si une variable est déclarée et n'est pas undefined:

if (typeof yourvar !== 'undefined') // Any scope

Si vous connaissez la variable existe, et que vous voulez vérifier s'il y a une valeur stockée:

if (yourvar !== undefined)

Si vous voulez savoir si un membre existe indépendamment mais ne se soucie pas de sa valeur:

if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance

Si vous voulez savoir si une variable est véridique:

if (yourvar)

La source


1488
2018-05-13 14:11



La seule façon de vraiment tester si une variable est undefined est de faire ce qui suit. Rappelez-vous, undefined est un objet en JavaScript.

if (typeof someVar === 'undefined') {
  // Your variable is undefined
}

Certaines des autres solutions de ce thread vous amèneront à croire qu'une variable n'est pas définie même si elle a été définie (avec une valeur de NULL ou 0, par exemple).


301
2018-05-13 14:53



Techniquement, la bonne solution est (je crois):

typeof x === "undefined"

Vous pouvez parfois devenir paresseux et utiliser

x == null

mais cela permet à la fois une variable indéfinie x et une variable x contenant null de renvoyer true.


59
2018-05-13 14:12



Une version encore plus simple et plus rapide serait:

if (!x) {
   //Undefined
}

OU

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

16
2018-05-13 14:26



J'ai souvent fait:

function doSomething(variable)
{
    var undef;

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

14
2018-05-13 14:45



Vous pouvez également utiliser l'opérateur conditionnel ternaire:

var a = "hallo world";
var a = !a ? document.write("i dont know 'a'") : document.write("a = " + a);

//var a = "hallo world";
var a = !a ? document.write("i dont know 'a'") : document.write("a = " + a);


3
2018-02-12 12:02



J'utilise souvent le moyen le plus simple:

var variable;
if (variable === undefined){
    console.log('Variable is undefined');
} else {
    console.log('Variable is defined');
}

MODIFIER:

Sans initialiser la variable, une exception sera levée "Uncaught ReferenceError: la variable n'est pas définie ..."


1
2017-12-09 08:44