JS作用域和作用域链

226 阅读1分钟

一个问题:JS作用域有哪些?

作用域:变量的作用范围 分为以下:

  1. 全局作用域
  2. 函数作用域
  3. 块级作用域

全局作用域\color{FF0000}{全局作用域}
代码在程序的任何地方都能被访问,window对象的内置属性都拥有全局作用域
函数作用域\color{FF0000}{函数作用域}

作用域链

一般情况下,变量取值到创建这个变量的函数的作用域中取值
但是如果当前作用域没有查到值,就向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链

作用域链: 控制着变量的使用顺序

优先使用函数作用域中的局部变量

如果局部没有,延作用域链向全局找

除非整个作用域链都没有,才说明不可用

参考了:www.cnblogs.com/tangjianqia…