English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La portée d'une variable est le domaine du programme où elle est définie.
Les variables JavaScript n'ont que deux portées :
Portée locale
Portée globale
La portée détermine l'accessibilité (visibilité) des variables.
Les variables déclarées dans une fonction ontLOCAL(local) portée, ce qui signifie qu'elles ne peuvent pas être appelées ou manipulées en dehors de la fonction.
// Le code ici ne peut pas utiliser cityName function myFunc() { var cityName = "New Delhi"; // Le code ici peut utiliser cityName } // Le code ici ne peut pas utiliser cityNameVoyons si‹/›
Les variables locales ont une portée de fonction, elles ne peuvent être accédées qu'à l'intérieur de la fonction.
Les variables locales ne peuvent être reconnues qu'à l'intérieur de leur fonction, donc des variables portant le même nom peuvent être utilisées dans différentes fonctions.
Les variables locales sont créées au lancement de la fonction et supprimées à la fin de la fonction.
Les variables déclarées en dehors de la fonction ontGLOBALLa portée, ce qui signifie que tous les scripts peuvent les utiliser, qu'ils soient à l'intérieur ou à l'extérieur de la fonction.
// Initialisation de la variable globale var cityName = "New Delhi"; // Le code ici peut utiliser cityName function myFunc() { // Le code ici peut également utiliser cityName } // Le code ici peut utiliser cityNameVoyons si‹/›
Accèsible à partir de n'importe quel endroit du programme JavaScript.
Dans l'exemple suivant, nous créerons un GLOBAL cityNameLa variable. À l'intérieur de la fonction, il s'agit d'une variable locale portant le même nom.
// Initialisation de la variable globale var cityName = "New Delhi"; function myFunc() { //Initialisation des variables locales et de portée de fonction var cityName = "Jaipur"; document.writeln(cityName); } //Sortie des variables globales et locales document.writeln(cityName); myFunc(); document.writeln(cityName);Voyons si‹/›
En les affichant dans le document, nous pouvons voir que les valeurs des variables diffèrent selon leur portée et que la valeur originale n'a pas été modifiée.
Si une valeur est attribuée à une variable non déclarée, elle deviendra automatiquementGLOBAL (globale)variables.
Dans cet exemple, nous déclarerons une variable globalecityName,meme si une valeur a été attribuée à l'intérieur de la fonction.
myFunc(); // Le code ici peut utiliser cityName function myFunc() { cityName = "New Delhi"; }Voyons si‹/›
À moins d'y être obligé, n'ouvrez pas轻易ment des variables globales.
Les variables globales peuvent couvrir les variables de fenêtre.
Toute fonction, y compris l'objet window, peut surcharger la variable GLOBALE.
JavaScript a trois mots-clés différents pour déclarer des variables, ce qui ajoute une couche de complexité au langage.
Les différences entre eux sont basées sur la portée, le levement et la réaffectation.
Mots-clés | Portée | Lèvement | Peut être réaffecté | Peut être redéclaré |
---|---|---|---|---|
var | Portée de fonction | Oui | Oui | Oui |
let | Portée de bloc | Non | Oui | Non |
const | Portée de bloc | Non | Non | Non |
AvecvarLes variables déclarées par des mots-clés ne peuvent pas avoir de portée de bloc.
Les variables déclarées par des mots-clés peuvent être accédées à l'extérieur du bloc où elles sont déclarées :
{ var num = 50; } // num peut être utilisé ici
AvecletLes variables déclarées par des mots-clés peuvent avoir une portée de bloc.
Les variables déclarées par des mots-clés ne peuvent pas être accédées à l'extérieur du bloc où elles sont déclarées :
{ let num = 50; } // num ne peut pas être utilisé ici
Déclaration de variable avec constetletSimilaire à la portée de bloc.
{ const num = 50; } // num ne peut pas être utilisé ici
La valeur des constantes ne peut pas être modifiée par réaffectation et ne peut pas être redéclarée.
La durée de vie des variables JavaScript commence à la déclaration.
Les variables seront supprimées après la fin de la fonctionLocalvariables.
Lorsque vous fermez la fenêtre du navigateurGlobalLes variables seront supprimées, mais restent disponibles pour les nouvelles pages chargées dans la même fenêtre.