Область видимости переменных JavaScript — это то, как переменная становится видимой для программы. Областьможет быть глобальной или локальной. Глобальные переменные видны повсюду в программе. Переменные с локальной областью видимости видны только внутри оператора блока кода, в котором они объявлены. Операторы блока заключаются в скобки «{…}».

Переменные JavaScript объявляются с помощью: var, let или const.

ВАР

var объявляется как переменная области действия или глобальной области действия и может быть объявлена ​​как неопределенная или с предопределенным значением.

or

Кроме того, переменные, объявленные с помощью var, обрабатываются перед выполнением кода, и в JavaScript это называется подъемом. Поднятые переменные инициализируются как неопределенные и не будут вызывать ошибку при вызове до объявления. Рассмотрим следующее:

В приведенном ниже коде x никогда не определяется, и console.log(x) выдает ошибку.

В приведенном ниже коде x определяется после console.log(x), и из-за подъема console.log(x) не будет скиньте ошибку. Вместо этого он вернет undefined.

Сделав еще один шаг, рассмотрим код ниже. Переменные localScope и i инициализируются как 0. Цикл for повторяется от 0 до 9 и добавляет i к localScope переменная. После завершения цикла for возвращаются как localScope, так и i. В этом примере localScope возвращает 45, а i возвращает 10. i оценивается как 10, потому что var НЕ блокируется. ограниченный. Это может привести к непредсказуемому поведению.

ПУСТЬ

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

or

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

В приведенном ниже коде y никогда не определяется, и console.log(y) выдает ошибку.

В приведенном ниже коде y определяется после console.log(y), и будет выдано сообщение об ошибке, поскольку переменные, объявленные с помощью let, не обрабатываются. перед выполнением кода.

let имеет блочную область действия, и в приведенном ниже примере console.log(i) выдаст ошибку. Переменная i доступна только в цикле for.

КОНСТ

const объявляет переменную только для чтения, что означает, что ее значение нельзя изменить; однако, если const объявлен как объект или массив, его свойства могут быть обновлены. Переменные const должны быть объявлены со значением и являются блочными переменными. Переменная const не может быть повторно объявлена ​​в той же области, и const не поднимается.

В приведенном ниже коде показано, как переменная z объявляется со значением 100. z нельзя изменить в пределах области, в которой она определена.

В приведенном ниже коде const используется для объявления объекта со свойством «key». Объект представлен как переменная obj.

Если obj повторно объявить в той же области, возникнет ошибка.

Разрешена работа со свойствами объекта, и этими свойствами можно манипулировать следующим образом.

Как показано, переменные могут быть объявлены с помощью: var, const и let. Переменные, объявленные с помощью var, поднимаются и обрабатываются перед выполнением кода. И let, и const являются объявлениями блочной области и должны быть определены в пределах области перед использованием.

Ссылка:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const