JSHint 選項

此頁面的內容來自於 JSHint 專案儲存庫。如果您發現任何錯誤,請 開啟錯誤回報 或 (更棒的是) 提出拉取請求

執行選項

設定為 true 時,這些選項將讓 JSHint 產生更多有關您程式碼的警告。

位元運算

此選項禁止使用位元運算子,例如 ^ (XOR)、| (OR) 及其他。位元運算子在 JavaScript 程式中非常罕見,而且通常 & 僅是鍵入錯誤的 &&

駝峰式大小寫
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

此選項可以強制所有變數名稱使用 駝峰式大小寫樣式或以底線分隔的大寫字母。

大括號

此選項需要您在迴圈和大括號條件中,始終將大括號放在方塊中。JavaScript 可讓您在方塊僅包含一個陳述式時,省略大括號,例如

while (day)
  shuffle();

然而,在某些情況下,可能會導致錯誤 (您可能會認為 sleep() 是迴圈的一部分,但實際上並非如此)

while (day)
  shuffle();
  sleep();
全部執行
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

此選項無法在不自動讓使用者選擇新功能的情況下維護。這可能會導致在升級 JSHint 的次要版本之間出現預期之外的警告/錯誤。

此選項在 JSHint 2.6.3 版本中,是大多數嚴格 JSHint 組態的簡寫。它會啟用所有的執行選項,並停用該版本中定義的所有放寬選項。

等值

此選項禁止使用 ==!=,而使用 ===!== 取代。前者會在比較值之前強制轉換值,這可能會導致一些意外的結果。後者不會執行任何轉換,因此通常較安全。如果您想要進一步瞭解 JavaScript 中的類型轉換,我們建議閱讀 Angus Croll 的 「事實、等值和 JavaScript」

ES3
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

請改用 esversion: 3

此選項會告訴 JSHint 您的程式碼需要遵循 ECMAScript 3 規格。如果您需要在較舊的瀏覽器(例如 Internet Explorer 6/7/8/9)和其他舊式 JavaScript 環境中執行您的程式,請使用此選項。

ES5
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

請改用 esversion: 5

此選項會啟用 ECMAScript 5.1 規格 中首次定義的語法。這包括允許將保留關鍵字作為物件屬性。

ES 版本

此選項用於指定程式碼必須遵循的 ECMAScript 版本。它可以采用以下值之一

  • 3 - 如果您需要在較舊的瀏覽器(例如 Internet Explorer 6/7/8/9)和其他舊式 JavaScript 環境中執行您的程式
  • 5 - 啟用 ECMAScript 5.1 規格 中首次定義的語法。這包括允許將保留關鍵字作為物件屬性。
  • 6 - 告訴 JSHint 您的程式碼使用 ECMAScript 6 特定語法。請注意,並非所有瀏覽器都實作它們。
  • 7 - 啟用 ECMAScript 7 引入的語言功能。值得注意的新增功能:冪運算子。
  • 8 - 啟用 ECMAScript 8 引入的語言功能。值得注意的新增功能:非同步函數、共用記憶體和原子性
  • 9 - 啟用 ECMAScript 9 中引入的語言功能。顯著的增加:非同步迭代、傳遞/擴展屬性,還有各種正規表達式擴展
  • 10 - 啟用 ECMAScript 10 中引入的語言功能。顯著的增加:可選的捕獲綁定。
  • 11 - 啟用 ECMAScript 11 中引入的語言功能。顯著的增加:`export * as ns from 'module'`、`import.meta`、空值合併運算式、BigInt 型別、`globalThis` 綁定、可選的鏈式串接、動態導入。
forin

這個選項要求所有 for in 迴圈都要過濾物件的項目。`for in` 語句允許迴圈遍歷物件所有屬性的名稱,包括透過原型鏈繼承來的。這個行為可能會在物件中導致意外的項目,因此通常較安全的做法是永遠過濾掉繼承的屬性,範例中就是這麼做的

for (key in obj) {
  if (obj.hasOwnProperty(key)) {
    // We are sure that obj[key] belongs to the object and was not inherited.
  }
}

若要更深入了解 JavaScript 中的 for in 迴圈,請閱讀 Angus Croll 的 探索 JavaScript for-in 迴圈

freeze

這個選項禁止覆寫原生物件的原型,像是 ArrayDate 等。

// jshint freeze:true
Array.prototype.count = function (value) { return 4; };
// -> Warning: Extending prototype of native object: 'Array'.
futurehostile

這個選項會啟用使用 JavaScript 未來版本定義的識別碼時發出警告。儘管在未實際作用的地方覆寫它們並不會造成影響,但此習慣會在將程式庫移轉到更新的程式語言版本時造成問題。

globals

這個選項可以用來指定原始碼中未正式定義的全局變數白名單。這在與 undef 選項結合使用時最有用,可以用來避免針對特定專案的全局變數發出警告。

將一項設定為 true 會允許讀寫變數。將它設定為 false 會觸發 JSHint 將該變數視為唯讀。

請參閱「環境」選項:一套可用於簡寫啟用在常見 JavaScript 環境中定義的全局變數的選項。

要在單一檔案中設定 globals,請參閱內聯設定

immed
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

這個選項禁止使用立即函式呼叫,且不包覆它們在括弧內。包覆的括弧有助於讀取程式碼的人了解表達式是函式的結果,而不是函式本身。

indent
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

這個選項會為您的程式碼設定特定的 tab 寬度。

latedef

這個選項禁止在變數定義之前使用它們。JavaScript 只有函式範圍,而且所有變數都會移動——或提升——到函式的最上面。這個行為可能導致非常可怕的程式錯誤,因此在變數明確定義後才使用它們才是較安全的做法。

將此選項設定為「nofunc」會允許忽略函式宣告。

若要更深入了解 JavaScript 中的範圍和提升,請閱讀 Ben Cherry 的 JavaScript 範圍和提升

leanswitch

這個選項禁止在 switch 語句內使用不必要的子句,例如:

switch (x) {
  case 1:
  default:
    z();
}

雖然像這樣的子句在技術上是有效的,但它們不會影響程式行為,而且可能表示錯誤的重構。

maxcomplexity

這個選項讓您控制整個程式碼中的迴圈複雜度。迴圈複雜度測量程式碼原始碼中線性獨立路徑的數量。在維基百科中閱讀更多關於迴圈複雜度的資訊

maxdepth

這個選項讓您可以控制程式區塊的巢狀程度

// jshint maxdepth:2

function main(meaning) {
  var day = true;

  if (meaning === 42) {
    while (day) {
      shuffle();

      if (tired) { // JSHint: Blocks are nested too deeply (3).
          sleep();
      }
    }
  }
}
maxerr

此選項讓你設定 JSHint 產生錯誤的最大數目,在達到此數字後 JSHint 將停止運作。預設值為 50。

maxlen
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

此選項讓你設定程式碼中單一行的最大長度。

maxparams

此選項讓你設定每個函式允許的最大正式參數字數

// jshint maxparams:3

function login(request, onSuccess) {
  // ...
}

// JSHint: Too many parameters per function (4).
function logout(request, isManual, whereAmI, onSuccess) {
  // ...
}
maxstatements

此選項讓你設定每個函式允許的最大陳述數字數

// jshint maxstatements:4

function main() {
  var i = 0;
  var j = 0;

  // Function declarations count as one statement. Their bodies
  // don't get taken into account for the outer function.
  function inner() {
    var i2 = 1;
    var j2 = 1;

    return i2 + j2;
  }

  j = i + j;
  return j; // JSHint: Too many statements per function. (5)
}
newcap
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

此選項要求你將建構函數的名稱開頭字母大寫。依慣例會將預期會使用 `new` 運算子的函式開頭字母大寫,這可協助程式設計師以視覺方式將建構函數和其它類型的函式做區分,進而協助在使用 `this` 時找到錯誤。

這麼做不會在任何瀏覽器或環境中導致程式碼中斷,不過在讀取程式碼時會有點難辨別這個函式是要使用 `new` 還是不使用 `new`。這是很重要的,因為當預期會使用 `new` 的函式未經使用 `new` 執行時,`this` 會指向全域物件,而不是指向新的物件。

noarg

此選項禁止使用 `arguments.caller` 和 `arguments.callee`。`.caller` 和 `.callee` 會讓許多最佳化變得不可能,因此在未來版本中的 JavaScript 已經不建議使用。事實上,ECMAScript 5 在嚴謹模式下禁止使用 `arguments.callee`。

nocomma

此選項禁止使用逗點運算子。當使用不當時,逗點運算子可能會模糊陳述式的值並提升錯誤程式的可能性。

noempty
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

此選項會在你的程式碼中出現空區塊時發出警告。JSLint 最初會對所有空區塊發出警告,而我們只是讓這個功能變成選配。目前還沒有任何研究報告指出 JavaScript 中的空區塊會讓你的程式碼中斷。

nonbsp

此選項會對「非斷行空白」字元發出警告。這些字元可以在 Mac 電腦上使用 Option+空白鍵輸入,而且有潛力破壞非 UTF8 網頁。

nonew

此選項禁止將建構函式用於副作用。有些使用者喜歡在未將其結果指派給任何變數的情況下呼叫建構函式。

new MyConstructor();

與直接呼叫 `MyConstructor` 相比,這種方式沒有任何優點,因為運算子 `new` 建立的物件並未用於任何地方,因此你通常應該避免使用像這樣的建構函式。

noreturnawait

非同步函式會在其回傳值上解析。在大多數情況下,這會讓回傳 AwaitExpression 的結果(本身就是 Promise 執行個體)變得沒有必要。為了清楚起見,通常比較偏好直接回傳非同步作業的結果。值得注意的例外是出現在 TryStatement 的 `try` 子句中——如需更多詳細資訊,請參閱「await 與 return vs. return await」

https://jakearchibald.com/2017/await-vs-return-vs-return-await/

predef

此選項讓你控制 JSHint 認為環境中隱含定義哪些變數。使用字串值的陣列來設定它。在變數名稱前加上連字號 (-) 字元,即可從預先定義的變數集合中移除該名稱。

JSHint 會將使用此方式宣告的變數視為唯讀。

此選項無法內嵌指定;只能透過 JavaScript API 或外部設定檔使用。

quotmark
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

此選項強制執行你的程式碼中使用的引號的一致性。它接受三個值:如果你不想要強制執行一種特定的樣式,但想要一些一致性,則為 `true`;如果你只想允許單引號,則為 "single";如果你只想允許雙引號,則為 "double"

regexpu

此選項會針對未包含「u」旗標的常規表示式發出警告。" u" 旗標可擴充對 Unicode 的支援範圍,同時也啟用更嚴格的解析規則。即使 JSHint 是在不支援「u」旗標的 JavaScript 引擎中執行,它仍然會強制執行這些規則。

shadow

此選項省略會覆寫變數的警告,例如在外部範圍中宣告一個已宣告的變數。

  • "inner" - 僅檢查在同一範圍中宣告的變數
  • "outer" - 檢查外部範圍中宣告的變數
  • false - 相同於 inner
  • true - 允許變數覆寫
singleGroups

此選項禁止使用分組運算子,除非絕對需要。此類使用方式通常反映對一元運算子的誤解,例如

// jshint singleGroups: true

delete(obj.attr); // Warning: Unnecessary grouping operator.
strict

此選項必須在 ECMAScript 5 的嚴謹模式中執行程式碼。嚴謹模式是一種選擇 JavaScript 受限變體的方式。嚴謹模式消除一些 JavaScript 陷阱,這些陷阱不會產生錯誤,而是將其變更為產生錯誤。它也修復了讓 JavaScript 引擎難以執行特定最佳化的錯誤。

  • "global" - 必須有全域等級的指令 "use strict";
  • "implied" - 進行程序檢查,就好像有指令 "use strict";
  • false - 停用關於嚴謹模式的警告
  • true - 必須有函數等級的指令 "use strict";
            this is preferable for scripts intended to be loaded in web
            browsers directly because enabling strict mode globally
            could adversely effect other scripts running on the same
            page
    
trailingcomma

此選項會在陣列或物件字面值中的最後一個元素之後未加上逗號時發出警告。由於舊版 IE 的錯誤,不再鼓勵使用拖曳逗號,但自 ES5 以來,它們的語意已標準化。(請參閱 #11.1.4#11.1.5。)現在,它們有助於預防與嚴謹使用分號類似的 視覺模糊性

例如,以下程式碼上星期二可以執行

[
    b + c
].forEach(print);

但如果有人在陣列中新增一個元素,卻忘記補上遺漏的逗號,將不會產生任何語法錯誤,掃描程式也無法判斷這是一個錯誤,還是故意的函數呼叫。

[
    b + c
    (d + e)
].forEach(print);

如果在項目清單後總附加上逗號,這個歧義就不會發生了

[
    b + c,
].forEach(print);

[
    b + c,
    (d + e),
].forEach(print);
undef

此選項禁止使用未宣告的變數。此選項非常適用於發現外洩和輸入錯誤的變數。

// jshint undef:true

function test() {
  var myVar = 'Hello, World';
  console.log(myvar); // Oops, typoed here. JSHint with undef will complain
}

如果您的變數是在其他檔案中定義的,您可以使用指令碼 global 來告訴 JSHint。

unused

此選項會在您定義和從未使用您的變數時發出警告。它對於一般的程式碼清理非常有用,特別是在與 undef 一起使用時。

// jshint unused:true

function test(a, b) {
  var c, d = 2;

  return a + d;
}

test(1, 2);

// Line 3: 'b' was defined but never used.
// Line 4: 'c' was defined but never used.

此外,此選項將警告您關於透過指令碼 global 宣告的未使用的全域變數。

設定為 true 時,已使用變數後面的未使用參數不會產生警告。此選項可以設定為 vars,以僅檢查變數,不用於函數參數,或設定為 strict,以檢查所有變數和參數。

varstmt

設定為 true 時,禁止使用變數陳述。例如

// jshint varstmt: true

var a; // Warning: `var` declarations are forbidden. Use `let` or `const` instead.

放鬆選項

設定為 true 時,這些選項將使 JSHint 對您的程式碼產生較少的警告。

asi

此選項省略有關遺漏分號的警告。社區中有很多人散布分號關於分號的錯誤觀念。常見的迷思是始終需要分號(事實上並非如此),而且它們不可靠。JavaScript 有關於分號的規則,所有 瀏覽器都遵循這些規則,因此您可以自行決定是否在程式碼中使用分號。

有關 JavaScript 中分號的更詳細資訊,請閱讀 Isaac Schlueter 的 公開信給 JavaScript 負責人關於分號,以及 JavaScript 分號插入

boss

這個選項會抑制對在需要比較的狀況下使用指定作業的警告。更常見的是,像「if (a = 10) {}」這樣的程式碼是錯字。然而,在像這樣的情況下是有用的

for (var i = 0, person; person = people[i]; i++) {}

你可以透過將指定作業加上括號來讓這類錯誤在每次使用時保持安靜,例如

for (var i = 0, person; (person = people[i]); i++) {}
debug

這個選項會抑制對你的程式碼中「debugger」陳述式的警告。

elision

這個選項會告訴 JSHint 你的程式碼使用 ES3 陣列省略元素,或空元素 (例如:[1, , , 4, , , 7])。

eqnull

這個選項會抑制對「== null」比較運算的警告。當你想檢查變數是否為「null」或「undefined」時,這種比較運算通常是有用的。

esnext
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

改用「esversion: 6」。

這個選項會告訴 JSHint 你的程式碼使用 ECMAScript 6 特有的語法。請注意,並非所有瀏覽器都實作這些功能。

更多資訊

evil

這個選項會抑制對使用「eval」的警告。我們不建議使用「eval」,因為它可能會讓你的程式碼容易受到各種注入式攻擊,而且會讓 JavaScript 詮釋器難以進行某些最佳化。

expr

這個選項會抑制對使用表達式的警告,在這些情況下你通常會希望看到指定作業或函式呼叫。這種程式碼大多數時候是錯字。然而,這不是規格禁止的,這就是為何這個警告是「可選擇的」。

funcscope

這個選項會抑制對在控制結構中宣告變數,但之後會從結構外部存取這些變數的警告。儘管使用「var」宣告的識別項有兩個實質範圍 (全域和函式),但這種作法會讓新手混淆,而且會造成難以除錯的錯誤。這就是為何預設情況下,JSHint 會警告未來在預計範圍外使用的變數。

function test() {
  if (true) {
    var x = 0;
  }

  x += 1; // Default: 'x' used out of scope.
            // No warning when funcscope:true
}
globalstrict
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

使用「strict: \"global\"」。

這個選項會抑制對使用全域嚴格模式的警告。全域嚴格模式可能會中斷第三方小工具,因此不建議使用。

如需有關嚴格模式的更多資訊,請見「strict」選項。

iterator

這個選項會抑制對「__iterator__」屬性的警告。並非所有瀏覽器都支援這個屬性,所以請小心使用。

lastsemic

這個選項會抑制對遺漏分號的警告,但僅限於一行程式碼區塊中最後一個陳述式省略分號時

var name = (function() { return 'Anton' }());

這是一個非常特殊的用例,只有在使用自動 JavaScript 程式碼產生器時才有用。

laxbreak
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

這個選項會抑制對你的程式碼中可能不安全的換行的大部分警告。它不會抑制對逗號在前編碼風格的警告。如要抑制這些警告,你必須使用「laxcomma」(見下方)。

laxcomma
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

這個選項會抑制對逗號在前編碼風格的警告

var obj = {
    name: 'Anton'
  , handle: 'valueof'
  , role: 'SW Engineer'
};
loopfunc

這個選項會抑制對迴圈中的函式的警告。在迴圈中定義函式可能會導致錯誤,如下所示

var nums = [];

for (var i = 0; i < 10; i++) {
  nums[i] = function (j) {
    return i + j;
  };
}

nums[0](2); // Prints 12 instead of 2

如要修復上述程式碼,你需要複製「i」的值

var nums = [];

for (var i = 0; i < 10; i++) {
  (function (i) {
    nums[i] = function (j) {
        return i + j;
    };
  }(i));
}
moz

這個選項會告訴 JSHint 你的程式碼使用 Mozilla JavaScript 擴充套件。除非你專門為 Firefox 網路瀏覽器開發,否則你不需要這個選項。

更多資訊

multistr
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

這個選項會抑制對多行字串的警告。多行字串在 JavaScript 中可能是危險的,因為如果你不小心在跳脫字元(「\」)和新行之間加入空白字元,就會造成嚴重問題。

請注意,儘管這個選項允許正確的多行字串,但它仍然會警告沒有跳脫字元的多行字串,或在跳脫字元和空白字元之間有任何字元的多行字串。

// jshint multistr:true

var text = "Hello\
World"; // All good.

text = "Hello
World"; // Warning, no escape character.

text = "Hello\
World"; // Warning, there is a space after \
notypeof

此選項會取消顯示類似於找不到運算式 typeof 的值等等無效警告訊息。此運算式只有 有限制性可能的回傳值。預設情況下,當您使用無效值(通常會是錯打)進行比較時,JSHint 會發出警告訊息。

// 'fuction' instead of 'function'
if (typeof a == "fuction") { // Invalid typeof value 'fuction'
  // ...
}

除非您確定不想要這些檢查,否則不要使用此選項。

noyield

此選項會取消顯示未提供 yield 陳述式的產生器函式的警告訊息。

plusplus

此選項禁止使用單元遞增和遞減運算式。有些人認為 ++-- 會降低編碼品質,而且有的程式語言(例如 Python)完全沒有這些運算式。

proto

此選項會取消顯示 __proto__ 屬性的警告訊息。

scripturl

此選項會取消顯示使用腳本目標網址(例如 javascript:...)的警告訊息。

sub
警告 此選項已標記為不建議使用,並會在 JSHint 下一個主要版本的移除。

JSHint 將其範圍限制在程式碼正確性的問題上。如果您想要執行與程式碼樣式相關的規則,請查看 JSCS 專案

此選項會取消顯示使用 [] 表示法(而非點表示法)時所發出的警告訊息:person['name'] 相對於 person.name

supernew

此選項會取消顯示針對「奇怪」寫法(例如 new function () { ... }new Object;)發出的警告訊息。有時會以這些寫法產生 JavaScript 的 Singleton。

var singleton = new function() {
  var privateVar;

  this.publicMethod  = function () {}
  this.publicMethod2 = function () {}
};
validthis

此選項會取消顯示針對在嚴格模式下執行程式碼時可能會遇到的嚴格違反情況(並在非建構函式中使用 this)所發出的警告訊息。您應僅在函式作用域中使用此選項(當您確定在嚴格模式下使用 this 是有效的)(例如:如果您使用 Function.call 呼叫函式)。

注意:此選項僅能用於函式範圍內。如果您嘗試在全域設定此選項,JSHint 會傳回錯誤。

withstmt

此選項會取消顯示使用 with 陳述式時所發出的警告訊息。with 陳述式的語意會讓開發人員感到困惑且可能會意外定義全域變數。

更多資訊

環境

這些選項讓 JSHint 得以了解預先定義的某些全域變數。

browser

此選項定義新式瀏覽器提供的全域參數:從老古董的 documentnavigator 到 HTML5 FileReader 及其他瀏覽器世界的最新發展。

注意:此選項並不會顯示 alertconsole 等變數。請參閱 `devel`

選項以取得更多詳細資訊。

browserify

此選項定義使用 Browserify 工具 來建構專案時可用的全域參數。

couch

此選項定義 CouchDB 提供的全域參數。CouchDB 是一個文件導向資料庫,可以使用 JavaScript 的 MapReduce 方式進行查詢和索引。

devel

此選項定義通常用來進行除錯記錄的全域參數:consolealert 等。一般而言,不建議在製作中發貨這些參數,因為例如 console.log 會讓 Internet Explorer 的舊版本當機。

dojo

此選項定義 Dojo Toolkit 提供的全域參數。

jasmine

此選項定義 Jasmine 單元測試架構 提供的全域參數。

jquery

此選項定義 jQuery JavaScript 函式庫提供全域參數。

mocha

此選項定義 Mocha 單元測試架構 的「BDD」和「TDD」使用者介面提供全域參數。

module

此選項告知 JSHint 輸入程式碼描述 ECMAScript 6 模組。所有模組程式碼會視為嚴格模式程式碼。

mootools

此選項定義 MooTools JavaScript 框架提供全域參數。

node

此選項定義您的程式碼在 Node 執行時期環境中執行的可用全域變數。 Node.js 是一個伺服器端的 JavaScript 環境,採用非同步事件驅動模型。此選項也略過一些在瀏覽器環境中有意義,但在 Node 中沒有意義的警告,例如檔案層級的 use strict 指令以及 console.log 語法。

非標準

此選項定義廣泛採用的非標準全域變數,例如 escapeunescape

phantom

此選項定義您的核心在 PhantomJS 執行時期環境中執行的可用全域變數。 PhantomJS 是一個無頭的 WebKit,具有 JavaScript API。它對各種ウェブ標準提供快速且原生的支援:DOM 處理、CSS 選擇器、JSON、畫布和 SVG。

prototypejs

此選項定義 Prototype JavaScript 框架公開的全域變數。

qunit

此選項定義 QUnit 單元測試框架 公開的全域變數。

rhino

此選項定義您的程式碼在 Rhino 執行時期環境中執行的可用全域變數。 Rhino 是完全以 Java 撰寫的 JavaScript 開源實作。

shelljs

此選項定義 ShellJS 函式庫 公開的全域變數。

typed

此選項定義型別化陣列建構函式の全域變數。

更多資訊

worker

此選項定義您的程式碼在 Web Worker 內執行的可用全域變數。 Web Worker 提供一個簡單的方法,讓ウェブ內容可以在背景執行緒中執行指令碼。

wsh

此選項定義您的程式碼做為 Windows Script 主機 的指令碼執行的可用全域變數。

yui

此選項定義 YUI JavaScript 框架公開的全域變數。

不穩定

這些選項啟用主版本 JSHint 間變更的行為。在自動環境中啟用時請小心(連續整合)。

exports.unstable = { }; // 這些是與 JSLint 共用 JSHint 布林選項 // JSHint 中的定義與 JSLint 相反 exports.inverted = {bitwise

不穩定的選項允許控制 JavaScript 語言中所提出之增加功能的剖析和整理。如同它們所描述的語言功能,這些選項的存在和行為是易變的;JSHint 保留移除或在主要版本發布之間修改它們的權利。