15. 扫描整段代码,将a放入当前上
下文的栈中,赋值为undefined
在栈中找到a并得到值undefined
alert(a); 弹出”undefined”
var a = 1;
将a赋值为1
局部变量的预编译
16. a();
function a(){ 2,预编译读入a的定义
alert(‘Tom’);
}
var a = function(){
alert(‘Jim’);
1,变量a入栈
};
a();
函数的预编译
17. a();
function a(){ 执行a(),弹出Tom
alert(‘Tom’);
}
var a = function(){
alert(‘Jim’); a被重新赋值
};
a(); 执行a(),弹出Jim
编译后的运行
18. function a(){//预编译定义,运行时略过
alert(‘helloworld’);
}
var a = function(){//预编译声明,运行时赋值
alert(‘helloworld’);
};
a = function(){//运行时变量赋值
alert(‘helloworld’);
};