定义
- 作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是私有作用域,它们都是栈内存
- 作用域链是在函数定义的时候确定的
- 内部环境可以通过作用域链访问所有外部环境,但外部环境不能访问内部环境的任何变量和函数
- 当在内部函数中,需要访问一个变量的时候,首先会访问函数本身的变量对象,是否有这个变量,如果没有,那么会继续沿作用域链往上查找,直到全局作用域。
作用域链是在函数定义的时候确定的
var x=10;
function fn(){
console.log(x);
}
function show() {
var x=20;
fn();
}
show(); //输出10
-----------------------
var x=10;
function show() {
var x=20;
function fn(){
console.log(x);
}
fn();
}
show(); //输出20