What is the difference between let and var?

You can list out the differences in a tabular format


  • It is been available from the beginning of JavaScript

  • Variables will be hoisted

  • It has a function scope


  • Introduced as part of ES6

  • It has a block scope

  • Hoisted but not initialized

Let's take an example to see the difference,

function userDetails(username) {

if(username) {

console.log(salary); // undefined(due to hoisting)

console.log(age); // error: age is not defined

let age = 30;

var salary = 10000;


console.log(salary); //10000 (accessible to due function scope)

console.log(age); //error: age is not defined(due to block scope)}