vvz.nw.ru Примеры к занятиям по JavaScript

<< Области видимости переменных

[Мне привычен термин «область видимости ». Иногда английское слово 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'
 
  

Несмотря на примитивность, этот пример в полной мере демонстрирует понятие области видимости переменных.

 



vvz.nw.ru  > JavaScript