有没有工具或正则表达式可以帮助获取JavaScript项目中所有全局变量的列表?
for (var key in window) {
console.log(key + "=" + window[key]);
}
为了分析源代码,请使用JSLint。
我很喜欢Firefox上的Firebug扩展程序。
这里是DOM选项卡,列出全局对象(即window)中的所有属性,并按类型着色,这些基本上就是您的全局变量。
[a-zA-Z0-9]* = .*;
然后我目视扫描匹配项,确保所有变量都不是全局的。(即它们旁边有“vars”,只要它们不是传递给函数的参数)。
对于我来说,我使用Sublime Text 2强大的多文件搜索功能,允许正则表达式并禁用匹配周围的上下文。我还告诉搜索仅在包含我的JavaScript文件的文件夹中搜索,这样它就不会显示来自其他框架或语言的变量。这使得每个变量都一个接一个地出现,更容易看到任何全局变量泄漏。
希望这能帮到你,并且没有太多混淆。我是一个正则表达式新手,但是这对我有效。在大约5分钟内,我已经在自己的项目中找到了3个全局泄漏。