Справочник JavaScript. Кратко, быстро, под рукой [Е. В. Дубовик] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Никольский А.П., Дубовик Е.В.

Справочник

JavaScript
КРАТКО # БЫСТРО # ПОП РУКОЙ

--··
-

1

F

Синтаксис JavaScript * Объекты и события JS
Объектная модель браузера * Библиотеки jQuery и jQuery UI
Примеры использования

Никольский А.П.,

ДУБОВИКЕ.В.

Справочник

JavaScript
КРАТКО # БЫСТРО # ПОП РУКОЙ

"Наука и Техника"
г. Санкт-Петербург

УДК 004.42 ББК 32.973

ISBN 978-5-94387-333-1
Никольский А.П., Дубовик Е.В.
СПРАВОЧНИК JAvASCRJPT.

Кратко, быстро, под рукой -СПб.: Наука и Тех­

ника, 2021. - 304 с., ил.

Серия «Справочник»
Данный справочник содержит всю ключевую информацию о
Javascript в удобной и наглядной форме. Структура справочника
позволяет быстро и удобно находить нужную информацию, полу­
чать примеры использования тех или иных элементов и конструкций
JavaScript.
Отдельное внимание уделено отраслевым рекомендациям по хороше­
му стилю программирования на JavaScript, объектной модели совре­
менных браузеров, отладке программ и обработке ошибок.
Справочник будет полезен всем, кто использует или изучает JavaScript:
от начинающи?( до профессионалов.

Все права защищены. Никакая •шсть данной КШll'И не может быть воснроюведена в какой бы то 1111 было форме без 1шсьме11НО1"() разреше1шя
владельцев авторских прав.
Издательство нс несет ответствс1шости за возможный ущерб, r1ричиненнь1й в ходе использования материалов данной кю1п1, а также за
доступность матер11алов, ссылки на 1'."ОТОрые вы можете ш1йт11 в этой 1шиге. На момент 110д1mовю1 к11ип1 к издаш1ю все ссышш на 11нтернет­
рссурсы были действующими.

1

ISBN 978-S-94387-333-1

9 78- s- 94387- 333- 1

Контакгные телефоны издательства:
(812) 412 70 26
Официальный сайт: www.nit.com.ru

© Никольский АЛ.
© Наука и Техника (оригинал-макет)

Содержание
ВВЕДЕНИЕ.......................................................... 11
ГЛАВА 1. БАЗОВЫЕ ПОЛОЖЕНИЯ JAVASCRIPT .......... 13
1. 1. НЕ ЗАБЫВАЕМ О СКРИПТИНГОВОЙ ПРИРОДЕ ..................... 14
1.2. ОБЪЕКТНАЯ МОДЕЛЬ ДОКУМЕНТА .................................... 17
1.3. ПЕРВАЯ ПРОГРАММА ...................................................... 19
1.4. КОММЕНТАРИИ В JAVASCRIPT ........................................... 22
1.5. ДИАЛОГОВЫЕ ОКНА ........................................................ 23
1.5.1. Метод alert() - простое модальное окно
с сообщением и кнопкой "ОК" .........................................24
1.5.2. Метод confirm() - окно с кнопками ОК и Cancel .................25
1.5.3. Метод prompt() - диалоговое окно для ввода данных .......26
1.6. СПЕЦИАЛЬНЫЕ СИМВОЛЫ............................................... 28
1.7. КЛЮЧЕВЫЕ СЛОВА ......................................................... 29

ГЛАВА 2. СИНТАКСИС JAVASCRIPT .......................... 31
2. 1. ПЕРЕМЕННЫЕ ................................................................ 32
2.1.1. Особенности объявления переменных.............................32
2.1.2. Типы данных и преобразование типов..............................34
2.1.3. Области видимости переменной .....................................38
2.2. ОПЕРАТОРЫ И ВЫРАЖЕНИЯ В JAVASCRIPT .......................... 40
2.2.1. Различные типы выражений ............................................. 40
2.2.2. Присваивание переменным значений ............................ .41
2.2.4. Булевые операторы .........................................................42
2.2.5. Операторы сравнения .....................................................43
2.2.6. Двоичные операторы .......................................................44

-�----------------С_п_р_ав_о_ч_н_и_к_J_а v_а_S_сr_iр_t
2.2.7. Конкатенация ..................................................................44
2.2.8. Приоритет выполнения операторов .................................44
2.3. ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА .................................... 46
2.3.1. Условный оператор if .......................................................46
2.3.2. Оператор выбора switch...................................................49
2.3.3. Циклы ..............................................................................51
Цикл со счетчиком .......................................................... 52
Цикл while ....................................................................... 53
Цикл do..while.................................................................. 54
Управление выполнением цикла.
Операторы break и continue............................................. 54
Вложенность циклов ....................................................... 55

ГЛАВА 3. МАССИВЫ В JAVASCRIPT.......................... 57
3.1. ВВЕДЕНИЕ В МАССИВЫ ................................................... 58
3.2. ИНИЦИАЛИЗАЦИЯ МАССИВА ............................................ 59
3.3. ИЗМЕНЕНИЕ И ДОБАВЛЕНИЕ ЭЛЕМЕНТОВ МАССИВА............ 60
3.4. МНОГОМЕРНЫЕ МАССИВЫ .............................................. 60
3.5. ПРИМЕР ОБРАБОТКИ МАССИВА ........................................ 61

ГЛАВА 4. ФУНКЦИИ В JAVASCRIPT ........................... 65
4.1. ОСНОВНЫЕ ПОНЯТИЯ ...................................................... 66
4.1.1. Способы объявления функциий .......................................66
4.1.2. Практические примеры....................................................68
4.2. РАЗМЕЩЕНИЕ ФУНКЦИЙ ВНУТРИ СЦЕНАРИЯ ...................... 70
4.3. РЕКУРСИЯ ..................................................................... 72
4.4. ОБЛАСТЬ ВИДИМОСТИ ПРИ ИСПОЛЬЗОВАНИИ ФУНКЦИЙ ..... 73

Содержание

------"----

-


-----

ГЛАВА 5. ОТЛАДКА ПРОГРАММЫ И ОБРАБОТКА
ОШИБОК .....•.........•...•..................•........... 77
5.1. КАК УВИДЕТЬ СООБЩЕНИЕ ОБ ОШИБКЕ ...................••.....•. 78
5.2. СИНТАКСИЧЕСКИЕ ОШИБКИ............................................• 81
5.3. ЛОГИЧЕСКИЕ ОШИБКИ ....•.............................•................. 82
5.4. RUN-TIME ERRORS ИЛИ ОШИБКИ ВРЕМЕНИ ВЫПОЛНЕНИЯ •••. 83
5.5. КОНСТРУКЦИЯ TRY ••••••.•.•.•.•.•.........•...•.••.••••.•.••.••••..••..•.. 84
5.6. МЕТОД CONSOLE.LOG() ..•..•..•....•......••..•.•••..•.••.••.•........... 85

ГЛАВА 6. ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ·····�·························· 87
6.1. ОСНОВНЫЕ КОНЦЕПЦИИ ................................................. 88
6.1.1. Введение в ООП ..............................................................88
6.1.2. Объявление класса ..........................................................92
6.1.3. Выражение класса ...........................................................93
6.2. ТЕЛО КЛАССА ................................................................ 94
6.2.1. Конструктор.....................................................................94
6.2.2. Статические методы и свойства. Ключевое слово static ...94
6.2.3. Использование this в прототипных
и статических методах ....................................................95
6.2.4. Свойства экземпляра ......................................................96
6.2.5. Публичные и приватные поля ...........................................96
6.2.6. Наследование. Оператор exteпts .....................................97
6.3. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ ОБЪЕКТОВ ...................... 98
6.4. ПРОТОТИПЫ ................................................................ 101
6.5. ПРОСТРАНСТВА ИМЕН ................................................... 102

_L.____ _ _ _ __________

C_np'-a_в_o_чн_и_к_J_a _va_S_c_ri-=----pt

ГЛАВА 7. ВСТРОЕННЫЕ ОБЪЕКТЫ JAVASCRIPT ....... 105

7. 1.ОБЪЕКТ GLOBAL ........................... ................................ 1Об
7.2.OБЪEKT NUMBER .......................................................... 108
7.3.OБЪEKT STRING ............................................................ 109
7.4.ОБЪЕКТ ARRAY ............................................................. 112
7.4.1. Свойства и методы объекта ........................................... 112
7.4.2. Сортировка массива ...................................................... 115
7.4.3. Многомерные массивы .................................................. 116
7.4.4. Ассоциативные массивы................................................ 116
7.5.ОБЪЕКТ МАТН .............................................................. 117
7�6.ОБЪЕКТЫ FUNCTION И ARGUMENTS ................................. 119
7.7.ОБЪЕКТ DATE ............................................................... 120
7.8.ОБЪЕКТ REGEXP ........................................................... 123

ГЛАВА 8. СОБЫТИЯ В JAVASCRIPT ........................ 127
8.1.ЧТО ТАКОЕ СОБЫТИЕ? ................................................... 128
8.2.СОБЫТИЯМЫШИ ......................................................... 129
8.3.СОБЫТИЯКЛАВИАТУРЫ ................................................ 130
8.4.СОБЫТИЯДОКУМЕНТА .................................................. 130
8.5.СОБЫТИЯФОРМЫ ........................................................ 131
8.6.ПОСЛЕДОВАТЕЛЬНОСТЬ СОБЫТИЙ ................................. 131
8.7.ВСПЛЫВАНИЕ СОБЫТИЙ ............................................... 133
8.8. ДЕЙСТВИЕ ПО УМОЛЧАНИЮ ........................................... 135
8.9.ОБРАБОТЧИКИ СОБЫТИЙ .............................................. 135
8.1О.ОБЪЕКТ EVENT ........................................................... 137

_Со_д_е-'--р_ж_а_ни_е
_______ _ ____ _ _ _ _ _ _ _

ГЛАВА 9. ОБЪЕКТНАЯ МОДЕЛЬ БРАУЗЕРА ............. 141
9.1. СТРУКТУРА ОБЪЕКТНОЙ МОДЕЛИ ................................... 142
9.2. ОСНОВНЫЕ ОБЪЕКТЫ ОБЪЕКТНОЙ МОДЕЛИ IE/CHROME .... 143
9.3. ОБЪЕКТ WINDOW .......................................................... 144
9.3.1. Метод open(): создаем новые окна ................................. 148
9.3.2. Отображение модального диалога.................................150
9.3.3. Метод setТimeout() ........................................................ 153
9.4. ОБЪЕКТ NAVIGATOR: ПОЛУЧЕНИЕ ИНФОРМАЦИИ
О БРАУЗЕРЕ И СИСТЕМЕ........................................... 156
9.5. ОБЪЕКТ SCREEN: ИНФОРМАЦИЯ О МОНИТОРЕ
ПОЛЬЗОВАТЕЛЯ .•.•.•••••..••..••.•.••.••••.••.•••.••..•.••.•••.••.• 158
9.6. ОБЪЕКТ LOCATION: СТРОКА АДРЕСА
ПОЛЬЗОВАТЕЛЬСКОГО АГЕНТА •.•..••.•.•••..•.••.••.••.••.••.• 159
9.7. ОБЪЕКТ HISTORY: СПИСОК ИСТОРИИ •..•....•......•.........•....• 160
9.8. ОБЪЕКТ DOCUMENT: ДОСТУП К ЭЛЕМЕНТАМ ДОКУМЕНТА •.• 161
9.9. ОБЪЕКТ SТYLE: ДОСТУП К ТАБЛИЦЕ СТИЛЕЙ ..................... 167
9.1О. ОБЪЕКТ SELECTION: ВЫДЕЛЕНИЕ ТЕКСТА ....................... 168
9.11. НЕМНОГО ПРАКТИКИ. РАБОТА С COOКIES ....................... 170
9.11.1. Добавление сайта в Избранное .................................... 170
9.11.2. Установка сайта в качестве домашней страницы.......... 171
9.11.3. Работа с Cookies ..........................................................171

ГЛАВА 1 О. РАБОТА С ФОРМАМИ ........................... 175
1О.1. КОЛЛЕКЦИЯ FORMS .................................................... 176
10.2. СВОЙСТВА, МЕТОДЫ И СОБЫТИЯ ОБЪЕКТА ФОРМЫ......... 177

-.

Справочник JavaScript

'------------------'-----------"-

10.3. ПОЛУЧЕНИЕ ДАННЫХ ИЗ ПОЛЯ ВВОДА.
ПРОВЕРКА ПРАВИЛЬНОСТИ ВВОДА ........................... 178
10.4. РАБОТА С TEXTAREA .................................................... 179
10.5. РАБОТА СФЛАЖКАМИ ................................................. 181
10.б. РАБОТА С КНОПКАМИ .................................................. 183
10.7. ПРОВЕРКА ПРАВИЛЬНОСТИ E-MAIL................................ 184

ГЛАВА 11. БИБЛИОТЕКА JQUERY ......................... 191
11.1. ПОДКЛЮЧЕНИЕ БИБЛИОТЕКИ JQUERY ........................... 192
11.2. ВЫБОР ЭЛЕМЕНТА HTML. СЕЛЕКТОРЫ ........................... 194
11.2.1. Выбор всех элементов .................................................194
11.2.2. Выбор элемента по его id ............................................. 195
11.2.3. Поиск всех элементов определенного типа .................. 196
11.2.4. Поиск элементов по имени класса ............................... 197
11.2.5. Селекторы+ и - ........................................................... 198
11.3.ФИЛЬТРЫ .................................................................. 199
11.3.1. Фильтр :first ................................................................. 200
11.3.2. Выбор последнего ряда таблицы ................................. 201
11.3.3. Выбор четных и нечетных элементов ........................... 202
11.3.4. Другие фильтры ........................................................... 203
11.4. РАБОТА С АТРИБУТАМИ ЭЛЕМЕНТОВ .............................. 206
11.4.1. Методы attr() и removeAttr(): получение значения,
установка и удаление атрибутов ...................................206
11.4.2. Методы addClass(), removeClass(): работа со стилями .208
11.4.3. Методы html() и text(): работа с содержимым
элементов ..................................................................... 212
11.4.4. Метод val(): работа с атрибутом value .......................... 213

Содержание
------'-----

-

---

11.5. ВИЗУАЛЬНЫЕ ЭФФЕКТЫ .............................................. 216
11.5.1. Методы hide(), show(), toggle():
управление видимостью ............................................... 216
11.5.2. Методы slideUp(), slideDown() и slideToggle():
скольжение ................................................................... 217
11.5.3. Методы fadeOut(), fadeln() и fadeToggle(): эффект
затухания ...................................................................... 219
11.5.4. Метод fadeTo(): плавное изменение прозрачности ...... 220
11.5.5. Метод animate(): простейшая анимация ....................... 222
11.6. РАБОТА С CSS ............................................................ 224
11.6.1. Метод css(): получение и установка значения
СSS-свойства ............................................................... 224
11.6.2. Другие методы............................................................. 227
11.7. РАБОТА С СОДЕРЖИМЫМ ЭЛЕМЕНТА ............................. 230
11.7.1. Операции над содержимым элементов ........................ 230
11.7.2. Методы appendTo() и prependTo() ........................ :....... 231
11.7.3. Методы after() и before()............................................... 232
11.7.4. Методы wraplnner() и wrapAII() ...................................... 233
11.7.5. Поиск и замена элементов ...........................................236
11.7.6. Другие полезные методы ............................................. 237
11.8. ОБРАБОТК А СОБЫТИЙ ................................................. 238
11.9. AJAX И JQUERY .......................................................... 240
11.9.1. Загрузка страницы. Метод load() ................................. 241
11.9.2. Получение данных от сервера с использованием
запроса POST ............................................................... 244
11.9.3. Получение данных от сервера с использованием
запроса GЕТ.................................................................. 246
11.9.4. Загрузка и выполнение JS-файлов...............................247
11.9.5. Получение JSОN-данных..............................................249

-�----------------C n p a вo ч н и к J av a S c ri_pt
______________
ГЛАВА 12. БИБЛИОТЕКА JQUERY UI ...................... 253
12. 1. ЗНАКОМСТВО С БИБЛИОТЕКОЙ .................................... 254
12.1.1. Что такое jQuery UI ....................................................... 254
12.1.2. Что представляют собой плагины jQuery UI ..................255
12.1.3. Преимущества jQuery UI ............................................... 257
12.1.4. Использование jQuery UI .............................................. 258
12.2. ВИДЖЕТЫ JQUERY UI ................................................... 259
12.2.1. Выбор даты .................................................................. 259
12.2.2. Диалоговое окно........................-.................................. 263
12.2.3. Раскрывающиеся секции .............................................264
12.2.4. Индикатор процесса .................................................... 267
12.2.5. Вкладки ....................................................................... 270
12.2.6. Автозавершение .......................................................... 273
12.2.7. Кнопка ......................................................................... 275
12.2.8. Меню ...........................................................................277
12.2.9. Эффектная подсказка ToolTip ...................................... 282
12.2.1О. Ползунок для ввода целых значений ..........................283
12.3. АНИМАЦИОННЫЕ ЭФФЕКТЫ JQUERY UI .......................... 287
12.3.1. Как применить эффект ................................................. 288
12.3.2. Эффекты и их параметры ............................................. 289
12.3.3. Демонстрация всех эффектов сразу ............................ 293
12.4. МАНИПУЛЯЦИЯ ЦВЕТОМ .............................................. 303

Благодарности
Данная книга написана сотрудниками компании ООО
«Цифровые Бизнес-Платформы!,>. Авторы выражают
благодарность всем своим коллегам, при содействии и с
участием которых был создан данный справочник.

ВВЕДЕНИЕ

-

г-



1

-

!IJJavaScript

Справочник JavaScript

JavaScript - это язык программирования, позволяющий сделать
ваши страницы "живыми", то есть динамическими. Кроме всевоз­
можных эффектов, JavaScript позволяет автоматизировать многие
вещи. Если, скажем, лет 15 назад можно было встретить сайт, разра­
ботанный на чистом HTML (пусть и с использованием таблиц сти­
лей), то сейчас очень сложно себе представить страничку, не исполь­
зующую JavaScript.
Интересно, что первые версии этого языка назывались LiveScript,
подчеркивая основное назначение языка - "оживлять" элементы
страницы, саму страницу. Однако в то время был очень популярен
язык Java, а поскольку синтаксис JavaScript очень напоминает син­
таксисjаvа, было решено назвать его имeннoJavaScript- чтобы при­
влечь больше внимания.
KoдJavaScript находится в составе НТМL-документа (или выносит­
ся в отдельный файл, если код слишком большой). Сам жeJavaScript
также может генерировать НТМL-код в случае необходимости.
Нужно понимать, что JavaScript-cцeнapии в большинстве случаев
выполняются на стороне клиента - прямо в браузере. В этом есть,
как преимущества, так и недостатки. К преимуществам можно сме­
ло отнести снижения нагрузки на сервер, поскольку существенная
доля обработки происходит на стороне клиента и именно ресурсы
клиента тратятся на все это. Недостаток - не всегда один и тот же
скрипт одинаково хорошо работает во всех браузерах. В последнее
время с кроссбраузерной совместимостью возникает все меньше и
меньше проблем, но о ней нужно помнить при разработке собствен­
ных скриптов.
Данная книга сочетает в себе, как теорию, так и практику. Будет опи­
сан синтаксис JavaScript, а также будет приведен ряд уже готовых
рецептов.

ГЛАВА 1.

Базовые положения
JavaScript


---

-

ВIIJ.ll::.л::::J ;.-

г-

- IJJavaScript

Справочник JavaScript

1 . 1 . Не забываем о
скриптинговой природе
Хотя в названии изучаемого языка и есть слово "Java", нужно пони­
мать, что природа этих двух языков программирования совершенно
иная. По сути, JS только отдаленно напоминает Java благодаря схо­
жести синтаксиса. Но сравнивать эти два языка так же некорректно,
как сравнивать самолет с автобусом. И то, и другое является транс­
портным средством (является языком программирования), и то и
другое позволяет перевозить пассажиров (может использоваться в
веб-страницах), но на этом схожесть заканчивается.
Даже если сравнивать синтаксис языков, то JS похож лишь "если
один глаз закрыть, а другой прищурить". Если Java является полно­
ценным объектно-ориентированным языком программирования, то
в JS нет полноценной поддержки ООП, а классы - это всего лишь
"синтаксический сахар" (надстройка) над объектами.
Природа Java и JS - разная. JS - это небольшие программы, встро­
енные в веб-страницу (как в коде самой страницы, так и в отдельном
файле). При желании, разработчик может просмотреть код любой
программы, написанной на JS. А вот с Java ситуация иная. Jаvа­
программы (их еще называются апплетами) хранятся на сервере от­
дельно, в виде бинарных файлов.
• ] ava является компилируемым языком программирования, то
есть написанная программа компилируется в бинарный файл,

Глава 1 . Базовые положения JavaScript

[1

JavaScript

который потом можно встроить в веб-страницу ( сейчас мы го­
ворим только о веб-страницах, но не забываем, что Java - это
кроссплатформенный язык и на нем можно написать програм­
мы для любой операционной системы).
• JS, как и любой скриптинговый язык, является интерпретиру­
емым, то есть он не компилируется в какой-то бинарный файл,
который будет автономно "лежать" па сервсрс.JS-код постоян­
но находится в текстовом виде и интерпретируется браузером
пользователя. Любую JS-программу можно просмотреть без
применения специального ПО вроде дизассемблера.
Примечание. Из соображений оптимизации передаваемых
данных часто]avaScript-кoд подлежит минимизации - про­
цессу, когда из 1-1его удаляются все 1-1езиачимые пробельиые
символы (удаление которьiх ие повредит функционалу) и
комментарии. В этом случае код становится нечитабель­
ным, но благодаря функции Pretty Print (находится 1-ta
вкладке Source и обозначеиа {}) средств разработчика - это
не проблема (рис. 1). Эта функция вам очень пригодится при
исследовании чужого кода, находящегося на сайте, доступа

Рис. 1. 1. Использование функции Pretty Print - слева - до, справа - после

-

!CJJavaScript

Справочник JavaScript

к исходникам которого у вас нет. Попросту говоря - вам по­
нравилась какая-то функция на чужом сайте, и вы хотите
реализовать аналогичную на своем. Тогда вам достаточно
посмотреть кoдjavaScript, адаптировать его под свой сайт
и вы получите то, что хотите.

Изначально JS был разработан для увеличения функциональности
НТМL-страниц. Другими словами, на нем можно реализовать те
"фишки", которые нельзя реализовать с помощью стандартных тегов
HTML. Современные стандарты HTML, конечно, предлагают более
совершенный функционал, но если HTML просто развивается, то
JS развивается семимильными шагами. Приведем простой пример.
Относительно недавно в HTML появилась возможность проверки
валидности электронного адреса. Ранее эта задача решалась исклю­
чительно нaJS. Но если HTML научился только проверять правиль­
ность e-mail, то JS скоро научится ;запускать космические ракеты.
Программа, написанная на JS, имеет доступ к свойствам документа
(веб-страницы) и самого браузера. На JS вы можете просмотреть,
какой URL введен в адресную строку браузера, изменить заголовок
окна, узнать, произошло ли какое-то событие (например, пользова­
тель нажал на кнопку или открыл выпадающий список) и т.д. Опи­
сывать все возможности JS прямо сейчас нет смысла - вы познако­
митесь с ними далее в этой книге.
В отличие от Java, разработчику не нужен какой-либо специальный
софт для разработки. Все, что нужно - обычный текстовый редактор.
Если не брать уж совсем простой Блокнот, мы можем порекомендо­
вать следующие редакторы:
• Notepad2 - очень простой редактор, но поддерживающий под­
светку синтаксиса, преобразование кодировок (очень важная
функция) и нумерацию строк. Для простых JS-скриптов его
возможностей будет вполне достаточно.

m

Глава 1 . Базовые положения JavaScript

JavaScript

• Atom - кроссплатформенный редактор с огромным функци­
оналом, расширяемым дополнительными плагинами. Ино­
гда кажется, что его возможности безграничны и скоро Atom
начнет писать код за программиста. Впрочем, автодополнение
кода у него уже есть! К недостаткам можно отнести нерасто­
ропность редактора - он медленный по сравнению с тем же MS
Visual Code.
• MS Visual Code - отличный редактор кода от Microsoft и при
этом совершенно бесплатный. Иногда кажется, что это что-то
из области научной фантастики - Microsoft и бесплатный про­
дукт. Тем не менее, это так. Учитывая, что этот редактор более
шустрый, чем Atom - это наш выбор.

t�·,....,. ,

'""-'•'!"А/1 •••
.,..._,,,,,i,t !! , .,,,... � ,•!,!Г>•< · • •l�J1:
,.,l•"c:sм tC • •.,:.;11()\; J
Н vc>!1 е •·· � 1 � • ).r•�l•>> двоичные сдвиги;
• & двоичное И;




л

двоичное исключающее ИЛИ;
двоичное ИЛИ;

• =, +=, -=, *=, /=, %= присваивание.

-

!I;]JavaScrlpt

Справочник JavaScript

2"3. Основные конструкции
SIЗЫКЗ
К основным конструкциям языка относят условный оператор ( if..
else), а также операторы циклов. В этом разделе будут рассмотрены
эти конструкции.

2.3.1. Условный оператор if
Прежде, чем мы будем рассматривать условный оператор if, настоя­
тельно рекомендую вернуться к разделу 2.2.5 и еще раз просмотреть
таблицу с операторами сравнения - так вам будет понятнее все
происходящее здесь.
Условный оператор if позволяет выполнить определенное действие
в зависимости от истинности условия. Общая форма оператора
выглядит так:
:

•••.,•••н...,.. •••••..•••••••••••••••••,•--•••••.. . •.. ••аа•••- н•н'l••••н• .... .• •.•.•••••н н .. ,,,,._,44 ••••.. ••.. •• • ... • ... ·.• •.• •••• .. •••J-•H• .С··.··.• \_"'-'Ч -?�

if (уСJiовие)
{ операторы I eCJIИ уСJiовие ис'l'ИИИо}
[.
[else {
операторы, eCJIИ уСJiовие пожне} ]
.
\. .................................. . ,,.......... .................. ............,,........,,..........,......... .,... . .................... ...
j

j

i. ,
!

..-)

Обратите внимание, что вторая часть ( else) не обязательна.
Условие - это логическое выражение, построенное на базе ·операто­
ров сравнения, именно поэтому я просил вас вернуться к разделу
2.2.5, чтобы еще раз просмотреть имеющиеся операторы сравнения.
Каждый из операторов сравнения возвращает tnte в случае истинно­
сти иfalse, если проверяемый факт ложен.
Пусть у нас есть две переменные:
10;
var А
var В = 5;

Глава 2. Синтаксис JavaScript

m JavaScript

Оператор А == в вернет false, поскольку А не равно В. Оператор А>
В вернет trne, поскольку А больше, чем В.
Чтобы инвертировать булевое значение, вы можете использовать
оператор ! , например:
!(Х == Z)
Можно также использовать оператор!=, но используйте ту форму
оператора, которая вам удобнее.
В нашем случае переменные Х и Z не равны, поэтому оператор ==
вернет значение false, но поскольку указан оператор !, то будет воз­
вращено значение trne.
Рассмотрим несколько примеров:
var А
var В

10;
5;

// Будет выведено А > В
if (А > В) {
document.write('A > В');
// Будет выведено В < А
if (А > В) {
document.write('А > В');
else {
document.write('B < А');
// Будет выведено А = В
if !
( (А == В)) {
document.write(" А!= В "); }
else {
document.write(" А = В "); }
В главе 1 мы уже сталкивались с оператором if и рассмотрели более
сложный пример - проверку нажатия одной из кнопок в диалоговом

-

!IJJavaScript

Справочник JavaScript

окне. Вы можете вернуться к тому примеру, чтобы освежить его в па­
мяти.
Операторы if можно вкладывать друг в друга, что продемонстриро­
вано в листинге 2.2. Сценарий в этом листинге пытается разделить
1 О на значение одной из переменных - А или В, предварительно про­
веряя, не равно ли значение этих переменной О. Сначала сценарий
проверяет, не равно ли О значение переменной А. Поскольку А = О,
то выполнение сценария переходит на второй оператор if, который
проверяет, не равно ли О значение переменной В. С переменной В все
хорошо, поэтому переменной С будет присвоено значение 1 О/ 1 ( 1 О).
В противном случае, если обе переменные равны О, будет выведено
сообщение Деление на О.

Листинг 2.2. Вложенность операторов if


Пpимep использования оператора if



var Х = О;
var У = 1;
var Z;
if (Х !=О)
Z = 10 / Х;
' + z); }
document.write('Z
else if (У != О) {
Z = 10 / У;
document.write('Z = ' + Z); }
else document.write("Oшибкa! Деление на 0");




Глава 2. Синтаксис JavaScript

m JavaScript

2.3.2. Оператор выбора switch
Иногда (конечно не во всех ситуациях) вместо множества вложен­
ных операторов if можно использовать оператор switch. Оператор
switch позволяет сравнить переменное или выражение с множеством
значений, что позволяет избавиться от серии операторов if и сделать
код более компактным.
Общая форма оператора switch выглядит так:
switch () {
case :
;
break;
case :
;
_
break;

�,•••••••••••••••• .. ••••••••••..••.. ••• ............. ,,,н•••"•"•"••••••••.. ,,• .. •••••.............,,,......... ,.................... н�,... ,,,.,,,,,., ..,,.,,,,,.,

!,:

;':·
.,,

}

[default:
; ]

\.......................................................................................... ..............................................................
.
·

Работает данный оператор следующим образом:
• Вычисляется значение переменной или выражения;
• Полученное значение сравнивается с одним из значений, ука­
занных в блоках case;
• Пусть у нас 10 блоков case, и значение совпало с 5-ым блоком
case. Тогда, если в 5-ым блоке case не указан оператор break, то
будут выполнены действия, связанные с блоками 5-10, а так­
же операторы из блока default. Если же указан оператор Ьгеаk,
тогда будет выполнено только то действие, которое указано в
5-ом блоке case. Для большей однозначности (если не нужно
иного) я всегда рекомендую использовать оператор break для
преждевременного выхода из оператора switch;

-

Справочник JavaScript

IJJavaScript

• Если полученное значение не совпало ни с одним из значений,
указанных в блоках case, тогда будет выполнены операторы из
блока default, если таковой указан. Блок default является
необязательным.
Представим, что у нас есть переменная command, в зависимости от
значения которой нужно выполнить определенные действия, например:
if
if
if
if

(comrnand
(comrnand
(comrnand
(comrnand

1)
2)
3)
4)

alert('Выбрано
alert('Выбрано
alert('Выбрано
alert('Выбрано

действие:
действие:
действие:
действие:

1')
2')
з')
4')

;
;
;
;

Код выглядит громоздко и логически не воспринимается, как один
блок, а как четыре разных блока ( если бы мы по этому коду построи­
ли блок-схему, то у нас бы и получилось четыре разных блока).
Весь этот громоздкий код мы можем заменить на более компактный.
Пусть он занимает больше строк, зато выглядит не таким перегру­
женным и воспринимается как единое целое:
switch (comrnand) {
case 1: alert ('Выбрано действие: 1') ; break;
case 2: alert('Выбрано действие: 2') ; break;
case з: alert('Выбрано действие: з') ; break;
case 4: аlеrt('Выбрано действие: 4'); break;
default: аlеrt('Неизвестное действие!);

Как видите, получившийся код воспринимается не таким перегру­
женным, хотя занимает больше строк. К тому же оператор switch
позволяет задавать действие по умолчанию. В конечном итоге, с его
помощью можно довольно понятнее и прозрачнее реализовывать
сложные разветвления, которые кажутся запутанными, если их реа­
лизовать с помощью if. Однако еще раз отмечу, что switch- далеко не
панацея во всех ситуациях выбора.

Глава 2. Синтаксис JavaScript

m JavaScript

В листинге 2.3 приведен пример использования оператор switch.
Сначала мы отображаем диалог ввода действия, затем анализируем,
какое действие выбрал пользователь. Обратите внимание, что пре­
жде, чем передать полученное действие оператору switch, мы сводим
его к типу number с помощью функции parseint ().

Листинг 2.3. Пример использования оператора
switch


Пpимep использования switch



var command
window.prompt{"Bвeдитe действие", "");
if (command == null) {
document.write('Haжaтa кнопка Отмена');
else
switch (parseint(command)) {
case 1: аlеrt('Выбрано действие 1');
case 2: аlеrt('Выбрано действие 2');
case 3: аlеrt('Выбрано действие 3');
case 4: аlеrt('Выбрано действие 4');
default: аlеrt('Неизвестное');




}
break;
break;
break;
break;

2.3.3. Циклы

Если проанализировать все программы, то на втором месте после ус­
ловного оператора будут операторы цикла. Используя цикл, вы мо­
жете повторить операторы, находящиеся в теле цикла. Количество

-

Справочник JavaScript

!JJavaScript

повторов зависит от типа цикла - можно даже создать бесконечный
цикл. В JavaScript есть три типа цикла:
• Цикл for или цикл со счетчиком
• Цикл while или цикл с предусловием
• Цикл do..while или цикул с постусловием

Цикл со счетчиком
Данный цикл используется для выполнения тела цикла четко опре­
деленного количества раз. Цикл while, например, удобно использо­
вать для ожидания какого-то события (мы не знаем, сколько раз бу­
дет выполнено тело цикла, пока условие станет истинным), а цикл
for используется тогда, когда вы точно знаете, сколько раз нужно по­
вторить цикл. Синтаксис цикла for:
.

.

.

'

,,

..

.
'

..

'



..

�.,

-.··..

.

..'

. '

.

. ..

.

�-.

for (хон�_инициа.пизации; успо.вие;
nоспе�ерациониые_хон�) {


}



j

•·-·••••••·..···••••..·•�•'"-••••••·•••••н•...•·"••-• ·•••••••·· ✓'•••••� '--..·..,·. ,.,, .·.·.. •••н->'•••·..•..
•·н•,,.�;..,..,..,,, ·,_,,. .•...,.,,..',.:--'-· · н< ..........·,. .•.,...... lf' f!i I

С О

О Фаил

Х

m JavaScript

,,

f

, ,temp/4 4 litml

-,w

\

EJJ

t

IIJ



А = 100
В= 50
Х= 100
А = 100
В=200

Рнс. 4. 1. Область внднмостн локальных н глобальных переменных

.
:

JavaScript

ГЛАВА 5.

Отладка программ
и обработка ошибок

1

J

-

г-

1

-

mJavaScript

Справочник JavaScript

Прежде, чем наши сценарии станут очень сложными, нужно погово­
рить об отладке сценариев и обработке ошибок. Существует три типа
ошибок: синтаксические, логические и ошибки времени выполнения
(run-time errors).

5" 1. Как увидеть сообщение об
ошибке
Представим, что у нас есть сценарий с ошибкой (листинг 5.1). Сце­
нарий ошибочно пытается обратиться к переменной Z, которая объ­
явлена внутри функции.

Листинг 5. 1 . Сценарий с ошибкой


Глобальные и локальные переменные

// Глобальные переменные
var А
10;
var В = 20;
function Fl ()
// Локальные переменные
var Z
10;
var В = 5;

Глава 5. Отладка программы и обработка ошибок
document.write("A
document.write("B
document.write("Z

IJJJavaScript -

" + А);
" + В);
" + z);





Fl ();
document.write("");
document.write("A = " + А);
document.write("B = " + В);
document.write("Z = " + Z);




Современные браузеры скрывают любые сообщения об ошибках
JavaScript. В некоторых случаях вы получите просто пустую стра­
ницу (без вывода), в некоторых - все, что было выведено до первой
ошибки. Так произошло и в нашем случае. Браузеры выводят следу­
ющее:
А
В
Х

10
5
10

А
10
В = 20

Заметьте, последняя строчка (Х = значение) выведена не будет во­
обще. Почему? А потому что произошла ошибка. В нашем простом

l[J

Справочник JavaScript

J.эvaScript

сценарии все понятно и без всяких сообщений. Но когда сценарий
будет большой и сложный, хотелось бы видеть, какая ошибка прои­
зошла и где именно. Для отладкиJаvаSсriрt-сценариев больше всего
подходят браузеры Chrome и Firefox, поскольку у них есть все необ­
ходимые для этого средства.
В браузере Chrome/Firefox для вызова средств разработчика нажми­
те комбинацию клавиш Ctrl + Shift + 1 или F12 - как кому больше
нравится.

Рис. 5. 1. Консоль в Chrome

Браузер Chrome сообщает, что произошла ошибка Uncaught Refer­
enceError: Х is not defined ( идентификатор Х не определен) в строке
31 сценария 13-1.html. Браузер Firefox сообщает то же самое: Ref­
erenceError: Х is not defined ( также выводится имя сценария и номер
строки). Кроме того, Firefox отображает подробное описание ошиб­
ки.
Теперь, когда вы знаете, как увидеть содержание ошибки и ее описа­
ние, можно приступить к обзору ошибок, с которым вы можете стол­
кнуться при написании программ.

Глава 5. Отладка программы и обработка ошибок

!]JJavaScript -

5"2" Синтаксические ошибки
Синтаксические ошибки - ошибки, касающиеся синтаксиса языка.
Вы что-то написали не так, например, забыли закрыть фигурную
скобку, допустили ошибку в имени переменной или функции, про­
буете использовать неопределенную до этого переменную, забы­
ли где-то поставить точку с запятой и т.д. Обычно интерпретатор
уведомляет о таких ошибках, а как просмотреть это уведомление,
мы уже знаем. Синтаксические ошибки - самый просто тип ошиб­
ки. Интерпретатор не только укажет место, где произошла ошибка,
но и подскажет, как ее исправить. Приведенный пример в листинге
5.1 ошибки является именно синтаксической ошибкой: мы попыта­
лись обратиться к неопределенной переменной. Переменная то была
определена в функции Х, что находится за пределами видимости для
нашего сценария.
Наиболее часто встречающиеся синтаксические ошибки:
• Опечатка в имени переменной или функции.
• Неправильный регистр символов, например, вы обращаетесь к
переменной Х, а объявлена переменная х (или наоборот).
• Использование символов национальных алфавитов в назва­
ниях функций и переменных, например, символ Х выглядит
одинаково, как в кириллице, так и латинице.
• Отсутствует одна из скобок скобка (круглая, фигурная, ква­
дратная).
• В цикле for параметры указаны через запятую, а не через точку
с запятой или наобротнаоборот, в функции параметры указа­
ны через точку с запятой, а не через запятую.
• Вы забыли напечатать точку с запятой в конце оператора.

-

mJavaScг;pt

Справочник JavaScript

5"3. Логические ошибки
Бывает так, что с точки зрения синтаксиса программа - идеальна,
ошибок нет, но делает она явно не то, что вы от нее хотите. Это и есть
пример логической ошибки. Иногда такие ошибки довольно сложно
отследить, поскольку это ошибка в алгоритме работы. Тут уже ника­
кой интерпретатор вам не подскажет - во всяком случае, пока интер­
претаторы не научились читать мысли.
Найти логическую ошибку можно только посредством тщательно­
го анализа кода программы. Здесь никто кроме вас самих вам не по­
может. Один из частых примеров логической ошибки - это ошибка
неучтенной единицы. Например, вы можете забыть, что нумерация
массива начинается с О. Рассмотрим следующий код:
var М = [ 1, 2, 3, 4] ;
for (var i=l; il0) window.alert("x > 10");
else windows.alert("x < 10");
Если х > 10, вы никогда не столкнетесь с ошибкой в этом фрагмен­
те кода, поскольку строка, содержащая ошибку, просто никогда не
будет обработана интерпретатором. Если же х станет меньше 10, вы
столкнетесь с ошибкой времени выполнения: объекта windows не су­
ществует (есть объект window, а программист здесь сделал опечатку,
ошибочно добавив s ). Когда интерпретатор столкнется с ошибкой,
выполнение скрипта будет прервано.

-m

JavaScript

Справочник JavaScript

5.5. Конструкция try
Конструкция try/catch/finally используется для обработки ошибок,
возникающих в процессе выполнения скрипта:
try {

}

catch ([]) {
1
С-..,>,.,н··••н•••.... п••···. +··••••п�,- •••••••••н>·.,,,,.,· •••··.;< •••н•·••••· -•�•-••••-.· ...........•••••••�•..••••..•••...� ..·••.. ••••·••••••• .. ••••• •·н+•>'•••·· ••·••••

Пример:

var М = new Array(l, 2, 3);

Глава 7. Встроенные объекты JavaScript

m JavaScript

-

Свойство length содержит количество элементов массива. Нумера­
ция элементов массива начинается с О. Пример использования свой­
ства length:
document.write(M.length);
for (var i= O, c= M.length; i у) return 1;
if (х < у) return -1;
return О;
var Mass = [ "One", "two9", "open" ];
Mass.sort(my_unique sort);
console. log(Mass. j oin(", "));

Разработчик может изменить порядок сортировки, поменяв возвра­
щаемые значения на противоположные:
function my_unique_sort(first, second)
first.toLowerCase(); // к нижнему регистру
var х
var у
second.toLowerCase(); // к нижнему регистру
if (х > у) return -1;
if (х < у) return 1;
return О;

'lblJJavaScript

Справочник JavaScript

7 .4.3. Многомерные массивы
Многомерные массивы можно создать несколькими способами.
Например, можно их создавать поэлементно:
var М = [];
М[О] = [];
М[ 1] = [];
1;
М[О] [О]
2;
М[О] [1]
М[О] [2]
3;
M[l] [О]
3;
2;
M[l] [1]
M[l] [2]
3;

Также можно использовать перечисление, например:
var М = new Array(new Array("l", "2", "3"),
new Array("3", "2", "1"));

7 .4.4. Ассоциативные массивы
Если вы программировали на РНР, то наверняка знакомы с ассоциа­
тивными массивами. Ассоциативные массивы позволяют в качестве
индексов использовать строки, а не только числа. Пример:
var М = new Array();
1;
М ["one"]
М ["two"] = 2;

Методы объекта Array не позволяют отобразить элементы ассоци­
ативного массива. Свойство length также недоступно, поэтому нет

Глава 7. Встроенные объекты JavaScript

Jf1JavaScript

ifi



возможности перебрать элементы ассоциативного массива в цикле
for. Для этого нужно использовать цикл for .. in:
for (let N in М) {
document.write(N + "

" + M[N] + "");

Вывод будет таким:
one
1
two = 2

7.5. Объект Math
Объект Math содержит некоторые математические функции и кон­
станты. Использование этого объекта не требует создания экземпля­
ра объекта.
В объекте Math содержатся следующие константы:
• Е - экспонента, основание натурального логарифма
• LN2 - натуральный логарифм 2
• LN10 - натуральный логарифм 10
• LOG2E - логарифм по основанию 2 от Е
• LOG10E - логарифм по основанию 10 от Е
• PI - число Пи
• SQRT2 - квадратный корень из 2
• SQRT1_2 - квадратный корень из 0.5
Методы объекта Math представлены в таблице 7.3.

Справочник JavaScript

Таблица 7.3. Методы объекта Math

Метод

Назначение

abs()

Возвращает
числа

sin(),

cos(),

tan(),

абсолютное

значение

asin (), acos(), atan()

Стандартные
функции

ехр()

Экспонента

log()

Натуральный логарифм

роw(, )

Возведение в степень

sqrt ()

Квадратный корень

round()

Значение, округленное до ближайшего целого. Округление может осуществляться, как в большую, так и
меньшую сторону

ceil()

Значение, округленное до ближайшего большего целого.

floor()

Округление до ближайшего меньшего целого.

mах()
random()

тригонометрические

Методы ввозвращают максимальное/минимальное значение из списка
соответственно
Возвращает случайное число от О до
1.

Глава 7. Встроенные объекты JavaScript

mJavaScript

Как использовать математические функции на практике? Пусть у
нас есть 4 баннера и нужно их выводить случайным образом при об­
новлении страницы. Вот пример кода:
var nu = Math.floor(Math.random()*S.9999);
document.write('');
Файлы с баннерами должны называться bannerO.jpg...bannerЗ.jpg.

7.6. Объекты Function и
Arguments
Объект Function позволяет испо.JJ:ьзовать функцию в качестве эк­
земпляра объекта:

(' �

... фун�>..

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

!J

JavaScript

Справочник JavaScript

ющиеся из одного-двух операторов (например, вызов window.alert),
рекомендуется создавать функции-обработчики событий, что мы и
делали в этой главе. Этим вы убиваете двух зайцев: делаете ваш код
проще для восприятий (а отсюда повышается читабельность, отла­
живаемость кода и упрощается поиск ошибок) и позволяете преодо­
леть ограничение на максимальную длину значения НТМL-атрибута
(1024 символа).
Функции обработчики желательно определять в разделе HEAD - так
будет логичнее для вас самих. Если же вы поместите код в BODY - не
беда, браузер правильно обработает JS-код, но это будет не так на­
гляднее, как если бы обработчики были определены в HEAD. Напри­
мер, в следующем сценарии (лист. 8.4) обработчик onload все равно
будет вызван, хотя на самом деле он определен после тега body. Это
происходит потому, что браузер сначала обрабатывает код сценария,
а потом уже НТМL-код.

Листинг 8.4. Пример обработчика события


Установка функции-обработчика



function dialog()
window.alert('Пpивeт');




Глава 8. События в JavaScript

IIJJavaScript

8"1 О" Объект event
В этой главе мы уже использовали объект event. Однако он заслу­
живает отдельного разговора, и мы его рассмотрим именно сейчас.
Объект event используется для получения подробной информации о
произошедшем событии и доступен он только в обработчиках собы­
тий (в других функциях и методах вы не можете его использовать).
Когда наступает следующее событие, все значения свойства объекта
event сбрасываются. Свойства объекта event описываются в таблице
8.5.
Таблица 8.5. Свойства объекта event

Свойство

Что содержит

srcElement

Ссылка на элемент-источник события.

currentTarget

Ссылка на элемент, в котором обрабатывается
событие. Ссылается на тот же элемент, что и
ключевое слово this внутри обработчика события.

type

Позволяет узнать тип события (строка). Возвращается в нижнем регистре и без префикса
on, например, для onclick свойство type равно
"click"

clientX, clientY

Координаты (Х, У) события

screenX, screenУ

Координаты (Х, У) события относительно
окна

offsetX, offsetY

Координаты (Х, У) события относительно
контейнера

-

IJJJavaScrфt

Справочник JavaScript

button

Число, указывающее, какая кнопка мыши
была нажата: О - левая, 1 - средняя, 2 - правая

keyCode

Код нажатой на клавиатуре клавиши. В некоторых браузерах, например, в Firefox, данное
свойство при обработке события onkeypress
равно О, а код символа доступен через свойство charCode. Если нажата функциональная
клавиша, тогда charCode = О, а код символа находится в keyCode.

altKey

Если это свойство равно true, то была нажата
клавиша Alt вместе с другой клавишей, например, пользователь мог нажать Alt + А

ctrlKey

Если это свойство равно true, то была нажата
клавиша Ctrl

shiftKey

Если true, то была нажата Shift

cancelВuЫe

Запрещает всплывание событий. Использование этого свойство было продемонстрировано
ранее в этой главе.

retumValue

Определяет, будет ли выполняться действие
по умолчанию. Использование этого свойство
было продемонстрировано ранее в этой главе.

relatedTarget

Ссылка на элемент, с которого перешел курсор мыши.

В таблице 8.5 описаны не все возможные свойства объекта event. На­
личие или отсутствие конкретного свойства зависит от уровня DO М.

Глава 8. Событии в JavaScript

11ZJJavaScript

DOM (Document Object Model) - объектная модель документа - это
независимый от платформы интерфейс, позволяющий сценариям
J avaScript получить доступ к содержимому HTML, XHTML и ХМL­
документов, а также изменять содержимое, структуру и оформление
этих документов. Существует четыре уровня DOM: DOM Level О,
DOM Level 1, DOM Level 2, DOM Level 3.
Стандарты DOM Level О и Level 1 так устарели, что заглядывать в
них нет смысла. На смену Level 1 пришел Level 2, который внес мно­
го изменений в первые два уровня. В таблице 8.5 приведены свойства
event согласно стандарта DOM Level 2.
В следующей главе будет рассмотрена объектная модель браузе­
ра Internet Explorer. Почему име_нно этот браузер, думаю, ясно.
Windows на данный момент все еще является самой популярной
операционной системой, а в ней по умолчанию установлен именно
Internet Explorer. В большинстве случаев весь описанный код будет
работать и в другихпопулярных браузерах (Chrome, Firefox, Opera),
но более точный ответ, будет ли работать та или иная функция, мож­
но получить в документации разработчика по конкретному браузеру.
В подтверждение наших слов все скриншоты в следующей главе бу­
дут сделаны в браузере Google Chrome, чтобы продемонстрировать,
что все написанное относится и к другим браузерам.

JavaScript

ГЛАВА 9.

Объектная модель
браузера

----� ;..-

F

1

1

-

Справочник JavaScript

'IIJJavaScrфt

9. 1 . Структура объектной
модели
Объектной моделью браузера называется набор объектов, которые
обеспечивают доступ к содержимому веб-страницы и некоторым
функциям браузера.
Объектная модель представлена иерархией объектов. В ней есть объ­
ект верхнего уровня (родительский объект) и его дочерние объекты.
У дочерних объектов могут быть собственные дочерние объекты и
т.д. Доступ к таким объектам осуществляется через точку:
{

!
j

l.

.

·.-_

·· .

_-

.

.

.

'

.

. ..

,,,.

.

_-

·_
· ..

__:

_-

.

·· .·
-

.

.

.

. . { оаойd�6 }
.