Свойство глобального объекта javascript

Global object

В JavaScript всегда определён глобальный объект. В веб-браузере, когда скрипты создают глобальные переменные, они создаются как свойства глобального объекта. (В Node.js это не так.) Interface глобального объекта зависит от контекста, в котором выполняется скрипт.К примеру:

  • В веб-браузере любой код, который не запускается скриптом явно как фоновую задачу, имеет Window в качестве своего глобального объекта. Это покрывает большую часть JavaScript-кода в сети.
  • Код, работающий в Worker имеет WorkerGlobalScope объект в качестве своего глобального объекта.
  • Скрипты, работающие в Node.js имеют объект, который называется global в качестве своего глобального объекта.

Объект window в Браузере

Объект window — Глобальный Объект в браузере. Доступ к любым Глобальным Переменным или функциям может быть получен как к свойствам объекта window .

Получение доступа к Глобальным Переменным

var foo = "foobar"; foo === window.foo; // Возвращает: true 

После определения Глобальной Переменной foo , мы можем получить доступ к его значению прямо с объекта window , использую имя переменной foo в качестве имени свойства Глобального Объекта window.foo .

Объяснение

Глобальная Переменная foo была сохранена в объекте window , подобно следующему примеру:

Получение доступа к Глобальным Функциям

function greeting()  console.log("Hi!"); > window.greeting(); // Тоже самое что и обычный вызов: greeting(); 

Пример выше показывает как Глобальные Функции хранятся в качестве свойств объекта window . Мы создали Глобальную Функцию greeting и вызвали её с помощью объекта window .

Объяснение

Глобальная функция greeting была сохранена в объекте window , подобно следующему примеру:

greeting: function greeting()  console.log("Hi!"); > 

Found a content problem with this page?

This page was last modified on 20 июл. 2023 г. by MDN contributors.

Your blueprint for a better internet.

Источник

Глобальный объект

Глобальный объект предоставляет переменные и функции, доступные в любом месте программы. По умолчанию это те, что встроены в язык или среду исполнения.

В браузере он называется window , в Node.js — global , в другой среде исполнения может называться иначе.

Недавно globalThis был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении. Он поддерживается во всех основных браузерах.

Далее мы будем использовать window , полагая, что наша среда – браузер. Если скрипт может выполняться и в другом окружении, лучше будет globalThis .

Ко всем свойствам глобального объекта можно обращаться напрямую:

alert("Привет"); // это то же самое, что и window.alert("Привет");

В браузере глобальные функции и переменные, объявленные с помощью var (не let/const !), становятся свойствами глобального объекта:

var gVar = 5; alert(window.gVar); // 5 (становится свойством глобального объекта)

То же самое касается функций, объявленных с помощью синтаксиса Function Declaration (выражения с ключевым словом function в основном потоке кода, не Function Expression)

Пожалуйста, не полагайтесь на это. Такое поведение поддерживается для совместимости. В современных проектах, использующих JavaScript-модули, такого не происходит.

Если бы мы объявили переменную при помощи let , то такого бы не произошло:

let gLet = 5; alert(window.gLet); // undefined (не становится свойством глобального объекта)

Если свойство настолько важное, что вы хотите сделать его доступным для всей программы, запишите его в глобальный объект напрямую:

// сделать информацию о текущем пользователе глобальной, для предоставления доступа всем скриптам window.currentUser = < name: "John" >; // где угодно в коде alert(currentUser.name); // John // или, если у нас есть локальная переменная с именем "currentUser", // получим её из window явно (безопасно!) alert(window.currentUser.name); // John

При этом обычно не рекомендуется использовать глобальные переменные. Следует применять их как можно реже. Дизайн кода, при котором функция получает входные параметры и выдаёт определённый результат, чище, надёжнее и удобнее для тестирования, чем когда используются внешние, а тем более глобальные переменные.

Использование для полифилов

Глобальный объект можно использовать, чтобы проверить поддержку современных возможностей языка.

Например, проверить наличие встроенного объекта Promise (такая поддержка отсутствует в очень старых браузерах):

Если нет (скажем, используется старый браузер), мы можем создать полифил: добавить функции, которые не поддерживаются окружением, но существуют в современном стандарте.

Итого

  • Глобальный объект хранит переменные, которые должны быть доступны в любом месте программы. Это включает в себя как встроенные объекты, например, Array , так и характерные для окружения свойства, например, window.innerHeight – высота окна браузера.
  • Глобальный объект имеет универсальное имя – globalThis . …Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как window (браузер) и global (Node.js).
  • Следует хранить значения в глобальном объекте, только если они действительно глобальны для нашего проекта. И стараться свести их количество к минимуму.
  • В браузерах, если только мы не используем модули, глобальные функции и переменные, объявленные с помощью var , становятся свойствами глобального объекта.
  • Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую, как window.x .

Источник

JavaScript: Глобальный объект

Все глобальные переменные и функции на самом деле являются свойствами и методами специального объекта, который называется глобальным объектом .

Глобальный объект представляет собою обычный объект, который создаётся автоматически при запуске интерпретатора.

В JavaScript роль глобального объекта играет объект Window. Этот объект имеет свойство window, ссылающееся на сам объект Window. Объект Window одновременно является и глобальным объектом и помимо этого содержит ряд собственных свойств и методов для работы с окном браузера.

В программном коде верхнего уровня сослаться на глобальный объект можно также посредством ключевого слова this :

Поскольку глобальные переменные являются свойствами глобального объекта то, работая с глобальной переменной, на самом деле, мы, работаем со свойствами window:

var num = 10; alert(window.num); // 10

Вместо объявления переменной с помощью ключевого слова var, создать переменную можно и явно указав новое свойства объекту Window:

window.num = 10; alert(num); // 10

Обратите внимание, что несмотря на то, что глобальные переменные на самом деле являются свойствами объекта Window, указывать его перед именем переменной необязательно:

var num = 10; alert(num); // 10 alert(window.num); // 10. Тоже самое, что и alert(num);

Если глобальная переменная объявляется с помощью ключевого слова var или let , создаётся ненастраиваемое свойство, т. е. свойство, которое невозможно удалить с помощью оператора delete :

var num = 10; alert(delete num); // false, переменная не удалена

Если необъявленной переменной присвоить некоторое значение, интерпретатор JavaScript автоматически создаст глобальную переменную. Переменные созданные таким способом, становятся обычными, настраиваемыми свойствами глобального объекта, т. е. могут быть удалены с помощью оператора delete :

num = 10; alert(delete num); // true, переменная удалена

Методы

Метод Описание
decodeURI() Возвращает строку, содержащую URI в декодированном виде.
decodeURIComponent() Возвращает строку, содержащую часть URI в декодированном виде.
encodeURI() Возвращает строку, содержащую URI в закодированном виде.
encodeURIComponent() Возвращает строку, содержащую часть URI в закодированном виде.
eval() Функция eval() выполняет код, переданный ей в виде строки. Код, переданный функции, выполняется в той области видимости, где была вызвана функция.
isFinite() Преобразует аргумент в число (если это необходимо) и возвращает true, если аргумент содержит любое значение отличное от NaN, положительной и отрицательной бесконечности. В этих трех случаях возвращает false.
isNaN() Определяет является передаваемый аргумент значением NaN или нет.
parseFloat() Анализирует строковый аргумент и возвращает число с плавающей точкой или NaN.
parseInt() Анализирует строковый аргумент и возвращает целое число или NaN.

Свойства

Свойство Описание
Infinity Специальное числовое значение представляющее бесконечность.
NaN Специально значение, указывающее что значение не является числом (Not a Number).
undefined Специальное значение, указывающее на отсутствие значения. Например, переменная, которой не было присвоено значение имеет тип undefined.

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru

Источник

Стандартные встроенные объекты

Эта глава описывает все стандартные встроенные объекты JavaScript, вместе с их методами и свойствами.

Термин «глобальные объекты» (или стандартные встроенные объекты) здесь не следует путать с самим глобальным объектом. Далее в главе под этим обозначением понимаются объекты в глобальном пространстве имён (но только, если не используется строгий режим ECMAScript 5! В противном случае они возвращают undefined ). Сам же глобальный объект в глобальном пространстве имён доступен через оператор this . На самом деле, глобальное пространство имён состоит из свойств глобального объекта (в том числе включая унаследованные свойства, если они есть).

Другие объекты в глобальном пространстве имён создаются либо с помощью пользовательских скриптов, либо предоставляются приложением хоста. Объекты хоста, доступные в контекстах браузера, задокументированы в справке по API (en-US) . Для получения дополнительной информации о различии между DOM и ядром JavaScript, смотрите обзор технологии JavaScript.

Стандартные объекты (по категориям)

Значения

Глобальные свойства, возвращающие простое значение.

Функции

Глобальные функции, возвращающие результат определённой подпрограммы.

  • eval()
  • uneval() Non-standard
  • isFinite()
  • isNaN()
  • parseFloat()
  • parseInt()
  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()
  • escape() Устарело
  • unescape() Устарело

Фундаментальные объекты

Общие языковые объекты, функции и ошибки.

Числа и даты

Объекты, имеющие дело с числами, датами и математическими вычислениями.

Обработка текста

Объекты для манипулирования текстом.

Индексированные коллекции

Коллекции, упорядоченные по индексам. Массивоподобные объекты.

Коллекции по ключу

Коллекции объектов по ключу. Элементы обходятся в порядке вставки.

Структурированные данные

Буферы данных и Объектная нотация JavaScript (JavaScript Object Notation).

Объекты управляющих абстракций

Рефлексия

Интернационализация

Дополнения к ядру ECMAScript, отвечающие за функциональность, чувствительную к языку.

Нестандартные объекты

Прочее

Found a content problem with this page?

This page was last modified on 7 нояб. 2022 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

Читайте также:  Размеры изображения
Оцените статью