代码被解析的过程
-
代码被解析,v8引擎内部会帮助我们创建一个对象
- 该对象所有作用域(scope)都可以访问
- 里面会包含Date、Array、String、Number、setTimeout、setInterval等等;
- 其中还有一个window属性指向自己
-
运行代码
2.1. v8为了执行代码,V7引擎内部会有一个执行上下文栈(Execution Content Stack, ECStack)(函数调用栈)
2.2.因为我们执行的是全局代码,为了全局代码能够正常运行,需要创建·全局执行上下文( Global Execution Content)(全局代码被执行时才会创建)
var name = "why"
var num1 = 20
var num2 = 30
var result = num1 + num2
var globalobject = {
String: "类",
Date: "类",
setTimeout: "函数",
window: globalobject,
name: undefined,
num1: undefined,
num2: undefined,
result: undefined,
//虽然js解析的时候会把创建的属性添加到创建的全局对象中,但是代码没有执行,类型为 //undefined
}