Versions

global-strict

要求或不允许全局范围内的严格模式指令。

(已移除)此规则在 ESLint v1.0 中移除并被 strict 规则。新规则中的 "global"选项与被移除的最相似。

严格模式是通过在你的代码中使用以下 pragma 来启用的:

"use strict";

当全局使用时,如本例中,严格模式 pragma 适用于单个文件中的所有代码。如果你在向浏览器提供脚本之前将它们串联在一起,这可能是很危险的。例如,如果你有一个在严格模式下运行的文件,而你把这个文件和 jQuery 串联起来,那么严格模式现在也适用于 jQuery,并可能导致错误。

然而,如果你使用的是 Node.js,你可能想在全球范围内打开严格模式。在 Node.js 项目中,文件通常不会被串联在一起,因此,意外应用严格模式的风险是最小的。此外,由于 Node.js 中的每个文件都有自己的范围,全局严格模式只影响它所在的单个文件。

规则细节

这条规则要求或不允许在全局范围内由 "use strict" pragma 调用的全局严格模式。

以下模式在全局范围内处于严格模式下,使用 "always" 选项被认为是有效的,使用 "never" 选项则是警告。

"use strict";

function foo() {
    return true;
}

以下模式仅适用于函数的严格模式,因此在 "never" 选项下有效,但在 "always" 选项下就有问题。

function foo() {
    "use strict";

    return true;
}

(function() {
    "use strict";

    // other code
}());

选项

"global-strict": ["error", "always"]

要求每个文件都有一个顶级的 "use strict" 语句。

"global-strict": ["error", "never"]

当在全局范围内使用 "use strict" 时发出警告,因为它可能污染连接的文件。

何时不用

当一个项目可能同时使用非严格模式的代码和严格模式的代码,并且文件没有串联时,可以根据个人情况决定是否使用全局严格模式,从而使这一规则成为不必要的。

Version

This rule was introduced in ESLint v0.8.0 and removed in v1.0.0-rc-1.

更改语言