在Javascript全局变量防止自动创建(Preventing auto-creation of

2019-08-08 12:30发布

我只是花了一些时间调试归结为忘记使用问题var关键字在一个新的变量标识符的前面,所以JavaScript是自动创建在全球范围内该变量。 有什么办法防止这种情况,或者更改默认行为,而无需使用像JSLint的验证程序?

在写作和执行Javascript代码之间运行验证似乎是一个可怜的借口编译,这是一步我通常依靠赶上这样的事情。

我猜的答案是“没有”,所以我在寻找到JSLint的Eclipse插件因为我张贴此。

Answer 1:

ES5严格模式可以防止自动创建全局变量,但它可能会在一年之前,有一些认识严格模式的任何运输的浏览器,所以JSLint的可能是你最好的赌注在那之前: - /



Answer 2:

检查这个由创建书签,方便雷米夏普 ,你可以用它来检查任何变量是否已经溜出来的全局命名空间。



Answer 3:

不,我知道的 - JS开发商历来不利于加入“安全带”的核心语言,所以他们在外部工具中实现类似的JSLint代替。 你可能会考虑增加的JSLint到您的构建/测试过程中通过它的犀牛版本 ,并作出是否JSLint的报告错误的测试套件失败。



Answer 4:

答案是确实没有 - 但正如你所说的,它可以保存时等,据我所知运行,你可以使用Eclipse插件,所以不会需要额外的步骤。

IntelliJ IDEA的是还能够发现未声明的变量。 当您输入,也可以分析你的代码的JSLint风格的IntelliJ做它的实时性。 可能是一些其他的替代品了。



Answer 5:

我做了一个书签前一段时间的检查和检测全局变量。

替代文字http://yura.thinkweb2.com/detect_global.png

它有一些额外的功能(比如过滤掉的Prototype.js或谷歌Analytics(分析)属性)了。



Answer 6:

安装Firebug的,并使其在您的网站。 它将在每次创建一个全球性的无时间抱怨var ,以及您可能会或可能不会想捕捉一些其他的情况。

您也可以做到这一点通过about:config选项javascript.options.strict ,但因为这是全球的,它会影响你浏览过的其他网站。



文章来源: Preventing auto-creation of global variables in Javascript