//函数一
var a = 'a1';
function f1(){
var a = a || 'a2';
alert(a);
}
f1();
// 函数二
var b = 'b1';
function f2(){
b = b || 'b2';
alert(b);
}
f2();
函数一弹出(a2),函数二弹出(b1).
为什么不一样呢?
第二个函数输出这个结果应该都能理解,函数内部可以直接引用全局变量,
主要就是第一个函数的结果,有点不太理解,
看看这一句“var a = a || 'a2';"这句的两个a,
var定义变量时总是先声明,后赋值,
此时的a是undefined,所以后面那个a也就是undefined,