前阵子被工头秀了一脸变量提升的问题,自己手打一段
(function(){
var a=b=5;
})()
console.log(b);
console.log(a);
输出的是:5,undefind(ReferenceError);
上面实际是
var b;
(function(){
var a;
b=5;
a=b;
})()
console.log(b);
console.log(a);
原因是:函数里面使用没有定义的变量 就自动提升为外部作用域定义的变量
也就是说b没有定义,所以自动提升为全局变量去了
orz倒
网友评论