La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<meta charset = "utf-8">
<Title> Insérer le titre ici </TITME>
<script type = "text / javascript">
/ *
* 1. Toutes les variables en JS sont courantes.
2.JS n'a pas de variables statiques
3. Clôture: les variables à l'extérieur de la fonction peuvent être appelées à l'intérieur de la fonction; Sinon, il ne peut pas
* /
var r = 10;
fonction test1 () {
var r2 = "ABC";
// alerte (R)
}
// alerte (r2); // r2 à l'intérieur de la fonction qui ne peut pas être accessible
test1 ();
// Les fonctions imbriquées sont ok
fonction test2 (num1) {
fonction test3 (num2, num3) {
return num2 + num3 + num1;
}
Retour test3 (10,20)
}
// alerte (test2 (30));
// -----------------------------------------------------------------------------------------------------------------------------
fonction testfun () {
var r = 1;
var arr = [];
pour (var x = 0; x <3; x ++) {
r ++;
arr [x] = fonction () {
retour R;
}
}
retour arr;
}
alert ("testfun:" + testfun ());
var arr2 = testfun ();
alert ("arr:" + arr2 [0]);
alert ("arr:" + arr2 [1] ());
alert ("arr:" + arr2 [2] ());
// =========== Les trois boîtes contextuelles ci-dessus sont toutes les 4 =============================================.
/ * Analyser les raisons:
Vous comprenez quelles sont les fonctions en JavaScript?
Une fonction est un bloc de code exécutable, et une fonction peut également être représentée par une variable, comme la deuxième façon de définir une fonction.
var add = new function ("a", "return a + 10"); L'essence sous-jacente est le pointeur de nom de fonction
Ce code exécutable créé pour les variables.
* Premièrement, après l'exécution de la fonction TestFun, la même chose est stockée dans ARR [0], ARR [1] et ARR []
Fonction de bloc de code exécutable () {
Retour R
} En d'autres termes, les trois ci-dessus ne sont que des variables de fonction. Pour les exécuter, il vous suffit d'ajouter () après le nom de la variable et ce sera OK.
Et à l'heure actuelle, la valeur de R est 4
Lors de l'exécution de Arr [0] () équivaut à l'exécution du code dans ce bloc de code.
Ainsi, le résultat final renvoie R, bien sûr, renvoie 4.
* /
</cript>
</ head>
<body>
</docy>
</html>