我只是花了一些时间调试归结为忘记使用问题var
关键字在一个新的变量标识符的前面,所以JavaScript是自动创建在全球范围内该变量。 有什么办法防止这种情况,或者更改默认行为,而无需使用像JSLint的验证程序?
在写作和执行Javascript代码之间运行验证似乎是一个可怜的借口编译,这是一步我通常依靠赶上这样的事情。
我猜的答案是“没有”,所以我在寻找到JSLint的Eclipse插件因为我张贴此。
我只是花了一些时间调试归结为忘记使用问题var
关键字在一个新的变量标识符的前面,所以JavaScript是自动创建在全球范围内该变量。 有什么办法防止这种情况,或者更改默认行为,而无需使用像JSLint的验证程序?
在写作和执行Javascript代码之间运行验证似乎是一个可怜的借口编译,这是一步我通常依靠赶上这样的事情。
我猜的答案是“没有”,所以我在寻找到JSLint的Eclipse插件因为我张贴此。
ES5严格模式可以防止自动创建全局变量,但它可能会在一年之前,有一些认识严格模式的任何运输的浏览器,所以JSLint的可能是你最好的赌注在那之前: - /
检查这个由创建书签,方便雷米夏普 ,你可以用它来检查任何变量是否已经溜出来的全局命名空间。
不,我知道的 - JS开发商历来不利于加入“安全带”的核心语言,所以他们在外部工具中实现类似的JSLint代替。 你可能会考虑增加的JSLint到您的构建/测试过程中通过它的犀牛版本 ,并作出是否JSLint的报告错误的测试套件失败。
答案是确实没有 - 但正如你所说的,它可以保存时等,据我所知运行,你可以使用Eclipse插件,所以不会需要额外的步骤。
IntelliJ IDEA的是还能够发现未声明的变量。 当您输入,也可以分析你的代码的JSLint风格的IntelliJ做它的实时性。 可能是一些其他的替代品了。
我做了一个书签前一段时间的检查和检测全局变量。
替代文字http://yura.thinkweb2.com/detect_global.png
它有一些额外的功能(比如过滤掉的Prototype.js或谷歌Analytics(分析)属性)了。
安装Firebug的,并使其在您的网站。 它将在每次创建一个全球性的无时间抱怨var
,以及您可能会或可能不会想捕捉一些其他的情况。
您也可以做到这一点通过about:config
选项javascript.options.strict
,但因为这是全球的,它会影响你浏览过的其他网站。