关于作用域/执行上下文

217 阅读1分钟

作用域

就是变量的作用范围

  • 全局作用域:程序最外层作用域,一直存在
  • 函数作用域:函数定义时创建
  • 块级作用域:const/let声明过的

预解析

  1. 变量提升
    • 只提升声明部分,赋值语句还会保留在原地
  2. 函数提升
    • 整体提升,在函数定义语句之前,就执行该函数
  3. 函数表达式
    • 只提升声明部分
  • 注意:提升至作用域最前面
  • 作用域确认时间:函数声明的时候

作用域链

  • 多个嵌套的作用域形成的由内向外的结构,用于查找变量

执行上下文

  1. 每次函数调用的时候,会在内存开辟一块空间
  2. 组成部分
    1. 运行当前函数所需要的内存
    2. 变量对象
  3. 创建时间:函数调用的时候
  4. 销毁时间:函数执行结束