Флэнаган Д.5-93286-103-7, 978-5-93286-103-5, 0-596-10199-6
Table of contents :
Оглавление……Page 7
Что нового в пятом издании……Page 13
Порядок работы с книгой……Page 14
Отзывы и предложения……Page 17
Благодарности……Page 18
Глава 1. Введение в JavaScript……Page 20
1.2. Версии JavaScript……Page 21
1.3.1. Примеры использования клиентского JavaScri……Page 23
1.4. Другие области использования JavaScript……Page 28
1.5. Изучение JavaScript……Page 29
Часть I. Основы JavaScript……Page 31
2.1. Набор символов……Page 33
2.4. Необязательные точки с запятой……Page 34
2.5. Комментарии……Page 35
2.7. Идентификаторы……Page 36
2.8. Зарезервированные слова……Page 37
Глава 3. Типы данных и значения……Page 39
3.1.2. Шестнадцатеричные и восьмеричные литералы……Page 40
3.1.4. Работа с числами……Page 41
3.1.6. Специальные числовые значения……Page 42
3.2.1. Строковые литералы……Page 43
3.2.2. Управляющие последовательности в строковых……Page 44
3.2.3. Работа со строками……Page 45
3.2.4. Преобразование чисел в строки……Page 46
3.2.5. Преобразование строк в числа……Page 48
3.3.1. Преобразование логических значений……Page 49
3.4. Функции……Page 50
3.5. Объекты……Page 51
3.5.1. Создание объектов……Page 52
3.6. Массивы……Page 53
3.6.2. Литералы массивов……Page 54
3.8. Значение undefined……Page 55
3.10. Регулярные выражения……Page 56
3.12. Преобразование типов……Page 57
3.13. Объекты-обертки для элементарных типов данн……Page 58
3.14. Преобразование объектов в значения элемента……Page 60
3.15. По значению или по ссылке……Page 61
3.15.1. Элементарные и ссылочные типы……Page 63
3.15.2. Копирование и передача строк……Page 65
3.15.4. По ссылке или по значению: подведение ито……Page 66
4.1. Типизация переменных……Page 67
4.2. Объявление переменных……Page 68
4.3. Область видимости переменной……Page 69
4.3.1. Отсутствие блочной области видимости……Page 70
4.4. Элементарные и ссылочные типы……Page 71
4.5. Сборка мусора……Page 73
4.6.3. Контексты исполнения в JavaScript……Page 74
4.7. Еще об области видимости переменных……Page 75
5.1. Выражения……Page 77
5.2. Обзор операторов……Page 78
5.2.1. Количество операндов……Page 79
5.2.3. Приоритет операторов……Page 80
5.3. Арифметические операторы……Page 81
5.4.1. Равенство (==) и идентичность (===)……Page 83
5.4.2. Неравенство (!=) и неидентичность (!==)……Page 85
5.5.1. Операторы сравнения……Page 86
5.5.3. Оператор instanceof……Page 87
5.6. Строковые операторы……Page 88
5.7.1. Логическое И (&&)……Page 89
5.7.2. Логическое ИЛИ (||)……Page 90
5.8. Поразрядные операторы……Page 91
5.9. Операторы присваивания……Page 92
5.9.1. Присваивание с операцией……Page 93
5.10.2. Оператор typeof……Page 94
5.10.3. Оператор создания объекта (new)……Page 95
5.10.5. Оператор void……Page 96
5.10.7. Операторы доступа к массивам и объектам……Page 97
5.10.8. Оператор вызова функции……Page 98
6.1. Инструкции-выражения……Page 99
6.2. Составные инструкции……Page 100
6.3. Инструкция if……Page 101
6.4. Инструкция else if……Page 102
6.5. Инструкция switch……Page 103
6.6. Инструкция while……Page 105
6.7. Цикл do/while……Page 106
6.8. Инструкция for……Page 107
6.9. Инструкция for/in……Page 108
6.10. Метки……Page 109
6.11. Инструкция break……Page 110
6.12. Инструкция continue……Page 111
6.13. Инструкция var……Page 112
6.14. Инструкция function……Page 113
6.15. Инструкция return……Page 114
6.16. Инструкция throw……Page 115
6.17. Инструкция try/catch/finally……Page 116
6.18. Инструкция with……Page 118
6.20. Итоговая таблица JavaScript-инструкций……Page 119
7.1. Создание объектов……Page 122
7.2. Свойства объектов……Page 123
7.2.2. Проверка существования свойств……Page 124
7.3. Объекты как ассоциативные массивы……Page 125
7.4.2. Метод toString()……Page 127
7.4.6. Метод propertyIsEnumerable()……Page 128
7.5. Массивы……Page 129
7.6. Чтение и запись элементов массива……Page 130
7.6.2. Удаление элементов массива……Page 131
7.6.5. Усечение и увеличение массива……Page 132
7.7.1. Метод join()……Page 133
7.7.3. Метод sort()……Page 134
7.7.6. Метод splice()……Page 135
7.7.8. Методы unshift() и shift()……Page 136
7.7.10. Дополнительные методы массивов……Page 137
7.8. Объекты, подобные массивам……Page 138
8.1. Определение и вызов функций……Page 139
8.1.2. Функциональные литералы……Page 141
8.1.3. Именование функций……Page 142
8.2.1. Необязательные аргументы……Page 143
8.2.2. Списки аргументов переменной длины: объект……Page 144
8.2.4. Типы аргументов……Page 146
8.3. Функции как данные……Page 148
8.4. Функции как методы……Page 150
8.6.1. Свойство length……Page 152
8.6.4. Методы apply и call()……Page 153
8.7. Практические примеры функций……Page 154
8.8.3. Объект вызова как пространство имен……Page 156
8.8.4. Вложенные функции в качестве замыканий……Page 157
8.9. Конструктор Function()……Page 163
9.1. Конструкторы……Page 165
9.2. Прототипы и наследование……Page 166
9.2.1. Чтение и запись унаследованных свойств……Page 168
9.2.2. Расширение встроенных типов……Page 170
9.3. Объектно-ориентированный язык JavaScript……Page 172
9.3.2. Методы экземпляра……Page 173
9.3.3. Свойства класса……Page 174
9.3.5. Пример: класс Circle……Page 175
9.3.6. Пример: комплексные числа……Page 176
9.4.1. Метод toString()……Page 178
9.4.2. Метод valueOf()……Page 179
9.4.3. Методы сравнения……Page 180
9.5. Надклассы и подклассы……Page 182
9.5.2. Вызов переопределенных методов……Page 185
9.6. Расширение без наследования……Page 186
9.7.1. Оператор instanceof и конструктор……Page 189
9.7.2. Определение типа объекта с помощью метода ……Page 190
9.7.3. Грубое определение типа……Page 191
9.8. Пример: вспомогательный метод defineClass()……Page 194
Глава 10. Модули и пространства имен……Page 198
10.1. Создание модулей и пространств имен……Page 199
10.1.2. Классы в качестве модулей……Page 202
10.1.3. Инициализация модуля……Page 203
10.2. Импорт символов из пространств имен……Page 204
10.2.2. Замыкания как частные пространства имен и……Page 206
10.3. Модуль со вспомогательными функциями……Page 208
11.1. Определение регулярных выражений……Page 214
11.1.1. Символы литералов……Page 215
11.1.2. Классы символов……Page 216
11.1.3. Повторение……Page 218
11.1.4. Альтернативы, группировка и ссылки……Page 219
11.1.5. Задание позиции соответствия……Page 221
11.1.6. Флаги……Page 222
11.2. Методы класса String для поиска по шаблону……Page 223
11.3.1. Методы класса RegExp для поиска по шаблон……Page 226
11.3.2. Свойства экземпляра RegExp……Page 228
12.1. Встраивание JavaScript……Page 229
12.1.1. Преобразование типов с помощью пакета jav……Page 234
12.1.2. Компиляция сценариев……Page 235
12.1.4. Реализация интерфейсов в JavaScript……Page 236
12.2. Взаимодействие с Java-кодом……Page 237
12.2.1. Класс JavaPackage……Page 239
12.2.2. Класс JavaClass……Page 240
12.2.3. Импорт пакетов и классов……Page 241
12.2.4. Класс JavaObject……Page 242
12.2.5. Методы Java……Page 243
12.2.6. Класс JavaArray……Page 244
12.2.8. Преобразование данных в LiveConnect……Page 245
Часть II. Клиентский JavaScript……Page 249
Глава 13. JavaScript в веб-броузерах……Page 251
13.1. Среда веб-броузера……Page 252
13.1.2. Иерархия объектов клиентского JavaScript……Page 253
13.1.3. Управляемая событиями модель программиров……Page 255
13.1.5. Ненавязчивый JavaScript-код……Page 256
13.2.1. Тег ……Page 258
13.2.2. Сценарии во внешних файлах……Page 259
13.2.3. Определение языка сценариев……Page 260
13.2.4. Атрибут defer……Page 262
13.2.7. Сокрытие сценариев от устаревших броузеро……Page 263
13.3. Обработчики событий в HTML……Page 264
13.4. JavaScript в URL……Page 266
13.4.1. Букмарклеты……Page 267
13.5.1. Сценарии……Page 268
13.5.3. Обработчики событий и URL-адреса в JavaSc……Page 269
13.5.5. Объект Window как контекст исполнения……Page 270
13.5.6. Модель управления потоками исполнения в к……Page 271
13.5.7. Манипулирование документом в процессе заг……Page 272
13.6. Совместимость на стороне клиента……Page 273
13.6.2. Несколько слов о «современных броузерах»……Page 274
13.6.3. Проверка особенностей……Page 275
13.6.5. Условные комментарии в Internet Explorer……Page 277
13.7. Доступность……Page 279
13.8.1. Чего не может JavaScript……Page 280
13.8.2. Политика общего происхождения……Page 281
13.8.4. Межсайтовый скриптинг……Page 283
13.9. Другие реализации JavaScript во Всемирной п……Page 285
Глава 14. Работа с окнами броузера……Page 287
14.1. Таймеры……Page 288
14.2.1. Анализ URL……Page 289
14.2.2. Загрузка нового документа……Page 290
14.3. Объекты Window, Screen и Navigator……Page 291
14.3.1. Геометрия окна……Page 292
14.3.3. Объект Navigator……Page 294
14.4.1. Открытие окон……Page 297
14.4.2. Закрытие окон……Page 298
14.4.5. Прокрутка……Page 299
14.4.6. Пример использования методов объекта Wind……Page 300
14.5. Простые диалоговые окна……Page 302
14.6. Строка состояния……Page 303
14.7. Обработка ошибок……Page 304
14.8.1. Отношения между фреймами……Page 306
14.8.2. Имена окон и фреймов……Page 307
14.8.3. JavaScript во взаимодействующих окнах……Page 309
14.9. Пример: панель навигации во фрейме……Page 311
Глава 15. Работа с документами……Page 314
15.1. Динамическое содержимое документа……Page 315
15.2. Свойства объекта Document……Page 317
15.3. Ранняя упрощенная модель DOM: коллекции объ……Page 319
15.3.1. Именование объектов документа……Page 320
15.3.2. Обработчики событий в объектах документа……Page 321
15.3.3. Пример использования ранней версии DOM……Page 322
15.4. Обзор объектной модели W3C DOM……Page 323
15.4.1. Представление документов в виде дерева……Page 324
15.4.2. Узлы……Page 325
15.4.3. DOM HTML API……Page 326
15.4.4. Уровни и возможности DOM……Page 328
15.4.5. Соответствие модели DOM……Page 329
15.4.6. Независимые от языка DOM-интерфейсы……Page 332
15.5. Обход документа……Page 334
15.6. Поиск элементов в документе……Page 335
15.7. Модификация документа……Page 339
15.7.2. Работа с фрагментами документа……Page 342
15.8. Добавление содержимого в документ……Page 343
15.8.1. Удобные методы создания узлов……Page 349
15.9. Пример: динамическое создание оглавления……Page 351
15.10. Получение выделенного текста……Page 356
15.11.2. Поиск элементов в документе……Page 357
15.11.3. Модификация документов……Page 359
Глава 16. CSS и DHTML……Page 360
16.1. Обзор CSS……Page 361
16.1.1. Применение правил стиля к элементам докум……Page 365
16.1.2. Связывание таблиц стилей с документами……Page 366
16.1.3. Каскад правил……Page 367
16.1.5. Пример CSS-таблицы……Page 368
16.2. CSS для DHTML……Page 370
16.2.1. Ключ к DHTML: абсолютное позиционирование……Page 371
16.2.2. Пример позиционирования средствами CSS: т……Page 373
16.2.3. Определение положения и размеров элемента……Page 376
16.2.5. Отображение и видимость элемента……Page 378
16.2.6. Блочная модель и детали позиционирования……Page 379
16.2.7. Цвет, прозрачность и полупрозрачность……Page 382
16.2.8. Частичная видимость: атрибуты overflow и……Page 383
16.2.9. Пример: перекрытие полупрозрачных окон……Page 384
16.3. Использование стилей в сценариях……Page 386
16.3.1. Соглашения об именах: CSS-атрибуты в Java……Page 387
16.3.2. Работа со свойствами стилей……Page 388
16.3.3. Пример: всплывающие подсказки в CSS……Page 389
16.3.4. DHTML-анимация……Page 391
16.4. Вычисляемые стили……Page 395
16.5. CSS-классы……Page 396
16.6.1. Включение и выключение таблиц стилей……Page 397
16.6.2. Объекты и правила таблиц стилей……Page 398
Глава 17. События и обработка событий……Page 403
17.1.1. События и типы событий……Page 404
17.1.2. Обработчики событий как атрибуты……Page 407
17.1.3. Обработчики событий как свойства……Page 408
17.1.4. Значения, возвращаемые обработчиками собы……Page 410
17.1.5. Обработчики событий и ключевое слово this……Page 411
17.1.6. Область видимости обработчиков событий……Page 412
17.2. Развитые средства обработки событий в модел……Page 414
17.2.1. Распространение событий……Page 415
17.2.2. Регистрация обработчиков событий……Page 416
17.2.4. Регистрация объектов в качестве обработчи……Page 418
17.2.5. Модули и типы событий……Page 419
17.2.6. Интерфейсы и детализирующие свойства собы……Page 421
17.2.7. Смешанная модель обработки событий……Page 424
17.3.1. Объект Event в IE……Page 425
17.3.3. Регистрация обработчика события в IE……Page 427
17.3.5. Перехват событий мыши……Page 428
17.3.6. Метод attachEvent() и ключевое слово this……Page 429
17.3.8. Пример: модель обработки событий, совмест……Page 430
17.4.1. Преобразование координат указателя мыши……Page 435
17.4.2. Пример: перетаскивание элементов документ……Page 437
17.5.1. Типы событий клавиатуры……Page 440
17.5.2. Информация о событиях клавиатуры……Page 441
17.5.3. Фильтрация ввода с клавиатуры……Page 442
17.5.4. Быстрые комбинации клавиш и класс Keymap……Page 444
17.6. Событие onload……Page 449
17.7. Искусственные события……Page 450
Глава 18. Формы и элементы форм……Page 453
18.1. Объект Form……Page 454
18.2. Определение элементов формы……Page 455
18.3. Сценарии и элементы формы……Page 459
18.3.1. Именование форм и элементов форм……Page 460
18.3.3. Обработчики событий элементов форм……Page 461
18.3.4. Элементы Button, Submit и Reset……Page 462
18.3.5. Элементы Checkbox и Radio……Page 463
18.3.6. Элементы Text, Textarea, Password и File……Page 464
18.3.7. Элементы Select и Option……Page 465
18.3.8. Элемент Hidden……Page 466
18.4. Пример верификации формы……Page 467
19.1. Обзор cookies……Page 472
19.2. Сохранение cookie……Page 475
19.3. Чтение cookies……Page 476
19.4. Пример работы с cookie……Page 477
19.5.1. Механизм сохранения userData в IE……Page 481
19.5.2. Механизм сохранения SharedObject подключа……Page 483
19.5.3. Пример: хранимые объекты……Page 485
19.6. Хранимые данные и безопасность……Page 493
Глава 20. Работа с протоколом HTTP……Page 494
20.1. Использование объекта XMLHttpRequest……Page 495
20.1.1. Создание объекта запроса……Page 496
20.1.2. Отправка запроса……Page 497
20.1.3. Получение синхронного ответа……Page 498
20.1.4. Обработка асинхронного ответа……Page 499
20.1.5. Безопасность объекта XMLHttpRequest……Page 501
20.2.1. Основные утилиты для работы с запросами G……Page 502
20.2.2. Получение только заголовков……Page 503
20.2.3. HTTP-метод POST……Page 504
20.2.4. Ответы в форматах HTML, XML и JSON……Page 505
20.2.5. Ограничение времени ожидания запроса……Page 507
20.3. Ajax и динамические сценарии……Page 509
20.3.1. Пример применения Ajax……Page 511
20.3.2. Одностраничные приложения……Page 513
20.3.4. Предостережения по использованию архитект……Page 514
20.4. Взаимодействие с протоколом HTTP с помощью……Page 516
21.1. Получение XML-документов……Page 518
21.1.1. Создание нового документа……Page 519
21.1.2. Загрузка документа из сети……Page 520
21.1.3. Синтаксический анализ текста XML-документ……Page 521
21.1.4. XML-документы в островках данных……Page 522
21.2.1. Модели XML DOM и HTML DOM……Page 524
21.2.2. Пример: создание HTML-таблицы на основе X……Page 526
21.3. Преобразование XML-документа с помощью XSLT……Page 528
21.4. Выполнение запросов к XML-документу с помощ……Page 531
21.4.1. Примеры использования XPath-выражений……Page 532
21.4.2. Выполнение XPath-выражений……Page 533
21.4.3. Дополнительно о W3C XPath API……Page 535
21.5. Сериализация XML-документа……Page 536
21.6. Разворачивание HTML-шаблонов с использовани……Page 537
21.7. XML и веб-службы……Page 540
21.8. E4X: EcmaScript для XML……Page 543
Глава 22. Работа с графикой на стороне клиента……Page 546
22.1.1. Изображения и модель DOM Level 0……Page 547
22.1.2. Традиционный прием смены изображений……Page 548
22.1.4. Ненавязчивая смена изображений……Page 549
22.1.5. Анимация изображений……Page 552
22.1.6. Прочие свойства изображений……Page 554
22.2. Графика и CSS……Page 555
22.2.1. Создание гистограмм средствами CSS……Page 556
22.2.2. Класс CSSDrawing……Page 558
22.3. SVG – масштабируемая векторная графика……Page 562
22.4. VML – векторный язык разметки……Page 569
22.5. Создание графики с помощью тега ……Page 572
22.6. Создание графики средствами Flash……Page 576
22.7.1. Построение круговой диаграммы средствами……Page 581
22.7.2. Создание на стороне клиента маленьких диа……Page 584
Глава 23. Сценарии с Java-апплетами и Flash-роликами……Page 588
23.1. Работа с апплетами……Page 590
23.2. Работа с подключаемым Java-модулем……Page 592
23.3. Взаимодействие с JavaScript-сценариями из J……Page 593
23.3.1. Компиляция и распространение апплетов, ис……Page 594
23.3.2. Преобразование типов данных между Java и……Page 595
23.3.3. Common DOM API……Page 596
23.4. Взаимодействие с Flash-роликами……Page 597
23.4.1. Встраивание и доступ к Flash-роликам……Page 598
23.4.3. Взаимодействие с Flash-роликами……Page 599
23.4.4. Обращение к JavaScript-коду из Flash……Page 600
23.4.5. Пример: из Flash в JavaScript и обратно……Page 601
23.5. Сценарии во Flash 8……Page 605
Часть III. Справочник по базовому JavaScript……Page 607
Часть IV. Справочник по клиентскому JavaScript……Page 719
Алфавитный указатель……Page 943
Reviews
There are no reviews yet.