javascript - 在 Javascript 中查找全局变量的最佳方法

标签 javascript scope global-variables global

我继承了一个项目,其中似乎有很多变量污染了全局范围,我想找到所有这些变量。查找用户引入的全局变量的最佳方法是什么?我想排除默认情况下窗口对象上的属性,然后过滤到我们的代码引入的属性。是否有工具或 IDE 插件可以让我轻松识别这些?谢谢

最佳答案

将窗口对象中的键与“空”窗口对象的键进行比较:

(function(){
    var iframe = document.createElement('iframe');
    iframe.src = "about:blank";
    document.body.appendChild(iframe);

    var windowVars = Object.keys(iframe.contentWindow);
    var globalVars = Object.keys(window).filter(key => !windowVars.includes(key));

    console.log("global Vars:", globalVars);
    document.body.removeChild(iframe);
})();

现在您必须搜索代码以找到声明它们的行。

关于javascript - 在 Javascript 中查找全局变量的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40752050/

相关文章:

c++ - 在 C 与 C++ 中使用函数调用初始化全局变量

Android - 在哪里保存全局数据?

javascript变量访问之谜

javascript - 如何将对象属性放入变量中?

javascript - 在 Javascript 中检查字符串中的符号

javascript - JavaScript闭包如何工作?

JavaScript。从立即调用函数获取外部对象的引用

javascript - 将对象值从一个对象映射到另一个对象

javascript - curl 和 ajax 的区别

javascript - [[范围]] 和执行上下文