Что ж, когда дело доходит до объявления переменных в JavaScript, у нас есть несколько способов их объявить. В этой серии статей я укажу на основные различия между всеми тремя методами объявления переменных.

Объявление переменной с использованием var.

var - это старый способ объявления переменных в JavaScript. До es6 это был единственный способ объявлять переменные.

Чтобы объявить переменную JavaScript с помощью var, мы делаем это.

var some_var;

Будет объявлена ​​переменная с именем some_var. Хотя some_var объявлен, он еще не инициализирован, поэтому в console.log будет указано значение undefined.

console.log(some_var); //undefined

Область действия переменных, объявленных с помощью var, - это включающий контекст выполнения, то есть либо функция, либо глобальная область. Если ключевое слово var не указано во время объявления переменных, его область видимости становится глобальной.

Одна и та же переменная может быть объявлена ​​несколько раз с помощью var. Итак, если я объявлю переменную с именем foo, я могу снова объявить ее.

Переменные, объявленные с помощью var, поднимаются наверх текущего включающего контекста выполнения. Это означает, что перед запуском любого кода все объявления перемещаются в верхнюю часть контекста выполнения. Чтобы увидеть это на практике, давайте рассмотрим код.

Выше вы можете видеть, что мы вызываем console.log для s перед объявлением его в foo. Тем не менее, мы не получаем ReferenceError. Это связано с тем, что среда выполнения JavaScript перемещает все объявления var в верхнюю часть включающего блока выполнения, также называемого подъемом. По этой же причине мы можем без проблем повторно объявлять переменные var несколько раз, когда захотим.

Давайте посмотрим, как среда выполнения JavaScript поднимает переменные, используя приведенный выше пример.

В приведенном выше примере мы видим, что подъем повлияет на объявление переменной, а не на инициализацию ее значения.

Это все, что касается ключевого слова var в JavaScript. В следующей статье я расскажу об объявлении переменных с помощью let.