JavaScript代码的执行过程
这里要提到的就是上一篇文章中js引擎执行js代码的过程的细化分析
1.js代码的解析
在js代码转换为AST时,v8引擎内部会帮我们创建一个Glabel Object对象(GO),在这个对象中存储着一些属性
var GlabelObject={
Number
Array
.......
还有一些:
我们在编写代码时,创建的属性,不过此时,是没有存储值的,此时属性的值为:undefined
}
2.js代码的运行
2.1 v8引擎为了执行代码,v8引擎内部会有一个执行上下文栈(ECStock),所有要执行的代码都会进入到执行上下文栈中,执行完出栈。
2.2 当我们执行的代码为全局代码时,为了全局代码的正确执行,会创建一个全局执行上下文(GEC),GEC会入栈ECStock,GEC中包含一个Variable Object(VO),该对象直接指向GO,接下来在执行js代码时,会将属性真正的值赋值给属性。
此时,我们会思考到一个作用域提升的问题。
共有 0 条评论