block-scoped-var
在定义的范围内强制使用变量
block-scoped-var 规则在变量在其定义的块之外使用时会生成警告。这模拟了 C 风格的块作用域。
🌐 The block-scoped-var rule generates warnings when variables are used outside of the block in which they were defined. This emulates C-style block scope.
规则详情
🌐 Rule Details
这条规则旨在减少在绑定上下文之外使用变量,并模拟其他语言中的传统块级作用域。这是为了帮助新的语言使用者避免由于变量提升而导致的难以发现的错误。
🌐 This rule aims to reduce the usage of variables outside of their binding context and emulate traditional block scope from other languages. This is to help newcomers to the language avoid difficult bugs with variable hoisting.
此规则的错误代码示例:
🌐 Examples of incorrect code for this rule:
/*eslint block-scoped-var: "error"*/
function doIf() {
if (true) {
var build = true;
}
console.log(build);
}
function doIfElse() {
if (true) {
var build = true;
} else {
var build = false;
}
}
function doTryCatch() {
try {
var build = 1;
} catch (e) {
var f = build;
}
}
function doFor() {
for (var x = 1; x < 10; x++) {
var y = f(x);
}
console.log(y);
}
class C {
static {
if (something) {
var build = true;
}
build = false;
}
}
符合此规则的正确代码示例:
🌐 Examples of correct code for this rule:
/*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;
}
}
}
选项
🌐 Options
此规则没有选项。
🌐 This rule has no options.
版本
此规则是在 ESLint v0.1.0 中引入。