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?
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?
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 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).
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.
Une version encore plus simple et plus rapide serait:
if (!x) {
//Undefined
}
OU
if (typeof x !== "undefined") {
//Do something since x is defined.
}
J'ai souvent fait:
function doSomething(variable)
{
var undef;
if(variable === undef)
{
alert('Hey moron, define this bad boy.');
}
}
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);
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 ..."