javascript - jslint 应该只监视全局变量

标签 javascript webstorm jslint

我正在尝试使用来自 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/

相关文章:

javascript - 机器人未定义不和谐机器人

javascript - 简单加法暴露 Javascript 引擎浮点错误

javascript - WebStorm 速度模板引擎

ios - WebStorm:设置React Native的模拟器ID

WebStorm 实时模板 $SELECTION$ 正则表达式

javascript - JSLint 错误 : Undeclared 'Image' , 未声明 'Document' ,超出范围

eslint 或 jslint 中的 Javascript lambda/匿名函数长度警告

javascript - 后序遍历移除元素节点

javascript - 有没有办法在运行 Windows IoT 的树莓派 2 上使用时钟中断

Javascript 正则表达式指定允许的内容(而不是不允许的内容)