如果函数声明在变量声明之前被提升。在这种情况下,为什么我得到函数定义而不是未定义。
function a(){} var a; console.log(a); // ƒ a(){}
我期望变量声明将覆盖函数声明并变为未定义
因为您没有为变量赋值,并且在提升 JS 中为变量放置了未定义的值。 undefined 不会覆盖任何值,这就是为什么你得到一个函数。
function a(){} var a=1; console.log(a); // result will be 1