首先我们需要明白以下几个基本原理:
全局作用域中的变量,叫做全局变量,在整个环境都可以使用。
局部作用域中的变量,叫做局部变量,只能在局部作用域中使用。
局部作用域可以使用全局作用域的变量,即函数内部可以使用函数外部的变量。
举例一:
// 函数内部可以使用函数外部的变量
var num = 100;
function f1(){
console.log(num);
}
f1();//结果为100
举例二:
//函数外部不可以使用函数内部的变量
function f2(){
var num = 100;
}
f2();
console.log(num); //这里会报错,因为函数外部没有num这个变量
举例三:
//函数中定义变量,如果不使用var,相当于在函数外部声明了全局变量,在函数内部进行的赋值
var num;
function f3(){
num = 100;
}
f3();
console.log(num); // 这里输出100
举例四:
//最内层作用域,使用变量,自己没有,则先向外找一层,如果还是没有,就一直向外找。直到找到一个为止。
//这种从内向外查找变量值的链式方式称为作用域链。
var num = 100;
function f1(){
var num = 200;
console.log(num);
function f2(){
console.log(num);
}
f2();
}
f1();
console.log(num);
以上就是关于作用域链的讲解,请大家务必弄清楚这些基本语法后再进行下面的学习。
|