javascript隐式全局变量

时间:2016-05-16 18:11:08

标签: javascript variables global implicit

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

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

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

提前致谢!!

1 个答案:

答案 0 :(得分:1)

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

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

func();
alert(bim);