# 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"*/
/*eslint-env es6*/

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

# 何时不使用

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

Last Updated: 5/13/2023, 8:55:38 PM