javascript隐式全局变量

问题描述 投票:1回答:1

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

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

历史上在javascript中,如果设置变量而不声明它(使用“var”关键字)该变量将在最外层的LexicalEnvironment(即浏览器中的window对象)中定义。那么为什么我不能从函数外部访问变量呢?我曾经能够做到这一点。我知道这不是最好的做法,但我想知道改变了什么。我在ES6上读到了“let”和“const”,但这是否意味着隐含的全局变量不再存在?我没有使用“严格模式”,只需直接在控制台上输入即可。

提前致谢!!

javascript variables global implicit
1个回答
1
投票

您收到此错误的原因是您没有执行该函数,正确的写入方式是:

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

func();
alert(bim);
© www.soinside.com 2019 - 2024. All rights reserved.