Portée JavaScript

JavaScript Scope

En JavaScript, les objets et les fonctions sont également des variables.

En JavaScript, la portée est une collection de variables, d'objets et de fonctions accessibles.

Portée de la fonction JavaScript : La portée est modifiée au sein de la fonction.


En JavaScript, les variables déclarées avec var ont en fait une portée.

Si une variable est déclarée à l'intérieur du corps de la fonction, la portée de la variable est l'intégralité du corps de la fonction, et la variable ne peut pas être référencée en dehors du corps de la fonction :

'use strict '; function foo () {
var x = 1;
x = x + 1;
}

x = x + 2; // ReferenceError ! 🎜> en dehors du corps de la fonction

Si deux fonctions différentes déclarent la même variable, alors la variable ne fonctionne que dans le corps de la fonction respective. En d'autres termes, les variables portant le même nom à l'intérieur de différentes fonctions sont indépendantes les unes des autres et ne s'affectent pas les unes les autres :

'use strict';function foo() { var x = 1 ;
x = x + 1;
}barre de fonction() {
var x = 'A';
x = x + 'B';
}

JavaScript Portée locale

Les variables sont déclarées dans la fonction et les variables ont une portée locale.

Variables locales : accessibles uniquement à l'intérieur de la fonction.

// La variable carName ne peut pas être appelée ici
function myFunction() {
var carName = "Volvo";
// La variable carName peut être appelée au sein de la fonction
}

Remarque :

Étant donné que les variables locales n'agissent qu'au sein des fonctions, différentes fonctions peuvent utiliser des variables portant le même nom.

Les variables locales sont créées lorsque la fonction commence à s'exécuter, et elles seront automatiquement détruites après l'exécution de la fonction.

Portée mondiale

Les variables non définies dans aucune fonction ont une portée globale. En fait, JavaScript a une fenêtre d'objet globale par défaut, et les variables de la portée globale sont en fait liées à une propriété de window :

'use strict';

var course = 'Apprendre JavaScript';

alert(course); // 'Apprendre JavaScript'

alert(window. course); // 'Apprendre JavaScript'

Par conséquent, accéder directement à la variable globale course équivaut exactement à accéder à window.course.

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
</head>
<body>
<p>全局变量在任何脚本和函数内均可访问。</p>
<p id="demo"></p>
<script>
var carName = "Volvo";
myFunction();
function myFunction() 
{
    document.getElementById("demo").innerHTML =
"这里是 " + carName;
}
</script>
</body>
</html>

Cycle de vie des variables JavaScript

Le cycle de vie des variables JavaScript est initialisé lorsqu'il est déclaré.

Les variables locales sont détruites après l'exécution de la fonction.

Les variables globales sont détruites après la fermeture de la page.

Paramètres de fonction

Les paramètres de fonction ne fonctionnent qu'au sein de la fonction et sont des variables locales.


Formation continue
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> var a =1; function test(){ alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量, //所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前, //函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。 a=4 alert(a); //a为4,没悬念了吧? 这里的a还是局部变量哦! var a; //局部变量a在这行声明 alert(a); //a还是为4,这是因为之前已把4赋给a了 } test(); alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值 </script> </head> <body> </body> </html>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel