IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Evaluation d'une variable globale


Sujet :

JavaScript

  1. #1
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut Evaluation d'une variable globale
    Bonjour, je ne suis pas du tout dev JS mais là c pour aider quelqu'un, j'essaie de récupérer la valeur d'une variable globale que je génère avec un String.
    Le code originale (qui fonctionne) fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
      data.addRows([
              [1998, eval('$BIO_1998')/1E6],
              [1999, eval('$BIO_1999')/1E6],
              [2000, eval('$BIO_2000')/1E6],
              [2001,eval('$BIO_2001')/1E6],
              [2002, eval('$BIO_2002')/1E6],
              [2003, eval('$BIO_2003')/1E6],
              [2004, eval('$BIO_2004')/1E6],
              [2005, eval('$BIO_2005')/1E6],
              [2006, eval('$BIO_2006')/1E6],
              [2007, eval('$BIO_2007')/1E6],
              [2008, eval('$BIO_2008')/1E6],
              [2009, eval('$BIO_2009')/1E6],
              [2010, eval('$BIO_2010')/1E6],
              [2011, eval('$BIO_2011')/1E6],
              [2012, eval('$BIO_2012')/1E6],
              [2013, eval('$BIO_2013')/1E6],
              [2014, eval('$BIO_2014')/1E6],
              [2015, eval('$BIO_2015')/1E6],
              [2016, eval('$BIO_2016')/1E6],
              [2017, eval('$BIO_2017')/1E6]
            ]);
    j'ai essayé de le remplacer par une boucle, mais cela ne marche pas, il ne reconnais pas la variable $BIO_1998
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                   var year = 2017;
                    var array = [];
                    for (y = 1998; y <= year; y++) {
                        var strVar = '$BIO_' + y;
                        array.push([y, eval(strVar)/1e6]);
                    }
                    data.addRows(array);
    je ne comprend pas toutes les subtilités de js mais après avoir beaucoup cherché je demande de l'aide.
    Merci

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    '$BIO_1998' est un texte (string) pas une variable globale (ex : var $BIO_1998 = 67;).

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    bonjour, pourtant dans le code original eval('$BIO_1998')/1E6 est bien une valeur.

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    data.addRows() est une fonction issue d'une bibliothèque en JavaScript. Il faut donc rechercher dans la documentation relative à cette bibliothèque comment cette fonction doit être mise en oeuvre.

    Par ailleurs, comment constatez-vous que dans la boucle, la variable $BIO_1998 n'est pas reconnue? Peut-être que le problème vient du remplacement d'une majuscule par une minuscule : eval('$BIO_1998')/1E6 est différent de eval('$BIO_1998')/1e6.

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Si la variable est définie préalablement, oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var $BIO_1998 = 67;
     
    console.log( eval('$BIO_1998')/1E6 );
    console.log( $BIO_1998 / 1e6 );

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Rebonjour,

    Je suis un peu méfiant : J'ai toujours vu le "dix exposant" avec une lettre minuscule. Je me dis qu'avec certains navigateurs, une lettre majuscule peut peut-être engendrer un problème.

    Sinon, stc074 a écrit :
    pourtant dans le code original eval('$BIO_1998')/1E6 est bien une valeur
    Et pas dans le code final?

  7. #7
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Rebonjour,

    D'après le document de référence, page 167, partie 11.8.3 :
    http://www.ecma-international.org/pu...T/Ecma-262.pdf
    On peut utiliser e ou E pour le "dix exposant"...

Discussions similaires

  1. [Sécurité] Activation d'une variable globale
    Par Ricou13 dans le forum Langage
    Réponses: 3
    Dernier message: 28/09/2005, 10h24
  2. [quai debutant] : creation d'une variable globale.
    Par bapman344 dans le forum Access
    Réponses: 4
    Dernier message: 23/06/2005, 11h33
  3. Réponses: 5
    Dernier message: 25/05/2005, 22h29
  4. Comment déclarer une variable globale
    Par davkick dans le forum C
    Réponses: 13
    Dernier message: 20/05/2005, 18h50
  5. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2003, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo