Javascript为什么可以访问函数的局部变量

标签 javascript function local-variables

我正在 Google Chrome 上测试此功能:

function test(){
    d = 2;
}
function test2(){
    test();
    document.write(d);
}
test2();

函数 test 中的变量 d 应该是本地的,因此我无法在函数 test2 中访问它,有人可以解释为什么会这样吗?

编辑:

这不是重复的,因为我在原始问题的正确答案中找不到任何地方,即使用不带 var 的变量使其成为全局变量,它被隐式提及为“隐式全局变量的恐怖”

最佳答案

您从未真正声明过该变量,因此它不是局部变量。相反,它是一个隐式的全局变量。

您应该始终使用'use strict'; 来使其成为错误。

关于Javascript为什么可以访问函数的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996985/

相关文章:

c++ - 被调用方返回对象的范围 w.r.t.调用者局部变量?

javascript - 在 ng-mousedown 中绑定(bind)文档 mouseup

r - 如何将适用于 data.frame 单元格的函数应用于 data.frame 列

javascript - 画廊中的 Phonegap 图像选择器无法正常工作

python - lambda 在 python 中返回 lambda

c++ - 在复制构造函数双向链表中没有得到头节点和尾节点的正确地址

Android - Activity 的局部变量与实例变量的性能

assembly - 布置堆栈变量开始比 rbp 更接近 rsp 的意义

javascript - 如何删除 HTML5 音频标签中的下载选项?

javascript - 如何查找对象数组中的属性并将这些对象移动到对象中的另一个数组?