var my_var = 3;
function doIt() {
console.log( my_var ); //why undefined?
var my_var = 7;
return ++my_var;
}
doIt(); // returns 8 as expected
为什么my_var返回 undefined 而不是全局值(3)?
答案 0 :(得分:7)
您将my_var
定义为函数内的局部变量。 JavaScript hoists变量位于范围的顶部,因此您的函数确实如下所示:
function doIt() {
var my_var;
console.log( my_var );
my_var = 7;
return ++my_var;
}