DEV Community

Cover image for let, const , var difference in Javascript?
sagar
sagar

Posted on

let, const , var difference in Javascript?

In JavaScript, let, const, and var are used to declare variables, but they are different in three ways:

1. Scope
2. Reassignment
3. Hoisting

1.Scope:

var is a functional scope means we access var variable anywhere within the function if we try access it outside function it will show error undefined
Example:-


function demo(){
  if(true){
    var n = 3;
  }
  console.log(n)
}
console.log(n) //ReferenceError: n is not defined
demo();
Enter fullscreen mode Exit fullscreen mode

let & const are block means we can access them within the scope only otherwise it will show undefined error
Example:-

function demo(){
  if(true){
    let n = 3;
    const m = 5;
     console.log(n) // 3
     console.log(m) // 5
  }
  console.log(n) //ReferenceError: n is not defined
  console.log(m) //ReferenceError: n is not defined
}
console.log(n) //ReferenceError: n is not defined
console.log(m) //ReferenceError: n is not defined
demo();
Enter fullscreen mode Exit fullscreen mode

2.Reassignment

  • var: Can be reassigned and redeclared within its scope.
  • let: Can be reassigned but not redeclared within its scope.
  • const: Cannot be reassigned or redeclared. The variable itself is immutable, though objects and arrays assigned to const can still be modified .

3.Hoisting

  • var is hoisted, meaning it's accessible before its declaration, but its value will be undefined until the code reaches the line where the variable is initialized.
  • let is also hoisted, but unlike var, it cannot be accessed before its declaration due to the "temporal dead zone."
  • Variables declared with const are also hoisted but must be initialized at the time of declaration and cannot be reassigned. However, if the variable is an object or array, its contents can be modified (e.g., adding or removing items from an array).
// var example
console.log(a); // undefined (due to hoisting)
var a = 10;
console.log(a); // 10

// let example
console.log(b); // ReferenceError: Cannot access 'b' before initialization
let b = 20;
console.log(b); // 20

// const example
const c = 30;
c = 40; // TypeError: Assignment to constant variable
Enter fullscreen mode Exit fullscreen mode

Top comments (0)