我正在尝试使用来自 http://www.jslint.com/ 的在线 lint 。我也尝试过使用网络 Storm 。我只想获取全局变量。然而,我的代码很长(大约 30000 行),它只扫描了其中的 1%。 有没有办法使用 lint 或其他工具来仅查找全局变量(其余对我来说并不重要)。 我的目标是将所有全局变量附加到窗口对象。
最佳答案
如果您能够在文件“初始化”后运行此脚本(也就是说,如果您在加载后查找全局对象上的内容),则可以运行如下所示的内容...
for (value in window) {
if (window.hasOwnProperty(value)) {
if (console.log) console.log(value);
}
}
请记住,代码可以等待在调用之前将内容添加到全局范围,因此在与代码进行更多交互后,您可以在全局上下文中获得更多内容。
在浏览器上下文中,window
是全局对象,因此卡在其上的任何内容都在全局上下文中。在其他上下文中,它可以不同 - 在节点中,例如 it's apparently global
.
Allardice 详细解释了为什么您需要 hasOwnProperty
here 。简而言之,hasOwnProperty
会将您限制为对象本身的属性,而无需深入了解对象的 prototype chain 。更简单地说,使用 hasOwnProperty
将删除代码未添加到对象中的一些内容(在本例中为全局 window
上下文)。
关于javascript - jslint 应该只监视全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26909768/