Tester une variable en javascript

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

merci.

4 réponses

  1. ajout un ' simple cote 'undefined'

    f(typeof(maVariable)=='undefined'){
    alert('Variable maVariable indéfinie');
    }
    else{
    alert('Variable maVariable définie');
    }
    59
    1. Ajout d'un i au tout début pour former if. ;)
      px: quitte à être pointilleux... =p
      0
    2. 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. 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. Il faut utiliser la fonction typeOf()

    Exemple :

    if(typeOf(maVariable)=='undefined){
    alert('Variable maVariable indéfinie');
    }
    else{
    alert('Variable maVariable définie');
    }
    6
    1. typeof avec un o minuscule.
      17
      1. 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
    2. 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. 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. 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