JavaScript Область действия
Область действия (или область видимости) определяет доступность (видимость) переменных.
JavaScript имеет 3 типа области действия:
- Область действия блока
- Область действия функции
- Область действия глобальная
Область действия блока
До ES6 (2015) в JavaScript были только Глобальная область действия и Область действия функции.
ES6 представил два важных новых ключевых слова JavaScript: let
и const
.
Эти два ключевых слова обеспечивают область действия блока в JavaScript.
К переменным, объявленным внутри блока { }, нельзя получить доступ извне блока:
Пример
{
let x = 2;
}
// x НЕ может быть использован здесь
Переменные, объявленные с помощью ключевого слова var
НЕ могут иметь область действия блока.
К переменным, объявленным внутри блока { }, можно получить доступ извне блока.
Пример
{
var x = 2;
}
// x МОЖНО использовать здесь
Локальная область действия
Переменные, объявленные в функции JavaScript, становятся ЛОКАЛЬНЫМИ для функции.
Пример
// код здесь НЕ может использовать carName
function myFunction() {
let carName = "Volvo";
// код здесь МОЖЕТ использовать carName
}
// код здесь НЕ может использовать carName
Попробуйте сами »
Локальные переменные имеют Область действия функции:
Доступ к ним можно получить только из функции.
Поскольку локальные переменные распознаются только внутри своих функций, переменные с одинаковыми именами могут использоваться в разных функциях.
Локальные переменные создаются при запуске функции и удаляются, когда функция завершается.
Область действия функции
JavaScript имеет область действия функции: каждая функция создает новую область действия.
Переменные, определенные внутри функции, недоступны (видимы) вне функции.
Переменные, объявленные с помощью var
, let
и const
очень похожи, когда объявлены внутри функции.
Они все имеют Область действия функции:
function myFunction() {
var carName = "Volvo"; // Область действия функции
}
function myFunction() {
let carName = "Volvo"; // Область действия функции
}
function myFunction() {
const carName = "Volvo"; // Область действия функции
}
Глобальные JavaScript переменные
Переменная, объявленная вне функции, становится ГЛОБАЛЬНОЙ.
Пример
let carName = "Volvo";
// код здесь может использовать carName
function myFunction() {
// код здесь также может использовать carName
}
Попробуйте сами »
Глобальная переменная имеет Глобальную область действия:
Все скрипты и функции на веб-странице могут получить к ней доступ.
Глобальная область действия
Переменные, объявленные Глобально (вне какой-либо функции), имеют Глобальную область действия.
Доступ к глобальным переменным можно получить из любого места в программе JavaScript.
Переменные, объявленные с помощью var
, let
и const
очень похожи, когда объявлены вне блока.
Они все имеют Глобальную область действия:
var x = 2;
// Глобальная область действия
let x = 2; // Глобальная область действия
const x = 2; // Глобальная область действия
JavaScript Переменные
В JavaScript объекты и функции также являются переменными.
Область видимости определяет доступность переменных, объектов и функций из разных частей кода.
Автоматически глобальная
Если вы присвоите значение переменной, которая не была объявлена, она автоматически станет ГЛОБАЛЬНОЙ переменной.
Этот пример кода объявляет глобальную переменную carName
, даже если значение назначается внутри функции.
Пример
myFunction();
// код здесь может использовать carName
function myFunction() {
carName = "Volvo";
}
Попробуйте сами »
Строгий режим
Все современные браузеры поддерживают выполнение JavaScript в "Строгом режиме".
Вы узнаете больше о том, как использовать строгий режим в следующей главе этого учебника на нашем сайте W3Schools на русском.
В "Строгом режиме" необъявленные переменные не становятся глобальными автоматически.
Глобальные переменные в HTML
В JavaScript глобальной областью действия является среда JavaScript.
В HTML глобальной областью действия является объект окна.
Глобальные переменные, определенные с помощью ключевого слова var
принадлежат объекту окна:
Глобальные переменные, определенные с помощью ключевого слова let
не принадлежат объекту окна:
Предупреждение
НЕ создавайте глобальные переменные, если вы не собираетесь.
Ваши глобальные переменные (или функции) могут перезаписывать переменные (или функции) окна.
Любая функция, включая объект окна, может перезаписывать ваши глобальные переменные и функции.
Время жизни переменных JavaScript
Время жизни переменной JavaScript начинается с момента её объявления.
Функциональные (локальные) переменные удаляются по завершении функции.
В веб-браузере глобальные переменные удаляются при закрытии окна (или вкладки) браузера.
Аргументы функции
Аргументы функции (параметры) работают как локальные переменные внутри функций.