JSLint 预期 'new' 而不是看到 '.'

JSLint Expected 'new' and instead saw '.'

我正面临来自 JSLint 的这条消息

Expected 'new' and instead saw '.'.

负责的代码行:

utc = Date.UTC(year, month, date);

这个函数returns一个字符串。

所以 JSLint 期待新的而不是“。”在 DateUTC() 之间。 JSLint 期望 new 出现在构造函数前面,并且它还假定以大写字母开头的函数是约定俗成的构造函数。

我无法控制它,因为这是一个预构建函数。它不需要用 new.

构造的形式

我也尝试按照其他答案中建议的选项忽略它:

/*jslint ignore:start */
/*ignore:true */
/*ignore jslint start*/
// jslint ignore:line
/*jsl:ignore*/

None 个有效!

我期待解决方法 "new" 或忽略该特定行或代码部分。如何解决这个问题?

filed a bug for this behavior and Crockford fixed it the same day。 (他是一位反应迅速的维护者。)使用最新版本的 JSLint 来修复此行为。 jslint.com 尚未发布,但我预计很快就会发布。

这是一个非常不寻常的情况,因为大写字母通常表示构造函数。在 UTC 中为非构造函数使用首字母大写 U 与 JSLint 推荐的风格相反,但在这种情况下,没有什么可做的,因为它至少已经成为标准的一部分5年。 JSLint 只需要对其 "initial capital means constructor" 规则有一个狭窄的例外,以允许特定标准要求的 UTC 非构造函数。