1. Variables
Les variables ECMAScript sont des variables lâches. Les variables dites lâches signifient que le nom de la variable peut contenir n'importe quel type de données. Chaque variable n'est qu'un espace réservé pour enregistrer la valeur.
Définition: var firstdemo;
2. La portée des variables
2.1 Concept de base
Utilisez VAR pour définir les variables: définissez les variables locales qui définissent la portée de la variable. Cette méthode de définition des variables est également une déclaration explicite.
Si vous ne comprenez pas cela, vous pouvez jeter un œil à l'exemple simple et grossier suivant:
La copie de code est la suivante:
test();
fonction test () {
var firstdemo = "hello"; // définir les variables locales
alerte (firstdemo); // bonjour
}
test();
fonction test () {
var firstdemo = "Hello"; // Définissez la variable locale Firstdemo
}
alert (FirstDemo); // Signaler une erreur, FirstDemo n'est pas défini
À partir des deux exemples ci-dessus, si une variable est définie à l'aide de VAR dans une fonction, la variable sera détruite après la sortie de la fonction.
Omettre var pour définir les variables: tant que la fonction qui définit la variable est appelée une fois, la variable est accessible à l'échelle mondiale. Cette méthode de définition des variables est également une déclaration implicite
La copie de code est la suivante:
<script type = "text / javascript">
test();
alerte (FirstDemo); //Bonjour
fonction test () {
FirstDemo = "Hello";
}
</cript>
Conseils: la variable explicitement déclarée est déjà compilée dans l'objet appelant à la précompilation (par exemple, var t = 1; var t = 1 lorsqu'il est précompilé; t = 1 lorsqu'il est interprété;) contrairement aux variables implicitement déclarées qui sont définies comme des variables globales uniquement lorsqu'elles sont interprétées.
La détermination de la portée des variables peut nous aider à réfléchir à la façon de déclarer les variables raisonnablement, ce qui réduit non seulement les frais généraux de mémoire inutile, mais évite également grandement le problème causé par des définitions répétées des variables et l'écrasement des variables précédemment définies.
2.2 Analyse de la portée
La copie de code est la suivante:
<script type = "text / javascript">
Fonction Demofonction (S) {
document.writeln (s)
}
var i = 0; // Définir la variable globale
fonction test () {
démofonction (i);
fonction innerFunction () {
var i = 1; // définir les variables locales
démofonction (i);
}
innerfonction ();
démofonction (i);
}
test();
</cript>
Résultat de sortie: 0 1 0
La copie de code est la suivante:
<script type = "text / javascript">
Fonction Demofonction (S) {
document.writeln (s)
}
var i = 0;
fonction test () {
démofonction (i);
fonction innerFunction () {
démofonction (i);
var i = 1;
démofonction (i);
}
innerfonction ();
démofonction (i);
}
test();
</cript>
Résultat de sortie:
A, 0 0 1 0
B, 0 indéfini 1 0
C, 0 Erreur I n'est pas défini
Vous pouvez deviner lequel est le résultat, et la raison sera expliquée en détail dans le message.
Ce qui précède concerne cet article. Autrement dit, la portée des variables dans tout langage de programmation est un détail très critique. La portée des variables en JS est relativement plus libre que celle des langues telles que Java et C. Une grande caractéristique est que les variables JS n'ont pas de portée au niveau du bloc et que les variables dans les fonctions sont valides dans toute la fonction.