Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1549 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JavaScript] Test d'existance d'une variable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JavaScript] Test d'existance d'une variable ?

n°1278709
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 14:37:42  profilanswer
 

Salut les mecs et les moimoiselles !
 
Bon, voilà, je bosse sur du code qui est commun à plusieurs applications.
On a un fichier de paramétrage qui positionne des variables js. Ce fichier est visible et modifiable par le client.
Là, je dois rajouter une fonctionnalité qui nécéssite l'ajout d'une variable. Mais je veux rajouter la variable que dans un seul projet. Les autres projets ne doivent pas avoir besoin de la variable...
 
Le but est donc de tester l'existance de la variable et si elle existe, de s'en servir...
 
J'ai essayé de faire un test genre
if (toto == undefined) {
}
mais ça pète quand même...
 
J'ai la solution du try catch mais bon, si y'a une solution plus élégante, je suis preneur...
 
Merci :)

mood
Publicité
Posté le 07-01-2006 à 14:37:42  profilanswer
 

n°1278713
Mark Lande​rs
Posté le 07-01-2006 à 14:49:42  profilanswer
 

je suis pas sur que sa marche en javascript mais bon :
 
if (toto == "" ) {  
}  
 
si la variable est vide alor elle existe pas non ?!

n°1278725
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 15:06:05  profilanswer
 

Ben non, quand IE (ou autre) tombe sur toto et qu'il essaie d'interpréter la variable, il répond qu'elle n'existe pas et te balance une grosse exception à travers la tronche. Il essaie même pas d'évaluer le reste de la ligne...


Message édité par Fraisouille le 07-01-2006 à 15:06:41
n°1278747
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 15:56:05  profilanswer
 

Bon ben tant pis, je fais avec un catch... Mon code marche comme ça. C'est pas top joli mais tant pis :D
 
Si jamais quelqu'un trouve une solution clean, merci de le marquer ici :)

n°1278780
colonel_fr​eeze
Posté le 07-01-2006 à 17:03:58  profilanswer
 

bah :
tu met un var toto = null; au debut de ton script.
et pis tu fe un  
if(toto)
{
 
}
apres ca depend c koi ta variable.
Si par exemple c une variable ki recupere la valeur d'un champ de formulaire :  
si l'utilisateur de rentre rien ds le champ, toto est tjrs "null" et sinon bah ta variable n'est pas vide et dc la condition est remplie


Message édité par colonel_freeze le 07-01-2006 à 17:14:11
n°1278784
KangOl
Profil : pointeur
Posté le 07-01-2006 à 17:37:48  profilanswer
 

avec typeof ??

n°1278818
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 19:10:35  profilanswer
 

Ben en fait, j'ai un fichier de paramétrage propre à une application 1 qui contient
allDocsReadOnly=true
Mais dans l'application 2, le même fichier de paramétrage ne doit pas voir apparaitre cette variable.
 
Donc quand je veux l'utiliser, c'est du code qui est commun aux deux applications... Et je cherche à savoir si la variable existe ou pas. Pour un attribut d'objet, il suffit de comparer à undefined mais là, la comparaison if (allDocsReadOnly == undefined) part en exception...
 
Pour typeOf, j'ai pas essayé, pourquoi pas. Faut que je regarde les specs pour voir ce quelle fait...

n°1278820
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 19:13:22  profilanswer
 

Bon, je viens de regarder ce que typeOf fait et il comporte les mêmes limitations que ma comparaison à undefined...
 
Je crois que je vais devoir garder le try / catch.

n°1278839
colonel_fr​eeze
Posté le 07-01-2006 à 19:54:07  profilanswer
 

et bah tu fai ce ke je t ai dit :
ds ton fichier de parametre de l application 2 tu met un var allDocsReadOnly = null; Je ne vois pas pk tu veux pas la voir apparaitre pour l'aplication 2 elle ne gene pas a priori si?
 
et hop un chtit test  
if(allDocsReadOnly) {
}
Ds le cas de null la condition n'est pas rempli pour true elle l'est.

n°1278849
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 20:23:14  profilanswer
 

Je veux pas le mettre parce que le client, qui a accès à ces fichiers de conf, ne doit pas savoir que la fonctionnalité existe... Donc dans l'application 1, il doit y avoir allDocsReadOnly à true ou à false et dans application 2, rien du tout, même pas allDocsReadOnly=null... :/

mood
Publicité
Posté le 07-01-2006 à 20:23:14  profilanswer
 

n°1278875
masklinn
í dag viðrar vel til loftárása
Posté le 07-01-2006 à 22:16:05  profilanswer
 

Pour savoir si une variable existe en JS il suffit de la tester comme un booléen [:spamafote]
 

Code :
  1. if(myvar) {
  2.    // existe
  3. } else {
  4.    // n'existe pas ou est false
  5. }


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1278889
colonel_fr​eeze
Posté le 07-01-2006 à 23:11:36  profilanswer
 

non parce que si ta var n'est pas defini kelke par avt ca renvoie une erreur

n°1278892
Fraisouill​e
Grouik Grouik
Posté le 07-01-2006 à 23:15:03  profilanswer
 

masklinn a écrit :

Pour savoir si une variable existe en JS il suffit de la tester comme un booléen [:spamafote]
 

Code :
  1. if(myvar) {
  2.    // existe
  3. } else {
  4.    // n'existe pas ou est false
  5. }



 
Nan, ça marche pas, ça part en exception...
Je suis pas sûr qu'il y ait une autre solution que le try catch...
 
Puis bon, ça sera pas la première fois qu'on fait du code bourrin et plutôt crado :D


Message édité par Fraisouille le 07-01-2006 à 23:16:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JavaScript] Test d'existance d'une variable ?

 

Sujets relatifs
Modifier une variable globaleAutorisation de fermer une fenêtre inactive en javascript ?
test php - les variables[javascript] erreur de parseInt étrange
Supprimer l'affichage des erreurs javascript.Remplacer <Command1.propriété=…> par <Command (variable ?)…>
Html - Test avec Safaritransfèrer du texte d'une variable php à du javascript
Nouveau site perso ( html + javascript + php) avec jeux en flash nbrx 
Plus de sujets relatifs à : [JavaScript] Test d'existance d'une variable ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR