【问题标题】:How to search global variables in JavaScript如何在 JavaScript 中搜索全局变量
【发布时间】:2011-12-18 15:37:43
【问题描述】:

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

【问题讨论】:

    标签: javascript regex search global-variables


    【解决方案1】:

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

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

    要分析源代码,请使用JSLint

    【讨论】:

    • 值得一提的是,for..in 只会返回可枚举的属性,最好严格使用全局对象,因为并非所有用户代理都有窗口对象。
    【解决方案2】:

    您可以使用有助于解决以下问题的浏览器扩展程序:

    -Firefox 中的 Firebug 扩展

    -Chrome 中的开发者工具窗口

    -歌剧中的蜻蜓

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        然后我目视扫描匹配项以确保我的所有变量都不是全局变量。 (即它们旁边有“vars”,只要它们不是传递给函数的参数)。

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

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

        【讨论】:

          猜你喜欢
          • 2018-10-26
          • 2018-08-26
          • 2013-06-03
          • 1970-01-01
          • 2023-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-28
          相关资源
          最近更新 更多