jslint应该只监视全局变量

时间:2014-11-13 13:15:15

标签: javascript webstorm jslint

我正在尝试使用http://www.jslint.com/中的在线lint。我也尝试过使用webstorm。我想只得到全局变量。但是,我的代码很长(约30000行),它只扫描1%。 有没有办法使用lint或其他工具来查找全局变量(其余对我来说并不重要)。 我的目标是将所有全局变量附加到窗口对象。

1 个答案:

答案 0 :(得分:1)

如果您能够在文件“初始化”之后运行此脚本(也就是说,如果您在加载后查找全局对象上的内容),则可以运行类似这样的内容...

for (value in window) { 
    if (window.hasOwnProperty(value)) {
        if (console.log) console.log(value);
    }
}

请记住,代码可以等到将内容添加到全局范围,直到调用它为止,因此在与代码进行更多交互后,您可以在全局上下文中获得更多内容。

在浏览器上下文中,window是全局对象,因此挂起它的任何内容都在您的全局上下文中。在其他情况下,它可以是不同的 - 在节点中,例如it's apparently global

Allardice在一些细节here中解释了为什么要hasOwnProperty。简而言之,hasOwnProperty将限制您访问对象本身的属性,而不会追踪对象的prototype chain。更简单的是,使用hasOwnProperty将删除代码未添加到对象中的部分(在本例中为全局window上下文)。