Области видимости переменных
[Мне привычен термин «область видимости ». Иногда английское слово scope переводят как «область действия» или «область определения» переменной.]
Область видимости переменной – это блок программы, в котором переменная определена. Глобальная переменная, объявленная вне какой бы то ни было функции, определена для всего сценария. При объявлении глобальной переменной с одновременной инициализацией инструкцию var (см. инструкции) можно опустить.
Переменная, объявленная при помощи инструкции var в теле функции, является локальной, то есть определена только в теле функции. Ее значение доступно лишь при вызове функции.
Возможное совпадение идентификаторов глобальных и локальных переменных – синтаксически допустимая, но крайне неудобная при отладке и нежелательная в программном коде ситуация. Приведем пример.
//так могут быть объявлены глобальные переменные:
var x; //явное объявление без инициализации
a = 123; //неявное объявление с инициализацией
var q = 'hello'; //явное объявление с инициализацией
//-----------------------------------
function test()
{
var a = 555; // это локальная переменная, не имеющая
// никакого отношения к объявленной выше
// глобальной a,
// поскольку она объявлена в теле функции
// с помощью инструкции var
q = q + ' world'; //изменилось значение глобальной
// переменной q
alert('внутри функции a = ' + a);
//выведет окно с сообщением: 'внутри функции a = 555'
};
//-----------------------------------
//проверим значения глобальных переменных до и после вызова функции:
alert('до вызова функции a = ' + a);
//выведет окно с сообщением: 'до вызова функции a = 123'
test(); //вызов функции
alert('после вызова функции a = ' + a);
//выведет окно с сообщением: 'после вызова функции a = 123'
alert(' после вызова функции q = ' + q);
//выведет окно с сообщением:
//'после вызова функции q = Hello world'
Несмотря на примитивность, этот пример в полной мере демонстрирует понятие области видимости переменных.
Комментарии:
Нету комментариев для вывода...