DEV Community

Raj Kishor Shaw
Raj Kishor Shaw

Posted on

Var, Let, and Const

We all have used var, let, and const variables many times in JavaScript but sometimes we all get confused about which is the best variable to use for a particular program. I am writing this blog to understand let, var, and const variables for helping someone to clear their basics regarding the same.

Var

It is the oldest keyword to declare a variable in JavaScript. The scope of it is global or function scope. Variables defined outside the function can be accessed globally and variables defined inside a particular function can be accessed within the function.
It can be updated and re-declared into the scope.

Example -

    function f() {
        var a = 7;
        console.log(a)
    }
    f();
    console.log(a);
Enter fullscreen mode Exit fullscreen mode

Output-

7
ReferenceError: a is not defined
Enter fullscreen mode Exit fullscreen mode

Let

It is an improved version of the var keyword. The scope of a let keyword is only block scoped. It cannot be accessible outside the particular block.
It can be updated but cannot be re-declared into the scope.

Example 1-

    let a =7;
    function f() {
        if (true) {
            let b = 9

            // It prints 9
            console.log(b);
        }

        // It gives error as it
        // defined in if block
        console.log(b);
    }
    f()

    // It prints 7
    console.log(a)
Enter fullscreen mode Exit fullscreen mode

Output-

9
ReferenceError: b is not defined
7
Enter fullscreen mode Exit fullscreen mode

Example 2-

let a = 7
if (true) {
    let a=9
    console.log(a) // It prints 9
}
console.log(a) // It prints 7
Enter fullscreen mode Exit fullscreen mode

Output-

9
7
Enter fullscreen mode Exit fullscreen mode

Const

It has all the properties same as the let keyword, except the user cannot update it. It cannot be updated or re-declared into the scope.

Example-

    const a = {
        prop1: 7,
        prop2: 9
    }

    // It is allowed
    a.prop1 = 3

    // It is not allowed
    a = {
        b: 7,
        prop2: 9
    }

Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
decker67 profile image
decker

When to use what would be interesting: const -> let, never var.