Maison > Article > interface Web > JavaScript : un aperçu détaillé des portées, des chaînes de portées et de la préparation
Les variables incluent : les variables globales, les variables locales
En JavaScript, les variables définies dans les fonctions sont des variables locales
est divisé en : portée locale et portée globale
Il n'y a pas de portée au niveau du bloc dans js --- Une variable définie entre parenthèses. Cette variable peut être utilisée en dehors des accolades
var num=10; //作用域链 级别:0 var num2=20; var str = "abc" function f1() { var num2=20; function f2() { var num3=30; console.log(num); } f2(); } f1();
pour rechercher couche par couche. Lors de la recherche de la portée de niveau 0, si la variable n'est toujours pas trouvée, le résultat est une erreur
(1) Promotion des variables
Dans le cas suivant, la déclaration des variables est avancée, mais la valeur de num n'est pas avancée, le résultat est indéfini
//变量的提升 console.log(num); var num=100; //提升之后为: var num;//变量的声明提前 console.log(num); var num=100;
(2)
la déclaration de fonction est avancée, Le code peut encore être exécuté
//函数的声明被提前了 f1(); function f1() { console.log("这个函数,执行了"); }
mais pour la situation suivante, le code rapporte une erreur
f2(); var f2=function () { console.log("小杨好帅哦"); } //声明提前后: var f2;//为一个变量,undefind f2();//undefind加括号是不被认可的,所以报错 var f2=function () { console.log("小杨好帅哦"); }
Pour éviter de signaler une erreur, le code peut être modifié en :
var f2; f2=function () { console.log("小杨好帅哦"); }; f2();
Articles connexes :
Parlons de la portée et de la chaîne de portée JavaScript
In- analyse approfondie de la portée et de la chaîne de portée de JavaScript
Vidéos associées :
Jouer avec des exemples de liaison à trois niveaux de javascript
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!