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 �prouv�
    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 : 50
    Localisation : France, Loz�re (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    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 : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    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 �prouv�
    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 : 50
    Localisation : France, Loz�re (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    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 chevronn�
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Mai 2014
    Messages
    396
    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 : 396
    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 : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    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 chevronn�
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Mai 2014
    Messages
    396
    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 : 396
    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 chevronn�
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Mai 2014
    Messages
    396
    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 : 396
    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