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 = 678;
}
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);
/* ao: {
a: undefined 1 function a (){}
b: undefined 2 function c (){}
d: undefined
b: undefined
}*/