局部变量仍可通过函数访问
A local variable is still accessible out the function?
function x() {
if(true) {
var y = "hello world";
}
alert(y);
}
x()
alert(y)
当我运行此代码时,它会发出两次警报"你好世界"。
我阅读了有关范围的教程,通过它们y
第二个警报应该无法访问。
为什么它是可访问的?提前感谢!!
不,它不会发出两次警报。(我实际上在IE,Firefox和Chrome中对此进行了测试,以绝对确定。
该变量是函数的本地变量,因此尝试在函数外部使用它会导致引用错误。
如果您确实看到了该行为,那是因为您已经在全局范围内定义了具有相同值的相同名称的变量。
变量 y 不应在函数外部访问。当我测试它时,它无法访问。
实际上,您可能还在全局范围内的某个地方定义了变量 y,这可能是被警告的内容。
JavaScript 中的局部变量只能对局部范围访问,而全局变量(在函数外部定义的变量(可以在任何地方访问,甚至在函数内部也是如此。
在您的情况下,我怀疑全局范围内的某处可能定义了另一个"y"变量。
另外,您确定没有运行两次脚本吗?在这种情况下,您可能会从对 x(( 函数的两次调用中收到两次警报。
另一个原因是,您可能正在页面上运行另一个脚本,该脚本在其全局范围内定义了 y 变量,当它与此脚本结合使用时,它会提醒在另一个脚本的全局范围内定义的 y 变量。
相关文章:
- 访问函数外部的变量
- 从嵌套函数访问函数属性
- 访问函数对象的上下文属性|如何
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 访问函数中的函数名称
- 访问函数'的属性
- 访问函数内部的Polymer方法
- 从另一个文件访问函数的返回值
- 如何从AngularJS外部访问函数
- 如何在 JavaScript 中访问函数中的其他属性值作为对象属性值
- 从require()'d文件访问函数
- 如何访问函数中的变量
- JavaScript 访问函数构造函数中的“this”
- 跨不同作用域访问函数
- 访问函数内部的变量
- jQuery插件+AMD=如何访问函数
- 如何在javascript中访问函数内部的相同变量名
- 可以'无论我做什么,都无法访问函数外的数组
- 如何从module.exports访问函数
- 无法't访问函数中的对象