在没有任何声明的情况下声明变量是否正确?

时间:2018-08-02 05:40:09

标签: javascript global-variables

关于节点/ javascript中的变量声明:var,让const,...

我尝试了一个节点脚本

如果有人声明一个变量而没有任何声明(varlet const,...)

x = "my new var";

然后x将具有全局作用域,并将在节点项目的所有模块中可见

问题

这样声明变量是否正确?还是已弃用/违反语言规则?

2 个答案:

答案 0 :(得分:2)

在正常模式下(也称为草率模式)允许使用,但是在ES5 严格模式中,对未声明变量的赋值将引发错误,因此可以将其视为在某种意义上已弃用

答案 1 :(得分:0)

它可以很好地编译,因此不违反该语言规则,并且据我所知不被弃用。出于同样的原因,全局变量在所有语言中均被视为不当行为,因此被视为不当行为。一个示例,尤其是使用诸如x之类的通用名称时,可能会错误地在本地覆盖它,并得到一些意外的结果。还有很多其他警告。

有时候可能还可以。我能想到的一个用例是,如果您想在程序中的任何地方使用pi,则在全局范围内声明它是有意义的。当然,最好将其包装在constants类中,但是对于单个常量而言,一个类可能会过大,我将在程序顶部定义PI = 3.14。