Keywords: Var vs Let vs Const in JS:

Keywords: Var vs Let vs Const in JS:

In JavaScript, let, const, and var are used to declare variables, but they have some important differences in terms of scoping, hoisting, and reassigning:

Var:

  • Function-scoped: Variables declared with var are function-scoped, which means they are only accessible within the function in which they are declared.

  • Hoisting: Variables declared with var are hoisted to the top of their containing function or global scope. This means we can access the variable before it's declared in the code, but it will have an initial value of undefined.

  • Reassignment: Variables declared with var can be reassigned and modified.

    Example:

      function example() {
        var x = 1;
        if (true) {
          var x = 2; // This also affects the 'x' declared outside the if block.
        }
        console.log(x); // Outputs 2
      }
    

    Let:

    • Block-scoped: Variables declared with let are block-scoped, which means they are only accessible within the block (enclosed by curly braces) in which they are declared.

    • Hoisting: Variables declared with let are hoisted to the top of their containing block but are not initialized. This means we cannot access the variable before it's declared.

    • Reassignment: Variables declared with let can be reassigned and modified.

Example:

    function example() {
      let x = 1;
      if (true) {
        let x = 2; // This does not affect the 'x' declared outside the if block.
      }
      console.log(x); // Outputs 1
    }

Const:

  • Block-scoped: Variables declared with const are also block-scoped.

  • Hoisting: Like let, variables declared with const are hoisted to the top of their containing block but are not initialized, so we cannot access them before they are declared.

  • Immutability: Variables declared with const cannot be reassigned once they are assigned a value. However, for objects and arrays, the properties or elements of the object or array can still be modified.

Example:

    function example() {
      const x = 1;
      if (true) {
        const x = 2; // This does not affect the 'x' declared outside the if block.
      }
      console.log(x); // Outputs 1
    }

In modern JavaScript development, it's generally recommended to use const by default and only use let when we need to reassign a variable. Avoid using var in new code.