如何在JavaScript中搜索全局变量

时间:2011-10-31 10:43:02

标签: javascript regex search global-variables

是否有任何工具或正则表达式可能有助于获取JavaScript项目中所有全局变量的列表?

4 个答案:

答案 0 :(得分:8)

您可以遍历窗口对象以查询所有全局定义的数据(变量和函数,包括预定义的数据):

for (var key in window) {
    console.log(key + "=" + window[key]);
}

要分析源代码,请使用JSLint

答案 1 :(得分:2)

我非常喜欢Firefox上的Firebug扩展程序。

这是DOM选项卡,枚举Global(即窗口)对象中的所有属性并按类型着色,这些基本上是您的全局变量。

Firebug DOM tab

答案 2 :(得分:1)

您可以使用浏览器扩展程序,例如:

Firefox中的

-Firebug扩展

- Chrome中的开发人员工具窗口

-Dragonfly in Opera

答案 3 :(得分:0)

我用这个正则表达式向我展示了项目代码中的所有javascript变量。

[a-zA-Z0-9]* = .*;

然后我直观地扫描了比赛,以确保我的所有变量都不是全局变量。 (即它们旁边有“vars”,只要它们不是传递给函数的参数)。

对我来说,我通过允许正则表达式并禁用匹配的上下文来使用Sublime Text 2的超级多文件搜索。我还告诉搜索只搜索包含我自己的javascript文件的文件夹,因此它不会显示来自其他框架或语言的变量。这使得每个变量一个接一个地出现,并且更容易看到任何全局变量泄漏。

希望这有所帮助,并且不会太混乱。我是一个正则表达式的新手,但这对我有用。我已经在大约5分钟内在我自己的项目中发现了3个全局泄漏。