JavaScript Scope
SCOPE определяет доступность (видимость) переменных.
Область видимости функции JavaScript
В JavaScript существует два типа области:
- Local scope
- Global scope
JavaScript имеет область функций: каждая функция создает новую область.
SCOPE определяет доступность (видимость) этих переменных.
Переменные, определенные внутри функции, недоступны (видимы) извне функции.
Локальные переменные JavaScript
Переменные, объявленные в функции JavaScript, становятся Локальная функция.
Локальные переменные имеют локальную область видимости: доступ к ним возможен только внутри функции.
Пример
// code here can NOT use carName
function myFunction() {
var carName = "Volvo";
// code here CAN use carName
}
Поскольку локальные переменные распознаются только внутри своих функций, переменные с одинаковым именем могут использоваться в различных функциях.
Локальные переменные создаются при запуске функции и удаляются при завершении функции.
Глобальные переменные JavaScript
Переменная, объявленная вне функции, становится глобальной.
Глобальная переменная имеет глобальную область видимости: все скрипты и функции на веб-странице могут получить к ней доступ.
Пример
var carName = " Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
Переменные JavaScript
В JavaScript объекты и функции также являются переменными.
SCOPE определяет доступность переменных, объектов и функций из различных частей кода.
Автоматически глобальные
Если присвоить значение переменной, которая не была объявлена, она автоматически превратится в глобальную переменную.
В этом примере кода будет объявлена Глобальная переменная карнаме, даже если значение назначено внутри функции.
Пример
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
Строгий режим
Все современные браузеры поддерживают запуск JavaScript в "строгом режиме".
Более подробно о том, как использовать строгий режим, вы узнаете в следующей главе этого учебного пособия.
Глобальные переменные не создаются автоматически в "строгом режиме".
Глобальные переменные в HTML
В JavaScript глобальная область видимости является полной средой JavaScript.
В HTML глобальная область видимости является объектом Window. Все глобальные переменные принадлежат объекту Window.
Пример
var carName = "Volvo";
// code here
can use window.carName
Предупреждение
Не создавайте глобальные переменные, если вы не намерены.
Глобальные переменные (или функции) могут перезаписать переменные окна (или функции).
Любая функция, включая объект Window, может перезаписать глобальные переменные и функции.
Время существования переменных JavaScript
Время жизни переменной JavaScript начинается, когда она объявлена.
Локальные переменные удаляются при завершении функции.
В веб-обозревателе глобальные переменные удаляются при закрытии окна обозревателя (или вкладки), но остаются доступными для новых страниц, загружаемых в одно и то же окно.
Аргументы функции
Аргументы функции (параметры) работают как локальные переменные внутри функций.