En JavaScript, vous pouvez déclarer une variable et si elle est undefined
, vous pouvez vérifier variable == undefined
; Je le sais, mais comment pouvez-vous comparer une valeur que vous ne connaissez pas encore si elle est en mémoire?
Par exemple, j'ai une classe qui est créée lorsque l'utilisateur clique sur un bouton. Avant cela, la classe n’était pas définie - elle n’existait nulle part; Comment puis-je le comparer?
Existe-t-il un moyen de ne pas utiliser try
– catch
?
Le meilleur moyen est de vérifier type, parce que undefined
/null
/false
sont une chose délicate dans JS. Alors:
if(typeof obj !== "undefined") {
// obj is a valid variable, do something here.
}
Notez que typeof
renvoie toujours une chaîne et ne génère pas d'erreur si la variable n'existe pas du tout.
if (obj === undefined)
{
// Create obj
}
Si vous effectuez une programmation JavaScript intensive, prenez l'habitude d'utiliser === et! == lorsque vous souhaitez effectuer une vérification spécifique au type.
De plus, si vous utilisez assez de javascript, je suggère d'utiliser du code via JSLint http://www.jslint.com Cela peut sembler un peu draconien au début, mais la plupart des choses JSLint vous avertit que vous reviendrez éventuellement vous mordre.
if (document.getElementById('theElement')) // do whatever after this
Pour les choses indéfinies qui génèrent des erreurs, testez le nom de la propriété de l'objet parent au lieu du nom de la variable - so au lieu de:
if (blah) ...
faire:
if (window.blah) ...
!undefined
est vrai en javascript, donc si vous voulez savoir si votre variable ou votre objet est indéfini et que vous souhaitez effectuer des actions, vous pouvez procéder de la manière suivante:
if(<object or variable>) {
//take actions if object is not undefined
} else {
//take actions if object is undefined
}
if (!obj) {
// object (not class!) doesn't exist yet
}
else ...