js
如果有对象未经声明便赋值,这个对象归全局所有,window的的属性(在GO里面预编译 window === GO)
预编译
1.创建AO activation object (执行其上下文)
2.找形参和变量声明,将变量和形参的名作为ao对象的属性名,值为undefine
3.将形参和实参统一
4.找函数声明(不是函数表达式),赋予函数体
function test(){
console.log(a);
console.log(b);
var b = 234;
console.log(b);
a = 123;
console,log(a);
function a(){ }
var a;
b = 234;
var b = function(){}
console.log(a);
console.log(b);
}
结果:
function
undefine
234
123
123
function
if里不能声明function