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 начинается с момента её объявления.
Функциональные (локальные) переменные удаляются по завершении функции.
В веб-браузере глобальные переменные удаляются при закрытии окна (или вкладки) браузера.
Аргументы функции
Аргументы функции (параметры) работают как локальные переменные внутри функций.

