Page 1 sur 1

Declaration "var" et variable globale

Posté : 20 juil. 2006, 10:00
par JS
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!

Posté : 20 juil. 2006, 10:09
par zeus
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.

Posté : 20 juil. 2006, 10:33
par Ryle
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 ;)

Posté : 20 juil. 2006, 11:50
par JS
oki merci! c'est ce que je pensait!
:wink: