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 版本中引入。
延伸閱讀
