浏览器的渲染过程
HTML文件 的执行过程
在浏览器加载HTML文件的时候,遇到js标签,会停止解析HTML,去加载和执行javascript代码
javascript代码的执行需要依靠V8引擎
javascript代码属于高级语言,计算机只能识别机器语言(010100),或者说计算机的CPU只能执行指令
V8引擎解析javascript的过程
javascript代码被解析的详细过程(parse):
-
Blink将源码交给V8引擎,Stream获取到源码并且进行编码转化
-
Scanner进行词法分析,词法分析会将代码转换成tokens
-
接下来tokens会被转换成AST树,经过Parser和PreParser(预编译)
Parser就是直接将token转换成AST树架构
PreParser预编译理解
4.生成AST树后,会被Ignition转换成字节码,之后就是代码执行过程
代码执行过程
1、代码准备过程
var tt='ttt'
function foo(){
console.log(tt)
var gg='gg'
var mm='mm'
}
var oo='oo'
编译过程(只分析变量):
函数解析过程生成了AO对象,在ECStock里边生成了自己的函数执行上下文FEC(Function)