啥也不说了,看代码就够了:
JS:
var myvar = "my value";
(function (){
console.log(myvar); //returning undefined
var myvar = "local value";
})();
现在一个非常简单的问题:变量 myvar
是在函数执行之前声明的,为什么控制台显示未定义?
最佳答案
您有两个名为 myvar
的变量。一个在函数内,一个在函数外。
在函数内部,您可以访问函数内部声明的函数(正如您所说,它已被提升)。此时尚未为其分配值,因此它是未定义
。
一行后,您为其分配一个值。
关于javascript - 为什么这显示出变量提升的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414059/