我正在学习JavaScript全局变量和局部变量,但是对于这个特定的函数感到困惑。
var text = "top";
function print() {
return (text);
}
print();
// Returns 'top'
我明白为什么它返回“top”。var text
是一个全局变量。print()
函数可以访问它并返回text
,从而返回'top'
。
var text = "top";
function print() {
return (text);
var text = "bottom";
}
print();
// Returns undefined
我对全局变量和局部变量有一些基本的了解(或者我以为我懂)。我知道函数 print
可以访问它自己的局部变量和全局变量。
我不明白为什么这段代码返回 undefined
。据我的理解,return text;
这行代码会检索全局变量 text
,因为它可以访问该变量(如第一个代码块所示)。在返回 text = 'top'
之后,它还声明了一个具有相同名称但值不同的局部变量,即 'bottom'
。根据我的理解,局部变量 bottom
应该保持不变,因为它在之前没有被调用。
为什么它没有显示 top
(甚至显示了 bottom
)而是显示了 undefined
?