VAR, LET, CONST. ЧАСТЬ 1

Ссылка на статью в телеграм: https://t.me/froggyxyz_dev/11 Ссылка на статью в вк: https://vk.com/@froggyxyz_dev-var-let-const-chast-1

В JavaScript есть несколько способов инициализировать переменную. Самый старый из них - var, и те, что появились чуть позже - let и const.

Разберемся в чем их отличие, как было до появления let и const, и в каких случаях использовать каждую из них.

В первой части мы затронем такое понятие, как область видимости.

Область видимости в JavaScript для многих разработчиков вызывает некоторую сложность, особенно для тех, кто работал ранее с другими языками.

Дело в том, что в JavaScript изначально локальную область видимости может создать ТОЛЬКО функция. Ни о какой блочной области видимости, как, например, в Си, речи и не шло. Если мы инициализируем переменную value в блоке if, то мы сможем до нее достучаться и снаружи блока, в последующих строчках кода. if не создает свою область видимости, как многие этого ожидали бы

if (true) { var value = 1; } console.log(value); // Выведет 1

В рамках данной части - это является главной особенностью инициализации переменной с помощью var. Но как обстоят дела с let?

let, также как и const, появились только в ES6 (2015), как альтернативные способы для инициализации переменных.

Если мы попробуем переписать код выше и инициализировать переменную уже с помощью let, то в консоли мы увидим ошибку о том, что такой переменной не существует

if (true) { let value = 1; console.log(value); // Выведет 1 } console.log(value); // Выдаст ReferenceError

Это происходит из-за того, что let, как раз имеет уже блочную область видимости. Сама переменная, после инициализации, существует только в рамках того блока, в котором она объявлена (и в блоках глубже, но не выше). Такая реализация уже больше походит на то, что сделано и в других языках, а также дает больше гибкости во время разработки.

А что же с const? const, в данном случае, работает абсолютно также, как и let, за исключением неких других особенностей, о которых мы поговорим в дальнейшем.

if (true) { const value = 1; console.log(value); // Выведет 1 } console.log(value); // Выдаст ReferenceError

VAR, LET, CONST. ЧАСТЬ 1 | Сетка — социальная сеть от hh.ru