Tester une variable en javascript

Fermé
stena83 -  
 Cynder -
Bonjour comment test si une variable existe en javascript, l'équivalent en php est isset() et empty()

merci.

4 réponses

  1. broute
     
    ajout un ' simple cote 'undefined'

    f(typeof(maVariable)=='undefined'){
    alert('Variable maVariable indéfinie');
    }
    else{
    alert('Variable maVariable définie');
    }
    59
    1. ketsio
       
      Ajout d'un i au tout début pour former if. ;)
      px: quitte à être pointilleux... =p
      0
    2. Achmed
       
      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
    3. Cynder
       
      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
  2. Tomtom
     
    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
    1. arphaxad
       
      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
    2. jsnewbye
       
      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
  3. azer
     
    typeof avec un o minuscule.
    17
    1. bux
       
      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
  4. NEVdD
     
    Il faut utiliser la fonction typeOf()

    Exemple :

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