【问题标题】:Why doesn't jslint recognize "window"为什么jslint不能识别“窗口”
【发布时间】:2015-11-06 17:24:37
【问题描述】:

即使我选择in the browser。我以为每个浏览器都使用它作为全局对象。

我必须在全局部分手动输入它才能让它消失。

【问题讨论】:

  • 因为 JSLint 是执行 Douglas Crockford 编码实践的工具,而 Crockford 不喜欢使用“可怕的全局对象”。因此,browser 不会为您预先声明 windowself 全局变量,即使对“假设浏览器”的任何合理解释都会这样做。

标签: javascript jslint


【解决方案1】:

它是 JSLint 规范的一部分。我不确定的确切原因(您必须询问 jslint 开发人员)。如果您使用“假设浏览器”选项,它将为您添加通用全局变量,但 window isn't one of them:

browser

true 如果应该预定义标准浏览器全局变量。此选项将拒绝使用导入和导出。此选项也不允许使用 'use strict' pragma 的文件形式。 不提供selfwindow;您必须自己请求可怕的全局对象的这些别名。

(我的重点)

你必须添加

/*global
window, self
*/

...告诉 JSLint 他们。

【讨论】:

  • 我认为部分原因在这里:“它不提供 self 或 window;您必须自己请求 可怕的全局对象的这些别名。 "(强调我的)。比起 jslint 更喜欢 jshint 的原因有很多,后者的开发者的态度就是其中之一……
猜你喜欢
  • 2014-10-28
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 2021-07-17
相关资源
最近更新 更多