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