乐趣区

JavaScript面试题总结系列六

6.JavaScript 作用域

作用域

  • 概念
    简单地说,作用域就是在上下文中,变量与函数的可访问范围。它可以分为 块级作用域 函数作用域
  • 作用
    作用域控制着变量与函数的可见性和生命周期。

作用域链

  • 概念
    作用域链可以理解为一组对象列表,包含父级和自身的变量对象,因此我们便能通过作用域链访问到父级里声明的变量或者函数。
  • 作用
    作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到 window 对象即被终止,作用域链向下访问变量是不被允许的
  • 组成
    由两部分组成

    • [[scope]]属性: 指向父级变量对象和作用域链,也就是包含了父级的 [[scope]]AO
    • AO: 自身活动对象
> 如此 `[[scopr]]` 包含 `[[scope]]`,便自上而下形成一条 链式作用域。

参考链接
http://blog.poetries.top/FE-Interview-Questions/base/#_2-%E8%AF%B4%E8%AF%B4%E4%BD%A0%E5%AF%B9%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%93%BE%E7%9A%84%E7%90%86%E8%A7%A3

退出移动版