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 环境之外,如果从 var
迁移到 let
的成本过高,那么正在开始在其代码库中引入 ES6 的现有 JavaScript 项目可能不希望应用此规则。
版本
此规则是在 ESLint v0.12.0 中引入的。