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