预编译过程
ao 1形参声明赋值 2变量声明 3函数声明
go1变量声明 2函数声明
题目分析
a = 1;
function test(e) {
function e() {}
console.log(e); // func
arguments[0] = 2;
console.log(e); // 2
// 此时变量a的值为undefined,不执行if语句内容
if (a) {
var b = 3;
}
var c;
a = 4;
var a;
console.log(b); // undefined
// 暗示全局变量
f = 5;
console.log(c); // undefined
console.log(a); // 4
}
var a;
test(1);
console.log(a); // 1
console.log(f); // 5
undo
go={a:u,test:func}
ao={e:u->func,b:u,c:u,a:u}
do
go={a:u->1,test:func,f:5}
ao={e:u->func->2,b:u,c:u,a:u->4}