【发布时间】:2023-03-04 05:50:01
【问题描述】:
我在 firefox 控制台上尝试了这段代码,它抛出了 ReferenceError:
var func = function (){
bim = "implicit global";
};
alert(bim);
ReferenceError: bim is not defined
从历史上看,如果你设置一个变量而不声明它(使用“var”关键字),那么在 javascript 中,该变量将被定义在最外层的 LexicalEnvironment 中(即:浏览器上的窗口对象)。 那么为什么我不能从函数外部访问变量呢?我曾经能够做到这一点。我知道这不是最佳做法,但我想知道发生了什么变化。我在 ES6 上读到了“let”和“const”,但这是否意味着隐式全局变量不再存在?我没有使用“严格模式”,只是直接在控制台上输入。
提前致谢!!
【问题讨论】:
-
你没有运行这个函数。
-
您需要执行该函数,然后它才会在全局范围内。
-
在这种特定情况下更准确的错误消息是“bim is not defined... yet”
-
感谢您的所有回复!我知道我遗漏了一些明显的东西;我对我的 javascript 有点生疏了。我会经常回去写 JS。
标签: javascript variables global implicit