JavaScript: Глобальный объект
Все глобальные переменные и функции на самом деле являются свойствами и методами специального объекта, который называется глобальным объектом.
Глобальный объект представляет собою обычный объект, который создаётся автоматически при запуске интерпретатора.
В JavaScript роль глобального объекта играет объект Window. Этот объект имеет свойство window, ссылающееся на сам объект Window. Объект Window одновременно является и глобальным объектом и помимо этого содержит ряд собственных свойств и методов для работы с окном браузера.
В программном коде верхнего уровня сослаться на глобальный объект можно также посредством ключевого слова this
:
alert(this === window); // true
Поскольку глобальные переменные являются свойствами глобального объекта то, работая с глобальной переменной, на самом деле, мы, работаем со свойствами 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. |