JS代码执行流程

91 阅读1分钟
  • 代码执行分为编译阶段和执行阶段(当执行全局代码 遇到函数时,也会先对函数进行编译,然后再执行)
  • 编译阶段:
    • js代码经过编译后,会生成两部分内容:执行上下文和可执行代码
    • 创建执行上下文由三部分组成:即This Binding、VariableEnvironment(变量环境组件)、LexicalEnvironment(词法环境组件)
      • This Binding即this的指向
      • 变量环境组件VariableEnvironment 保存着 var声明的变量和函数function、并且变量初始化值为undefined
      • 词法环境组件Lexical Environment 保存着let、const声明的变量和函数
    • js引擎会把声明以外的代码编译为字节码,作为可执行代码
  • 执行阶段:
    • 执行代码时,遇到变量或者函数,会到执行上下文所保存的变量环境组件VariableEnvironment 或者LexicalEnvironment词法环境组件查找