Declaration "var" et variable globale

JS
Eléphanteau du PHP | 47 Messages

20 juil. 2006, 10:00

Bonjour à tous!

Je me posait une question.
Esce que lorsque l'on ne declare pas une variable javascript avec var
(exemple : var mavariable = 0) dans un fonction elle est considerer comme une variable globale!
Parce que j'ai l'impression que c'est le cas des mes applications!

Merci!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juil. 2006, 10:09

Normalement, quand tu n'as pas var ma_var, tu devrais avoir une erreur.

C'est ce qui me fait dire que si tu n'as pas var, c'est que ta variable est importé d'un fichier externe ou est défini à l'appel d'une fonction et non pas l'inverse.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 juil. 2006, 10:33

Non non, ca ne fait pas d'erreur, au contraire, le var permet justement de distinguer les variables locales des globales dans une fonction.

Toute varibale qui est initialisée dans une fonction en utilisant le mot clé "var" est définie localement. Si une variable est initialisée dans une fonction sans le mot clé "var", elle est définie comme globale.

Avec var dans la fonction :
var a = 10;

disp_a();
function disp_a() {
   var a = 20; // locale
   alert(a); // affiche 20
}

alert(a); // affiche 10
Sans var dans la fonction :
var a = 10;

disp_a();
function disp_a() {
   a = 20; // globale
   alert(a); // affiche 20
}

alert(a); // affiche 20
En dehors des fonctions, il n'y a pas de différences avec ou sans var, mais bon ca reste une bonne habitude de l'y coller ;)

JS
Eléphanteau du PHP | 47 Messages

20 juil. 2006, 11:50

oki merci! c'est ce que je pensait!
:wink: