block-scoped-var
强制在变量定义的作用域内使用变量
block-scoped-var
规则在变量在其定义的作用域之外使用时会生成警告。这模拟了 C 样式的作用域。
规则详细信息
此规则旨在减少在变量绑定上下文之外使用变量,并模拟其他语言中的传统块级作用域。这是为了帮助语言新手避免因变量提升而导致的难以解决的错误。
此规则的**错误**代码示例
在代码游乐场中打开
/*eslint block-scoped-var: "error"*/
function doIf() {
if (true) {
var build = true;
}
console.log();
}
function doIfElse() {
if (true) {
var = true;
} else {
var = false;
}
}
function doTryCatch() {
try {
var build = 1;
} catch (e) {
var f = ;
}
}
function doFor() {
for (var x = 1; x < 10; x++) {
var y = f(x);
}
console.log();
}
class C {
static {
if (something) {
var build = true;
}
= false;
}
}
此规则的**正确**代码示例
在代码游乐场中打开
/*eslint block-scoped-var: "error"*/
function doIf() {
var build;
if (true) {
build = true;
}
console.log(build);
}
function doIfElse() {
var build;
if (true) {
build = true;
} else {
build = false;
}
}
function doTryCatch() {
var build;
var f;
try {
build = 1;
} catch (e) {
f = build;
}
}
function doFor() {
for (var x = 1; x < 10; x++) {
var y = f(x);
console.log(y);
}
}
class C {
static {
var build = false;
if (something) {
build = true;
}
}
}
版本
此规则是在 ESLint v0.1.0 中引入的。