Var, let и const



Объявление переменных let и const - фича из ES6



Отличия let от var

1. Область видимости

let - блочная (видна только внутри блока {...})

var - функциональная (видна внутри функции и вложенных в нее)



let result = 20;



if (true) {

let result = 10;

}



console.log(result); // 20



var result = 20;



if (true) {

var result = 10;

}



console.log(result); // 10



2. Hoisting - объявление var переместится в начало функции



console.log(x); // undefined

var x = 10;



превращается в



var x;

console.log(x); // undefined

x = 10;



Отличие const от let:

Значение переменной, объявленной с помощью const, нельзя переназначить, это не относится к свойствам объекта



const person = {

name: 'Kim Kardashian'

}

person.name = 'name' // Ок

person = {} // Ошибка