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’.