Область действия переменной определяется положением ее декларации в тексте программы. Существуют три типа исполняемого кода JavaScript, называемых
контекстом исполнения:
- Глобальный контекст, т. е. исходный текст сценариев, не включая тела функций.
- Локальный контекст, т. е. исходный текст сценариев, являющийся телом функции, а также аргумент конструктора встроенного объекта Function. Точнее говоря, если последним параметром конструктора Function является строка текста, то она интерпретируется как тело функции.
- Eval-контекст, т. е. аргумент метода eval. Если параметром метода eval является строка текста, то она интерпретируется как программа на языке JavaScript, имеющая тот же контекст, в котором был вызван этот метод.
Иными словами, любая переменная, декларированная вне тела всех функций, является
глобальной и доступна всюду в тексте данной программы. Переменная, декларированная в теле функции, является
локальной и доступна только внутри тела этой функции. Об особенностях eval-контекста см. описание метода
eval.
Для декларации глобальных переменных ключевое слово
var не обязательно. Однако, оно обязательно при декларации локальных переменных.