版本

global-strict

在全局作用域中要求或禁止使用严格模式指令。

严格模式通过在您的代码中使用以下编译指示启用

"use strict";

当像此示例中一样全局使用时,严格模式编译指示应用于单个文件中的所有代码。如果您在将脚本提供给浏览器之前将它们连接在一起,这可能会很危险。例如,如果您有一个以严格模式运行的文件,并且您将该文件与 jQuery 连接,则严格模式现在也适用于 jQuery,并可能导致错误。

但是,如果您正在使用 Node.js,您可能希望全局启用严格模式。文件通常不会在 Node.js 项目中连接在一起,因此意外应用严格模式的风险很小。此外,由于 Node.js 中的每个文件都有自己的作用域,因此全局严格模式仅影响放置它的单个文件。

规则详情

此规则要求或禁止全局严格模式,该模式由全局作用域中的 "use strict" 编译指示调用。

以下模式在全球范围内处于严格模式下,对于 "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" 时发出警告,因为它可能会污染连接的文件。

何时不使用它

当一个项目可能将非严格模式代码与严格模式代码并排使用,并且文件未连接时,是否使用全局严格模式的决定可以在个别基础上做出,从而使此规则变得不必要。

版本

此规则在 ESLint v0.8.0 中引入,并在 v1.0.0-rc-1 中移除。

更改语言