29 janvier 2014

Javascript - Variables globales et locales : Utilisation du mot clé 'var'


En Javascript, la déclaration de variable n'est pas anodine. Elle peut représenter un piège.si on ne maîtrise pas le concept de variable globale et locale.

Nous verrons l'importance du mot clé var et pourquoi il doit être mis avant chaque déclaration de variable.

Variables globales et Utilisation du mot clé 'var'

Lors de la déclaration d'une variable, le fait de ne pas indiquer le mot clé 'var' juste avant cette déclaration indique que la variable est une variable globale accessible partout, quelque soit l'endroit en cette déclaration a été effectuée !

Ceci est à éviter à cause des effets de bord et des fuites mémoires car la variable n'est pas libérée dès que l'on sort d'une fonction.
Exemple
function hello() {
    t = 5;
    return t*4;
}
La fonction 'hello' a un effet de bord : si on l'appelle, elle définit la valeur de la variable globale 't' !

En effet, nous n'avons pas mis 'var' juste avant 't = 5' ce qui indique que nous définissons la valeur de la variable globale 't'.

Par conséquent, après l'appel de la fonction 'hello', la variable 't' existe toujours et sera accessible partout.

C'est pourquoi, il vaut mieux déclarer la variable 't' comme étant locale à la fonction 'hello'. Pour cela, il faut ajouter le mot clé 'var' juste avant 't = 5'.

Règle : toujours utiliser le mot clé 'var'

Il faut toujours commencer l'affectation d'une variable par un 'var' en début de ligne.

La variable aura ainsi pour scope / périmètre la zone où elle a été déclarée.
Exemple
function hello() {
    var t = 5;
    return t*4;
}
Nous déclarons maintenant la variable 't' dans le scope de la fonction. Une fois sortie de la fonction, cette variable 't' n'existera plus et sera libérée par le moteur Javascript.

D'autre part, la fonction 'hello' n'a plus d'effet de bord car elle ne définit plus de variable globale 't' lors de son appel.

Aucun commentaire:

Enregistrer un commentaire