Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

В языке JavaScript имеется еще одно значение, свидетельствующее об отсутствии значения. Значение

undefined
, указывающее на полное отсутствие какого-либо значения. Оно возвращается при обращении к переменной, которой никогда не присваивалось значение, а также к несуществующему свойству объекта или элементу массива. Кроме того, значение
undefined
возвращается функциями, не имеющими возвращаемого значения, и присваивается параметрам функций для аргументов, которые не были переданы при вызове. Идентификатор
undefined
является именем предопределенной глобальной переменной (а не ключевым словом, как
null
), которая инициализирована значением
undefined
. В ECMAScript 3
undefined
является переменной, доступной для чтения/записи, которой можно присвоить любое другое значение. Эта проблема была исправлена в ECMAScript 5, и в реализациях JavaScript, соответствующих этому стандарту, переменная
undefined
доступна только для чтения. Оператор
typeof
для значения
undefined
возвращает строку «undefined», показывающую, что данное значение является единственным членом специального типа.

Несмотря на эти отличия, оба значения,

null
и
undefined
, являются признаком отсутствия значения и часто являются взаимозаменяемыми. Оператор равенства
==
считает их равными. (Чтобы отличать их в программе, можно использовать оператор идентичности
===
.) Оба они являются ложными значениями - в логическом контексте они интерпретируются как значение
false
. Ни
null
, ни
undefined
не имеют каких-либо свойств или методов. На практике попытка использовать
.
или
[]
, чтобы обратиться к свойству или методу этих значений, вызывает ошибку ТуреЕrror.

Значение

undefined
можно рассматривать как признак неожиданного или ошибочного отсутствия какого-либо значения, a
null
– как признак обычного или вполне ожидаемого отсутствия значения. Если в программе потребуется присвоить одно из этих значений переменной или свойству или передать одно из этих значений функции, практически всегда предпочтительнее использовать значение
null
.

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

В разделах выше описывались простые типы данных и значения языка JavaScript. Объектные типы - объекты, массивы и функции - описываются в отдельных главах, далее в книге. Но существует один важный объект, с которым необходимо познакомиться сейчас. Глобальный объект - это обычный объект JavaScript, который играет очень важную роль: свойства этого объекта являются глобальными идентификаторами, доступными из любого места в программах на JavaScript. Когда выполняется запуск интерпретатора JavaScript (или когда вебброузер загружает новую страницу), создается новый глобальный объект, в котором инициализируется начальный набор свойств, определяющих:

• глобальные свойства, такие как

undefined
,
Infinity
и
NaN
;

• глобальные функции, такие как

isNaN, parseInt
(раздел 3.8.2) и
eval
(раздел 4.12);

• функции-конструкторы, такие как

Date, RegExp, String, Object
и
Array
(раздел 3.8.2);

• глобальные объекты, такие как

Math
и
JS0N
(раздел 6.9).

Имена первоначально устанавливаемых свойств глобального объекта не являются зарезервированными словами, но вы вполне можете считать их таковыми. Все эти свойства перечислены в разделе 2.4.1. Некоторые из глобальных свойств уже описывались в этой главе. Большинство других будут рассматриваться в разных разделах книги. Кроме того, их все можно отыскать по именам в справочном разделе по базовому JavaScript или в описании самого глобального объекта, под именем «

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

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

this
:

var global = this; // Определить глобальную переменную для ссылки на глобальный объект

В клиентском JavaScript роль глобального объекта для всего JavaScript-кода, содержащегося в соответствующем ему окне броузера, играет объект

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

При создании в глобальном объекте определяются все предопределенные глобальные значения JavaScript. Однако этот специальный объект может также хранить глобальные переменные программы. Если программа объявляет глобальную переменную, она становится свойством глобального объекта. Подробнее этот механизм описывается в разделе 3.10.2.

3.6. Объекты-обертки

Объекты в языке JavaScript являются составными значениями: они представляют собой коллекции свойств, или именованных значений. Обращение к свойствам мы будем выполнять с использованием точечной нотации. Свойства, значениями которых являются функции, мы будем называть методами. Чтобы вызвать метод

m
объекта о, следует использовать инструкцию
о.m.

  • Читать дальше
  • 1
  • ...
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: