协慌网

登录 贡献 社区

JSLint 突然报道:使用 “use strict” 的功能形式

我包括声明:

"use strict";

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

JSLint 之前从未对此提出过警告。但现在是,说:

使用 “use strict” 的功能形式。

有谁知道 “功能形式” 会是什么?

答案

包括'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 */

或(根据Laith Shadeed

/* jshint -W097 */

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

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

/* jshint node: true */

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

/*jslint node: true */

我建议改用jshint

它允许通过/*jshint globalstrict: true*/来抑制此警告。

如果您正在编写库,我建议使用 global strict,如果您的代码被封装到模块中,就像 nodejs 一样。

否则,您将强制使用您的库的每个人进入严格模式。