Spec-Zone.ru › ESLint

vars-on-top

Требует размещать объявления var в начале содержащей их области видимости

❄️ Заморожено

Это правило в настоящее время заморожено, и предложения по его функциональности не принимаются.

Правило vars-on-top выдает предупреждения, если объявления переменных не размещены последовательно в начале области видимости функции или программы. По умолчанию интерпретатор JavaScript всегда невидимо перемещает объявления переменных («поднимает») в начало содержащей их области видимости. Это правило требует от программиста явно представить такое поведение, вручную переместив объявление переменной в начало содержащей его области видимости.

Описание правила

Это правило призвано размещать все объявления переменных в начальной последовательности инструкций. Несколько объявлений допускаются, поскольку это способствует удобству сопровождения кода.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint vars-on-top: "error"*/

// Variable declaration in a nested block, and a variable declaration after other statements:
function doSomething() {
    if (true) {
        var first = true;
    }
    var second;
}

// Variable declaration in for initializer:
function doSomethingElse() {
    for (var i=0; i<10; i++) {}
}
Открыть в Playground
/*eslint vars-on-top: "error"*/

// Variable declaration after other statements:
f();
var a;
Открыть в Playground
/*eslint vars-on-top: "error"*/

// Variables in class static blocks should be at the top of the static blocks.

class C {

    // Variable declaration in a nested block:
    static {
        if (something) {
            var a = true;
        }
    }

    // Variable declaration after other statements:
    static {
        f();
        var a;
    }

}

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint vars-on-top: "error"*/

function doSomething() {
    var first;
    var second; //multiple declarations are allowed at the top
    if (true) {
        first = true;
    }
}

function doSomethingElse() {
    var i;
    for (i=0; i<10; i++) {}
}
Открыть в Playground
/*eslint vars-on-top: "error"*/

var a;
f();
Открыть в Playground
/*eslint vars-on-top: "error"*/

class C {

    static {
        var a;
        if (something) {
            a = true;
        }
    }

    static {
        var a;
        f();
    }

}
Открыть в Playground
/*eslint vars-on-top: "error"*/

// Directives may precede variable declarations.
"use strict";
var a;
f();

// Comments can describe variables.
function doSomething() {
    // this is the first var.
    var first;
    // this is the second var.
    var second;
}

Параметры

У этого правила нет параметров.

Версия

Это правило появилось в ESLint v0.8.0.

Дополнительная литература

Области видимости и поднятие в JavaScript
www.adequatelygood.com
var — JavaScript | MDN
developer.mozilla.org
Критика шаблона Single Var в JavaScript и простая альтернатива — Dan Hough
danhough.com
Ben Alman » Несколько инструкций var в JavaScript — это не излишество
benalman.com

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/vars-on-top

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API