JS的执行顺序
一、 语法分析
浏览器将所有JS检查一遍,看有没有语法错误,这里并不会执行,没有错误则进行第二步,预编译
二、预编译
- 预编译的时候会创建一个AO对象(Activation Object)执行上下文
- 函数声明整体提升,变量 声明提升。 值为undefind,,
理解:(找形参和变量声明,将形参和变量作为AO对象的属性名,值为undefined;)。
三、语句执行
异步的执行顺序
这里举例:setimeout和Promise执行属性
- new Promise函数里的是属于同步的,会按进行同步处理
- 在执行then()的回调函数
- 最后执行setimeout