【发布时间】:2011-12-18 15:37:43
【问题描述】:
是否有任何工具或正则表达式可以帮助获取 JavaScript 项目中所有全局变量的列表?
【问题讨论】:
标签: javascript regex search global-variables
是否有任何工具或正则表达式可以帮助获取 JavaScript 项目中所有全局变量的列表?
【问题讨论】:
标签: javascript regex search global-variables
您可以通过窗口对象循环查询所有全局定义的数据(变量和函数,包括预定义的):
for (var key in window) {
console.log(key + "=" + window[key]);
}
要分析源代码,请使用JSLint。
【讨论】:
您可以使用有助于解决以下问题的浏览器扩展程序:
-Firefox 中的 Firebug 扩展
-Chrome 中的开发者工具窗口
-歌剧中的蜻蜓
【讨论】:
我非常喜欢 Firefox 上的 Firebug 扩展。
这里是枚举全局(即窗口)对象中所有属性并按类型着色的 DOM 选项卡,这些本质上是您的全局变量。
【讨论】:
我使用这个正则表达式向我展示了我的项目代码中的所有 javascript 变量。
[a-zA-Z0-9]* = .*;
然后我目视扫描匹配项以确保我的所有变量都不是全局变量。 (即它们旁边有“vars”,只要它们不是传递给函数的参数)。
对我来说,我通过允许正则表达式并禁用匹配周围的上下文来使用 Sublime Text 2 令人敬畏的多文件搜索。我还告诉搜索只在包含我自己的 javascript 文件的文件夹中搜索,因此它不会显示来自其他框架或语言的变量。这使得每个变量一个接一个地出现,并且更容易看到任何全局变量泄漏。
希望这会有所帮助,并且不会太令人困惑。我是一个正则表达式新手,但这对我有用。我已经在大约 5 分钟内在我自己的项目中发现了 3 个全局泄漏。
【讨论】: