var vs. let vs. const (JS)

Overview

Type Scope Reassignable Redeclarable
var function yes yes
let block yes no
const block no no

var

function fct()
{
  var v1 = 1;
  {
    var v2 = 2;
  }
  console.log(v1); // ok
  v1 = 3;          // ok
  console.log(v2); // ok
  var v1 = 4;      // ok
}
console.log(v1);   // error

let

function fct()
{
  let v1 = 1;
  {
    let v2 = 2;
  }
  console.log(v1); // ok
  v1 = 3;          // ok
  console.log(v2); // error
  let v1 = 4;      // error
}
console.log(v1);   // error

const

function fct()
{
  const v1 = 1;
  {
    const v2 = 2;
  }
  console.log(v1); // ok
  v1 = 3;          // error
  console.log(v2); // error
  const v1 = 4;    // error
}
console.log(v1);   // error

Application

  • Depending on the circumstances try to use ‘const’ over ‘let’ over ‘var’.