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.
Дополнительные материалы
Источники
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/block-scoped-var