var foo = 1;
function(){
console.log(foo);
var foo = 2;
console.log(foo); }
答案:输出 undefined 和 2。上面代码相当于:
var foo = 1; function(){
var foo;
console.log(foo);
//undefined foo = 2;
console.log(foo); // 2; }
函数声明与变量声明会被 JavaScript 引擎隐式地提升到当前作用域的顶部,但是只提升名 称不会提升赋值部分
网友评论