Eslint
规则 | Rules

no-var

要求let或const代替var(no-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"*/ /*eslint-env es6*/ let x = "y"; const CONFIG = {};

何时不使用它

除了非 ES6环境外,如果开始将 ES6引入其代码库的现有 JavaScript 项目可能不希望应用此规则,如果从var迁移到let的代价过高。

版本

该规则在 ESLint 0.12.0中引入。

资源