第一:如下,按我的理解是函数里面的b引用了外面定义的全局变量b并重新赋值,所以b=2可以理解,而在函数里面重新定义了变量a生成新的作用域,我不理解a的值为undefined的具体思路是怎么来的???
var a, b = 0,
fn = function(){
var a = b = 2;
};
fn();
console.log(a, b);//(undefined,2)
第二:如下,在函数里面,不是应该先提升变量么,为什么第一个打印出a的值是undefined?
var a = 100;
function test () {
console.log(a);//undefined
var a = 200;
console.log(a);//200
}
test();
请大神们指点迷津......
1.你的a没有赋值自然是undefined,请用
var a=0,b=0;
2.test()下的a会在函数内变量提升,相当于