代码如下
var a = 1;
function demo() {
console.log(a); //undefined
var a = 2;
console.log(a); // 2
}
demo();
为什么第一个是 undefined 第二个是 2 ?
代码如下
var a = 1;
function demo() {
console.log(a); //undefined
var a = 2;
console.log(a); // 2
}
demo();
为什么第一个是 undefined 第二个是 2 ?
你的代码等价于这个
var a = 1;
function demo() {
var a = undefined;
console.log(a); //undefined
a = 2;
console.log(a); // 2
}
demo();
11 回答1.3k 阅读
1 回答851 阅读✓ 已解决
1 回答1.1k 阅读
1 回答793 阅读✓ 已解决
2 回答773 阅读
2 回答617 阅读
2 回答601 阅读
因为这一句:
JavaScript 函数里的
var声明执行时会被提升到函数的顶端,也就是说最终执行的代码不是:而是:
把那个
var去掉就正常了。文档:var hoisting