作用域的创建阶段,预编译的阶段
预编译的时候做了机些事情?
- jS的变量对象 A0对像 供js引擎自己去访问的。 创建了ao对象;
- 找形参和变量的声明作为ao对象的属性名值是undefined;
- 实参和形参相统一;
- 找函数声明会覆盖变量的声明;
js的解释执行, 逐行执行
function fn(a, c) {
console.log(a); // function a(){}
var a = 123;
console.log(a); // 123
console.log(c); // function c(){}
function a(){}
if (false){
var d = 123;
}
console.log(d); // undefined
console.log(b); // undefined
var b = function(){}
console.log(b); // function(){}
function c(){}
console.log(c); // function c(){}
}
fn(1,2)
/**
* 预编译过程:
* 1 2 3 4
* AO: {
* a: undefined 1 function a(){}
* c: undefined 2 function c(){}
* d: undefined
* b: undefined
* }
* */
// js解释执行,逐行执行