Igg*_*ggy 6 javascript variables
我正在学习JS全局变量和局部变量,但我对这个特定函数感到困惑.
var text = "top";
function print() {
return (text);
}
print();
//returns 'top'
Run Code Online (Sandbox Code Playgroud)
我明白为什么它会返回顶部.var text是一个全局变量.print()函数可以访问它并返回text,从而返回'top'.
var text = "top";
function print() {
return (text);
var text = "bottom";
}
print();
// returns undefined
Run Code Online (Sandbox Code Playgroud)
我有全局和局部变量的基本知识(或者我认为).我知道该函数print可以访问自己的本地加全局变量.
我不明白为什么会这样undefined.根据我的理解,该行return text;检索text它可以访问的全局变量(如第一个代码块所示).返回后text = 'top',它还声明了自己的局部变量,其名称相同但值不同'bottom'.据bottom我所知,局部变量应该坐在那里,因为之前没有调用它.
为什么它没有显示top(甚至是节目bottom)而是显示undefined?
Javascript提升您的变量声明,以便您的代码在功能上如下:
var text = "top";
function print() {
var text;
return (text);
// unreachable code below
text = "bottom";
}
print();
// returns undefined
Run Code Online (Sandbox Code Playgroud)
由于text在您的函数中声明的内容尚未定义,当您点击return(text)并且text="bottom"无法访问时,print()将返回undefined
有关详细信息,请参阅Javascript中的变量范围.这个问题涉及案例7.
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |