是否有任何工具或正则表达式可能有助于获取JavaScript项目中所有全局变量的列表?
答案 0 :(得分:8)
您可以遍历窗口对象以查询所有全局定义的数据(变量和函数,包括预定义的数据):
for (var key in window) {
console.log(key + "=" + window[key]);
}
要分析源代码,请使用JSLint。
答案 1 :(得分:2)
我非常喜欢Firefox上的Firebug扩展程序。
这是DOM选项卡,枚举Global(即窗口)对象中的所有属性并按类型着色,这些基本上是您的全局变量。
答案 2 :(得分:1)
您可以使用浏览器扩展程序,例如:
Firefox中的-Firebug扩展
- Chrome中的开发人员工具窗口
-Dragonfly in Opera
答案 3 :(得分:0)
我用这个正则表达式向我展示了项目代码中的所有javascript变量。
[a-zA-Z0-9]* = .*;
然后我直观地扫描了比赛,以确保我的所有变量都不是全局变量。 (即它们旁边有“vars”,只要它们不是传递给函数的参数)。
对我来说,我通过允许正则表达式并禁用匹配的上下文来使用Sublime Text 2的超级多文件搜索。我还告诉搜索只搜索包含我自己的javascript文件的文件夹,因此它不会显示来自其他框架或语言的变量。这使得每个变量一个接一个地出现,并且更容易看到任何全局变量泄漏。
希望这有所帮助,并且不会太混乱。我是一个正则表达式的新手,但这对我有用。我已经在大约5分钟内在我自己的项目中发现了3个全局泄漏。