Область видимости переменных
Переменные могут быть глобальными и локальными. Глобальные переменные доступны в любом месте кода, а локальные только внутри функции.
На примере ниже созданы две переменные: lang
(глобльная) и framework
(локальная).
var lang = 'JavaScript'; function getLang() { var framework = 'jQery'; } lang; // JavaScript framework; // Ошибка: Uncaught ReferenceError: framework is not defined
При вызове переменной framework
происходит ошибка, т.к. она доступна только внутри функции.
Если у глобальной и локальной переменной будет одно имя, то будет создана локальная переменная, которая не затронет текущую глобальную переменную.
var lang = 'JavaScript'; function getLang() { var lang = 'jQery'; return lang; } getLang(); // jQuery lang; // JavaScript
На примере выше видно, что внутри функции снова создаётся переменная lang
, при этом, она не заменяет уже существующую глобальную переменную.
Доступ к переменной в пределах текущего блока
В новой версии JavaScript возможно создавать переменные через ключевое слово let
. Данные переменные доступны в пределах текущего блока.
if (true) { let lang = "JavaScript"; lang; // JavaScript } lang; // Ошибка: Uncaught ReferenceError: lang is not defined
На примере выше видно, что вызов переменной lang
за пределами if
вызывает ошибку, т.к. данная переменная не доступна за пределами того блока, в котором она была создана.
Аналогично для других блоков, например for
или while
.
Авторизуйтесь, чтобы добавлять комментарии