javascript隐式全局变量

javascript implicit global variables

本文关键字:全局变量 javascript      更新时间:2023-09-26

我在firefox控制台上尝试了这段代码,它抛出了一个ReferenceError:

var func = function (){
  bim = "implicit global";
};
alert(bim);
ReferenceError: bim is not defined

从历史上看,在javascript中,如果您设置了一个变量而没有声明它(使用"var"关键字),那么该变量将在最外层的LexicalEnvironment(即:浏览器上的窗口对象)中定义。那么,为什么我不能从函数外部访问变量呢?我以前能做到这一点。我知道这不是最好的做法,但我想知道发生了什么变化。我读过ES6中的"let"answers"const",但这是否意味着隐式全局变量不再存在?。我没有使用"严格模式",只是直接在控制台上键入它。

提前感谢!!

出现此错误的原因是因为您没有执行函数,正确的编写方法是:

var func = function(){
    bim = "implicit global";
};
func();
alert(bim);