作用域: 作用域就是变量起作用的区域 或者说 js代码 执行时,查找变量的范围.
ES5 及以前 :JS的变量作用域分为:全局作用域和函数作用域
ES6开始有了let 关键字后 :
变量有了块级作用域,所谓块级作用域中的块 表示用一对花括号括起来的代码.
不管是全局作用域还是块级作用域,其实都是块级作用域,无非是大块还是小块的问题
作用域链:
作用域链是指:当js编译器在寻找变量时,先在最近的作用域(花括号)里找,如果找不到,则从上一级作用域(花括号)里找,依次类推,直到找到或者找不到为止。这就是作用域链.
什么是作用域链?
a.简单来说就是作用域集合,当前作用域-- 父级作用域---全局作用域 形成的作用域链条
b.全局作用域的变量和方法都可以进行调用
c.局部的变量和方法只能局部进行调用(除闭包外)
d.局部可以访问全局的变量和方法