En JavaScript, les variables ont une portée qu’on appelle scope, c’est une notion importante à comprendre dans le JavaScript car elle est souvent source d’erreur. En effet, en fonction de l’emplacement où vous déclarez votre variable, la portée de votre scope javascript peut être différente. Si vous le déclarez dans une fonction, Elle ne peut être utilisé que dans cette fonction. On retrouve deux types de variables, les variables locale et les variables globale.
var tutu = "tutu"; // 1
function maFonction() {
var toto = "toto"; // 2
return toto;
}
- Tutu est un scope javascript qu’on appelle variable globale, elle peut être utilisé n’importe où dans le script, y compris dans une fonction.
- Toto est également un scope javascript mais c’est une variable locale, elle ne peut pas être utilisé en dehort de sa fonction.
Variable Locale
Lorsque vous créez un scope javascript locale, c’est à dire une variable dans une fonction en utilisant var
, elle ne peut être utilisée que dans cette fonction. On dit alors que cette variable est locale. On peut également dire qu’elle a une portée au niveau de sa fonction où elle a été déclarée. Elle ne peut pas être lu en dehors de sa fonction. Le navigateur crée des variables locales lorsque la fonction est exécutée et les supprime dès que la fonction a terminé sa tâche. Sachez également :
- Deux fonctions différentes peuvent utiliser des variables portant le même nom sans créer un conflit de nom.
- Si la fonction est utiliser plusieurs fois, le scope javascript ( la variable ) peut avoir des valeurs différentes à chaque fois.
Variable Globale
Les variables globales peuvent être utilisée n’importe où dans le script, Elles sont déclaré en-dehors d’une fonction. On dit qu’elle ont une portée globale.
Les variables globales sont stockées en mémoire dans votre navigateur. Cela signifie qu’elles prennent plus de mémoire que les variables locales, et augmente aussi le risque de conflits de nommage avec d’autres scripts. C’est pourquoi, vous devriez privilégier l’utilisation des variables locales autant que possible.