版本

no-var

要求使用 letconst 來取代 var

🔧 可修正

此規則報告的一些問題可透過 --fix 命令列選項自動修正

ECMAScript 6 允許程式設計師使用 letconst 關鍵字來建立區塊作用域而非函式作用域的變數。區塊作用域在許多其他程式語言中很常見,並有助於程式設計師避免犯錯,例如

var count = people.length;
var enoughFood = count > sandwiches.length;

if (enoughFood) {
    var count = sandwiches.length; // accidentally overriding the count variable
    console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
}

// our count variable is no longer accurate
console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

規則詳情

此規則旨在不鼓勵使用 var,並鼓勵改用 constlet

範例

此規則的錯誤程式碼範例

在遊樂場開啟
/*eslint no-var: "error"*/

var x = "y";
var CONFIG = {};

此規則的正確程式碼範例

在遊樂場開啟
/*eslint no-var: "error"*/

let x = "y";
const CONFIG = {};

何時不該使用此規則

除了非 ES6 環境外,開始將 ES6 引入其程式碼庫的現有 JavaScript 專案,如果從 var 遷移到 let 的成本太高,可能也不希望應用此規則。

版本

此規則是在 ESLint v0.12.0 中引入的。

資源

變更語言