Область видимости переменных
Область видимости переменных в языке JavaScript
Прежде чем читать об области видимости переменных, вам нужно прочитать статью о функциях в JavaScript.
В JavaScript, существует две области видимости: локальная и глобальная. Зависит от того, где объявлена переменная, внутри функции или вне функции.
Если переменная объявлена внутри функции, то она называется локальной, если переменная объявлена вне функции, то она называется глобальной.
Современная концепция программирования, рекомендует чтобы все переменные в скриптах (программах) были локальными, а сама программа состояла лишь из функций, где каждая функция выполняла бы только одну задачу. Например в другом языке web-программирования PHP, вообще отказались от использования глобальных переменных.
Глобальные переменные в JavaScript
Глобальные переменные объявляются вне функций и к ним можно обратиться (получить доступ) из любой функции или строки программы.
var russia; russia = "Россия"; function getValueRussia() { alert(russia); } getValueRussia();
Здесь russia — это глобальная переменная, так как она объявлена вне функции. Чтобы доказать что переменная глобальная, мы обратились к ней изнутри пользовательской функции getValueRussia()
, с помощью функции alert()
которая вывела на экран значение переменной russia
.
Локальные переменные в JavaScript
Локальные переменные в JavaScript, объявляются внутри функций. Получить доступ к локальным переменным можно только внутри той функции в которой они объявлены.
function getValueRussia() { var russia; russia = "Россия"; } alert(russia);
В данном примере, ничего не произойдет (окошко с надписью «Россия», не появится), а если просмотреть скрипт через консоль, то он сообщит нам том что переменная russia — не определена (undefined), это означает что функция alert()
(размещённая вне функции), не видит переменную russia, которую создали внутри функции.
function getValueRussia() { var russia; russia = "Россия"; alert(russia); } getValueRussia();
Разместив функцию alert()
внутри функции и затем вызвав функцию getValueRussia()
, мы увидим окошко с надписью «Россия». Данные примеры показывают нам, что к локальным переменным можно обращаться только внутри функции, в которой они созданы.
Локальные переменные создаются при каждом вызове функции и уничтожаются после завершения выполнения этой функции.