Отличие объявления переменных через let и var в JavaScript

Самое главное отличие между let и var, как мне кажется - это видимость объявленной переменной. Переменная, что была объявлена через var будет видна по всей функции, переменная, что была объявлена через let, будет видна только в блоке, то есть между фигурными скобками { и }, где она и была определена, или видна не будет в блоке, если переменная объявлена вне блока.

Пример объявления переменной через var:
var variable = 'Первое значение';
if (variable) {
	var variable = 'Второе значение';
};

alert(variable); // На экране: "Второе значение"

Пример объявления переменной через let:
let variable = 'Первое значение';
if (variable) {
	let variable = 'Второе значение';
};

alert(variable); // На экране: "Первое значение"

Код первого примера выведет на экран строку "Второе значение", код второго примера выведет на экран "Первое значение".
Автор: