Toute variable déclarée en dehors d'une fonction est globale, c'est-à-dire accessible et modifiable depuis n'importe quelle partie du script. Si vous n'êtes pas le seul à travailler sur un projet ou que les scripts sont nombreux, le risque de modification accidentelle de ces variables est grand. Par ailleurs, toute variable déclarée au sein d'une fonction sans le mot-clé var est potentiellement accessible par tout ce qui suit l'exécution de cette fonction. Pour limiter la portée des variables aux fonctions qui les contiennent, le mot-clé var est donc essentiel.
Par exemple, si vous écrivez :
var sBonjour = "Salut !"; // Variable globale
window.alert(sBonjour);
function fnDefVar()
{
var sBonjour = "Coucou !";
}
fnDefVar();
window.alert(sBonjour);
function fnModifVar()
{
sBonjour = "Coucou !"; // Modification de la variable globale
}
fnModifVar();
window.alert(sBonjour);
Vous obtenez deux alertes "Salut !", alors que la troisième lance un "Coucou !", ce qui est rarement ce que vous recherchiez. En évitant au maximum les variables globales et en ajoutant systématiquement le mot-clé var, vous éviterez au mieux les interférences.
Dans le même ordre d'idée, si vous vous servez d'une fonction au sein d'une propriété d'un objet, vous pouvez écrire :
var fnAlertVar = function()
{
var sBonjour = "Coucou !";
window.alert(sBonjour);
};
fnAlertVar();