Tester une variable en javascript

Fermé
stena83 - 8 déc. 2004 à 11:17
 Cynder - 30 janv. 2013 à 10:38
Bonjour comment test si une variable existe en javascript, l'équivalent en php est isset() et empty()

merci.
A voir également:

4 réponses

ajout un ' simple cote 'undefined'

f(typeof(maVariable)=='undefined'){
alert('Variable maVariable indéfinie');
}
else{
alert('Variable maVariable définie');
}
59
Ajout d'un i au tout début pour former if. ;)
px: quitte à être pointilleux... =p
0
On veux ici tester une égalité de type, il faut donc utiliser === au lieu du == qui test une égalité de valeur. Les deux fonctionnent, mais la meilleure condition à mettre dans ce contexte est donc :
if(typeof maVariable === 'undefined'){
0
Achmed non tu te trompe.
Ici on compare une chaîne de caractères car entre quottes. Donc le === n'as pas de sens même si il fonctionne.
La syntaxe correct ici est donc bien
if (typeof (maVariable) == 'undefined')
0
il y a plus simple et cela consiste a utiliser un opérateur binaire.

En natif il n'est pas possible de créer des fonctions ayant un paramètre "facultatif" avec une valeur par défaut, mais il y a un moyen très simple de contourner ce problème justement en testant l'existence du paramètre.

pour reprendre le même code.

CODE:
var bool = maVariable || 0;
if(! bool) {
   alert('Variable maVariable indéfinie');
}
else{
   alert('Variable maVariable définie');
}


Utiliser un opérateur binaire a plusieurs avantages, il est beaucoup plus rapide en exécution qu'un appel a une fonction et tu écriras moins de code.

juste pour l'exemple une fonction avec deux paramètres ayant chacun une valeur par défaut

CODE:
/**
 *  Cette fonction permet d'ouvrir une popup avec un format prédéfinit.
 * 
 *  @param fct Lien url vers la page a ouvrir
 *  @param w largeur de la popup affiché (valeur par défaut 700)
 *  @param h hauteur de la popup affiché (valeur par défaut 600)
 */                                             
function openPopup(fct, w, h)
{
    var width = w || 700;
    var height= h || 600;
    var Left=window.screen.width/2-350;
    var Top=window.screen.height/2-350;
    neo=window.open(fct,'openPopup','width='+width+',height='+height+',menubar=no,toolbar=yes,location=no,scrollbars=yes,directories=no,resizable=yes,statusbar=no,left='+Left+',top='+Top) ;
  
    if(neo.window.focus){neo.window.focus();}
}
30
question posée en 2004 et réponse donné en 2010 ! Oo
Merci pour ta réponse qui, j'en suis sur, sera très utile pour beaucoup de gens.
#troulala : c'est ce qui est indiqué dans le code de Tomtom
if(! bool) {
   alert('Variable maVariable indéfinie');

perso j'aurais fait l'inverse dans le if pour économiser le "not" représenté par " ! "
var bool = maVariable || 0;
if( bool ) // bool = true = 1 = vrai
   alert('Variable maVariable définie');
else // sinon
   alert('Variable maVariable indéfinie');
0
var bool = maVariable || 0;
=> Cela provoque une exception, donc c'est bien typeof(maVariable) qu'il faut utiliser.
Même si le || peut s'avérer utile dans bien des cas, ici, cela ne répond pas à la question posée
0
typeof avec un o minuscule.
17
Il est préférable d'utiliser typeof oui, car si la variable n'a pas été déclaré il l'a traite sans faire planter le code.
0
Il faut utiliser la fonction typeOf()

Exemple :

if(typeOf(maVariable)=='undefined){
alert('Variable maVariable indéfinie');
}
else{
alert('Variable maVariable définie');
}
6