版本

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

變更語言