代码如下
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();
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答873 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
6 回答1k 阅读
因为这一句:
JavaScript 函数里的
var
声明执行时会被提升到函数的顶端,也就是说最终执行的代码不是:而是:
把那个
var
去掉就正常了。文档:var hoisting