Skip to content

dannyfritz/eslint-varsontop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

THIS IS NOW AN OFFICIAL RULE OF ESLINT AND IS NO LONGER MAINTAINED HERE

Deprecated! vars-on-top is now included in eslint. And as such, this repo will no longer be maintained.


vars-on-top

ESLint custom rule to enforce var declarations are only at the top of functions.

For information on how to use this custom rule, please refer to Working with Rules.

npm package can be installed with npm install eslint-varsontop.

var must be defined at the top of your function scope.

The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope.

Rule Details

This rule aims to keep all variable declarations to the top of functions. Allowing multiple helps promote maintainability and reduces syntax.

No variable declarations in if

// BAD
function doSomething() {
    var first;
    if (true) {
        first = true;
    }
    var second; //not declared at the top
}

// GOOD
function doSomething() {
    var first;
    var second; //multiple declarations are allowed at thet op
    if (true) {
        first = true;
    }
}

No variable declarations in for

// BAD
function doSomething() {
    for (var i=0; i<10; i++) {}
}

// GOOD
function doSomething() {
    var i;
    for (i=0; i<10; i++) {}
}

No variable declarations in for in

// BAD
function doSomething() {
    var list = [1,2,3];
    for (var num in list) {}
}

// GOOD
function doSomething() {
    var list = [1,2,3];
    var num;
    for (num in list) {}
}

No variable declarations in try/catch

// BAD
function doAnother() {
    try {
        var build = 1;
    } catch (e) {
        var f = build;
    }
}

// GOOD
function doAnother() {
    var build, f;
    try {
        build = 1;
    } catch (e) {
        f = build;
    }
}

Comments can naturally describe variables.

// GOOD
function doSomething() {
    var first;
    var second
}

//ALSO GOOD
function doSomething() {
    // this is the first var.
    var first;
    // this is the second var.
    var second
}

Further Reading

About

ESLint custom rule to enforce var declarations are only at the top of a function.

Resources

License

Stars

Watchers

Forks

Packages

No packages published