Posez votre question Signaler

Tester une variable en javascript

stena83 - Dernière réponse le 29 mars 2012 à 22:58
Bonjour comment test si une variable existe en javascript, l'équivalent en php est isset() et empty()

merci.
Lire la suite 

Tester une variable en javascript »

11 réponses
Réponse
+42
moins plus
ajout un ' simple cote 'undefined'

f(typeof(maVariable)=='undefined'){
alert('Variable maVariable indéfinie');
}
else{
alert('Variable maVariable définie');
}
ketsio - 8 avril 2010 à 19:31
Ajout d'un i au tout début pour former if. ;)
px: quitte à être pointilleux... =p
Achmed - 29 mars 2012 à 22:58
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'){
Ajouter un commentaire
Réponse
+20
moins plus
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();}
}
troulala - 4 mai 2010 à 11:39
Sauf que dans le cas d'un boolean qui vaut false, cela serait pris comme undefini !
arphaxad - 3 juin 2010 à 23:16
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');
jsnewbye - 10 oct. 2011 à 11:00
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
Ajouter un commentaire
Réponse
+13
moins plus
typeof avec un o minuscule.
bux - 1 juin 2011 à 15:06
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.
Ajouter un commentaire
Réponse
-2
moins plus
Il faut utiliser la fonction typeOf()

Exemple :

if(typeOf(maVariable)=='undefined){
alert('Variable maVariable indéfinie');
}
else{
alert('Variable maVariable définie');
}
Ajouter un commentaire
Ce document intitulé « tester une variable en javascript » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?