no-var
要求使用 let
或 const
來取代 var
🔧 可修正
此規則報告的一些問題可透過 --fix
命令列選項自動修正
ECMAScript 6 允許程式設計師使用 let
和 const
關鍵字來建立區塊作用域而非函式作用域的變數。區塊作用域在許多其他程式語言中很常見,並有助於程式設計師避免犯錯,例如
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
,並鼓勵改用 const
或 let
。
範例
此規則的錯誤程式碼範例
在遊樂場開啟
/*eslint no-var: "error"*/
此規則的正確程式碼範例
在遊樂場開啟
/*eslint no-var: "error"*/
let x = "y";
const CONFIG = {};
何時不該使用此規則
除了非 ES6 環境外,開始將 ES6 引入其程式碼庫的現有 JavaScript 專案,如果從 var
遷移到 let
的成本太高,可能也不希望應用此規則。
版本
此規則是在 ESLint v0.12.0 中引入的。