【发布时间】:2020-10-16 04:12:47
【问题描述】:
我正在学习 JavaScript 全局变量和局部变量,但我对这个特定的函数感到困惑。
var text = "top";
function print() {
return (text);
}
print();
// Returns '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?
【问题讨论】:
-
没有。在第二种情况下,它返回局部变量文本,它在函数内部声明。 (这就是使它成为局部变量的原因。)但是在执行 return 时,变量还没有被赋值。
-
在 JavaScript 中查找“变量提升”。
标签: javascript variables