有人可以解释为什么警报返回"未定义"而不是"你好"?
window.onload = function() {
var a = 'hello';
alert(window.a);
}
Run Code Online (Sandbox Code Playgroud)
小智 6
变量'a'不是您上下文中窗口的一部分.
a的作用域是您分配给onload的匿名函数.
如果你愿意,你可以添加一个窗口成员:
window.onload = function() {
window.a = 'hello';
alert(window.a);
}
Run Code Online (Sandbox Code Playgroud)
但我建议不要这样做.
"命名变量是用var语句定义的.当在函数内部使用时,var定义带有函数范围的变量." - (来源)
要在全局访问,特别是要成为对象a的成员window,请以这种方式更改代码:
var a; // defined in the global scope
window.onload = function() {
a = 'hello'; // initialized
alert(window.a);
}
Run Code Online (Sandbox Code Playgroud)
或者以这种方式:
var b = 'world'; //defined and initialized in the global scope
window.onload = function() {
alert(window.b);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3402 次 |
| 最近记录: |