【发布时间】:2021-11-03 20:46:53
【问题描述】:
尽管没有调用内部函数,但下面的两个代码会打印不同的输出。
var a = 1;
function foo(){
a= 2;
}
foo();
console.log(a); // 2
但是如果我添加一个同名的函数,输出是不同的。虽然我没有打电话给a()
var a = 1;
function foo(){
a= 2;
function a(){
a = 3;
}
}
foo();
console.log(a); // 1
不应该是2吗?为什么它记录 1?
【问题讨论】:
标签: javascript hoisting