【前端自学之路】JS之作用域和作用域链

js 作用域 作用域链

作用域是指变量的可见范围

JS变量都是函数式作用域,也就是说函数内定义的变量只在函数内可见

1
2
3
4
5
6
7
8
var outer = 0;

function get() {
var inner = 1;
console.log(inner);
}

get();

这里有个三个变量名,分别是
outer 这个在函数外,所以是全局作用域
inner 在get函数内定义,所以是get函数内的局部变量作用域
get 是在全局定义,所以是全局作用域

同时每个函数作用域内都有一个特定的[[scope]]变量,指向上一层(函数外那层)作用域

作用域链

作用域A scope –> 作用域B scope –> 作用域C scope –> … –> 全局作用域

每个作用域都会有隐藏的scope指向上一层作用域,一直到全局作用域

这就是作用域链

关于作用域链的深刻理解,我们会在下一章 预解析 详细运用

坚持原创技术分享,谢谢鼓励我继续创作!