JSLint突然上报:使用“使用严格”的功能形式

2022-08-29 22:13:04

我包括以下语句:

"use strict";

在我的大多数Javascript文件的开头。

JSLint以前从未警告过这一点。但现在是这样,说:

使用“使用严格”的功能形式。

有谁知道“函数形式”会是什么?


答案 1

作为包装函数中的第一个语句包含,因此它仅影响该函数。这可以防止在连接不严格的脚本时出现问题。'use strict';

请参阅Douglas Crockford的最新博客文章Strict Mode Is Coming To Town

该帖子的示例:

(function () {
   'use strict';
   // this function is strict...
}());

(function () {
   // but this function is sloppy...
}());

更新:如果您不想包装在即时功能中(例如,它是一个节点模块),那么您可以禁用警告。

对于JSLint(每个Zhami):

/*jslint node: true */

对于JSHint

/*jshint strict:false */

或(每个莱丝阴影)

/* jshint -W097 */

要禁用来自 JSHint 的任何任意警告,请检查 JSHint 源代码中的映射(详细信息在文档中)。

更新2:JSHint支持选项。请参阅 github 上的 .jshintrcnode:boolean

/* jshint node: true */

答案 2

如果你正在为NodeJS编写模块,它们已经被封装了。通过在文件顶部包含节点来告诉 JSLint 你有节点:

/*jslint node: true */