block-scoped-var
将var作为块作用域(block-scoped-var)
block-scoped-var
变量在定义块的外部使用时,规则会生成警告。这模拟了C风格的块范围。
规则细节
规则旨在减少绑定上下文之外的变量的使用,并从其他语言模拟传统的块范围。这是为了帮助语言新手避免变量提升的难题。
规则的错误
代码示例:
/*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;
}
}
规则的正确
代码示例:
/*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;
}
}
进一步阅读
版本
该规则在ESLint 0.1.0中引入。