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 :

Définition de constante


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Définition de constante
    Bonjour

    J'ai plusieurs script js différent (script1.js, script2.js).
    Sur certaines pages, j'inclus les 2 scripts, sur d'autre juste un seul (des fois jsute le script1.js, d'autres fois juste le script2.js).

    Voilà mon problème, j'utilise les mêmes constantes dans les deux fichiers
    Donc dans mon fichier script1.js j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    const MA_CONSTANTE = 'test';
    ....
    alert(MA_CONSTANTE);
    Dans mon fichier script2.js, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!isDefined('MA_CONSTANTE')) {
          const MA_CONSTANTE = 'test';
    }
    ....
    alert(MA_CONSTANTE);
    Mon test avec la fonction isDefined me renvoit bien faux lorsque j'inclus mes deux scripts, mais le navigateur essaye quand même de redéfinir la constante... Ce qui plante le javascript....

    J'ai eu beau chercher sur le net pourquoi la redéfinition est faite alors que mon test fonctionne, sans succès.... Quelqu'un peut-il m'aider ?

    Merci d'avance pour toutes aides ou idées ;-)

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    en javascript on ne définit pas de constante, juste des varibales globales ou locales.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var maConst = "test";
    la seule chose que je peux te dire est de nommer différemment tes variables globales.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Auteur
    bonjour,
    en javascript on ne définit pas de constante, juste des varibales globales ou locales.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var maConst = "test";
    la seule chose que je peux te dire est de nommer différemment tes variables globales.
    Bonjour,
    Apparemment, je n'ai pas été prévenu qu'un nouveau message été arrivé....

    Pour ta gouverne, les constantes javascript font leur apparition avec le javascript 1.5 (http://developer.mozilla.org/en/docs...atements:const)

    Malheureusement, il faut absolument que ce soit la même variable car c'est elle justement qui me permet de savoir si j'ai juste un script d'inséré ou 2 ;-)

    Donc si quelqu'un à une autre idée.... Je suis preneur

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    d'après ce que tu décris, une constante ne t'apportera rien par rapport à une variable (une constante n'étant d'ailleurs qu'une variable non modifiée après initialisation).
    Citation Envoyé par cokinou
    Malheureusement, il faut absolument que ce soit la même variable car c'est elle justement qui me permet de savoir si j'ai juste un script d'inséré ou 2 ;-)
    Si, comme préconise Auteur, tu définis une variable globale dans chaque script, il te suffis de les tester pour savoir quel script a été appelé, non ?
    Si c'est non, c'est que tu as dû oublié une précision

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par cokinou
    Pour ta gouverne, les constantes javascript font leur apparition avec le javascript 1.5
    Il n'est pas nécessaire d'être agressif

    Je t'ai simplement informé sur une manière de procéder.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par E.Bzz
    Bonjour,
    d'après ce que tu décris, une constante ne t'apportera rien par rapport à une variable (une constante n'étant d'ailleurs qu'une variable non modifiée après initialisation).Si, comme préconise Auteur, tu définis une variable globale dans chaque script, il te suffis de les tester pour savoir quel script a été appelé, non ?
    Si c'est non, c'est que tu as dû oublié une précision
    A+
    C'est vrai que j'ai décrit mon problème très succintement pour n'embrouiller personne et poser le problème de façon simple.... mais apparement un peu trop succintement

    En fait, je travaille sur une librairie regroupant un ensemble de script.... et chaque script peut-être ou non inclus dans cette librairie. D'autres personnes pouvant utiliser cette librairie mes constantes ne doivent pas pouvoir être modifié (sinon la librairie risque de plus marcher ) d'où l'utilisation de constante et non de variable globale.
    Utilisant les mêmes constantes dans plusieurs scripts, j'ai besoin de savoir si la constante existe déjà.... si oui => pas de problème, si non => je dois la créer....

    Ca répond aux interogations ?
    Mais peut-être que vous avez d'autres idées pour fait l'équivalent....


    Citation Envoyé par Auteur
    Il n'est pas nécessaire d'être agressif
    Je t'ai simplement informé sur une manière de procéder.
    Excuse moi si tu as pris mon message de façon agressif, ce n'était pas le but recherché

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cokinou
    Utilisant les mêmes constantes dans plusieurs scripts, j'ai besoin de savoir si la constante existe déjà.... si oui => pas de problème, si non => je dois la créer....
    Alors déclare les toutes qqsoit les include, et tu n'as plus qu'à tester si elle sont alimentées (plus de pb de redéclaration) ...
    Ca dépend du nombre ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par E.Bzz
    Alors déclare les toutes qqsoit les include, et tu n'as plus qu'à tester si elle sont alimentées (plus de pb de redéclaration) ...
    Ca dépend du nombre ...
    A+
    J'ai ai un paquet..... et le problème de ca c'est que j'ai un fichier que je devrai modifié à chaque fois que je rajoute un script utilisant des contantes dans ma librairie....

    Mais bon, si je trouve pas d'autre moyen c'est ce que je ferai

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Et ça, ça aiderait ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par E.Bzz
    Et ça, ça aiderait ?
    A+
    Je viens de tester, et malheureusement ca fait comme pour ma fonction isDefined().... c'est à dire que la fonction renvois bien vrai quand la constante existe.... mais pour je ne sais quelle raison, il essaye de redéfinir la constante quand même....

    Bon, je continue à chercher.... autour de ca et je finirai bien pas trouver

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cokinou
    Je viens de tester, et malheureusement ca fait comme pour ma fonction isDefined().... c'est à dire que la fonction renvois bien vrai quand la constante existe.... mais pour je ne sais quelle raison, il essaye de redéfinir la constante quand même....
    Ben on va poser la question

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!isDefined('MA_CONSTANTE')) {
          window['MA_CONSTANTE'] = 'test';
    }
    ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par SpaceFrog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!isDefined('MA_CONSTANTE')) {
          window['MA_CONSTANTE'] = 'test';
    }
    ?
    En fait, ceci fonctionne mais le window['MA_CONSTANTE'] gère les variables globales et non pas les constantes.....

    Mais cela m'a donné une idée, utilisé une manière indirecte de créer ma constante.... le window[] fonctionne pas, alors j'ai testé avec eval :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!isDefined('MA_CONSTANTE')) {
          eval("const MA_CONSTANTE = 'test';");
    }
    Et magnifique, ca marche !!!!!!!

    Donc merci bien à E.Bzz et SpaceFrog
    (et aussi à Auteur qui a au moins permis que des gens s'intéresse à ce sujet )

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    const ... c'est quoi ?

    mouaip j'ai raté un épisode mais c'est vraiment limité comme implémentation ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par SpaceFrog
    const ... c'est quoi ?

    mouaip j'ai raté un épisode mais c'est vraiment limité comme implémentation ...
    En fait, const sert à définir des constantes à partir de JS 1.5 (implémenter chez mozilla)

    c'est très limité comme implémentation mais ca fonctionne.... donc en attendant de trouver quelque chose de plus propre, je vais faire avec ca

  16. #16
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    je me demande si le mot-clef const est accepté sous IE, Opéra & Co

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    non c'est une exclu Nestcape javascript 1.5 ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Problème de définition de constante
    Par devalender dans le forum WinDev
    Réponses: 3
    Dernier message: 13/04/2011, 17h58
  2. Définition d'une constante
    Par Nabouille dans le forum Access
    Réponses: 4
    Dernier message: 14/01/2008, 09h57
  3. Réponses: 22
    Dernier message: 17/11/2007, 14h59
  4. [Configuration] Problème sur définition de constante
    Par Yobs dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 24/03/2006, 11h40

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