Skip to content

eslint/vars-on-top Style

What it does

Enforces that all var declarations are placed at the top of their containing scope.

Why is this bad?

In JavaScript, var declarations are hoisted to the top of their containing scope. Placing var declarations at the top explicitly improves code readability and maintainability by making the scope of variables clear.

Examples

Examples of incorrect code for this rule:

js
function doSomething() {
  if (true) {
    var first = true;
  }
  var second;
}

function doSomethingElse() {
  for (var i = 0; i < 10; i++) {}
}

f();
var a;

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

Examples of correct code for this rule:

js
function doSomething() {
  var first;
  var second;
  if (true) {
    first = true;
  }
}

function doSomethingElse() {
  var i;
  for (i = 0; i < 10; i++) {}
}

var a;
f();

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

References

Released under the MIT License.