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 中移除。