Javascript的执行过程
1.代码编译阶段:由编译器完成,将代码翻译成可以执行代码,这个阶段作用域规则会确定。
2.代码执行阶段:执行阶段由引擎完成。主要任务是执行可执行代码,执行上下文在这个阶段创建。
执行上下的生命周期
1.创建阶段: 在这个阶段,执行上下文会分别创建变量对象,作用域链,确定this的指向。
2.代码执行阶段:完成变量赋值,函数引用,执行其它代码。变量对象转换为活动对象。
执行完出栈,开始下一个执行上下文。
变量对象的创建过程
1.建立arguments对象,检查当前上下文中的参数,建立该对象的属性及属性值。
2.检查当前上下文的函数声明。在变量对象中以函数名建立一个属性,属性值为指向该函数所在内存地址的引用,如果函数名存在则覆盖。
3.检查当前上下文中的变量声明,没找到一个变量声明,就在变量对象中以变量名建立一个属性,属性值为undefined,如果存在则跳过。