js的执行过程/v8引擎如何执行js代码

86 阅读1分钟

大体分为两个步骤 1. 代码编译 2.代码执行 3.生成代码

代码编译

  1. 执行词法分析:代码生成最小的不可分割的单元
var a =1//分割为 var,a,=,1
  1. 执行语法分析: 将最小单元转为AST(抽象语法树)

代码执行

将AST 通过解释器转为 字节码 (字节码与机器码相比占用空间小) 然后执行
解释器在不断的运行中收集数据信息比如变量类型,那些函数使用较高会发送到优化编译器 优化编译器在生成优化后的编译代码

注意点

  1. 在函数只声明未调用,不会被解析生成AST

  2. 函数只被调用一次,bytecode直接解释执行

  3. 函数被调用多次,可能会被标记为热点函数,可能会被编译成机器码,然后执行