JavaScript. Подробное руководство, 6-е издание

Для возможности скачивать книги Вам необходимо пройти

Регистрацию

JavaScript. Подробное руководство, 6-е издание


Автор: Флэнаган Д.

Год: 2012

Шестое издание бестселлера «JavaScript. Подробное руководство» полностью пересмотрено и дополнено сведениями о JavaScript в соответствии с современным положением дел в разработке приложений для Web 2.0. Эта книга – одновременно и руководство программиста с большим числом практических примеров, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.

Издание охватывает стандарты ECMAScript 5 и HTML5. Многие главы переписаны заново, другие дополнены новой информацией, появились и новые главы с описанием библиотеки jQuery и поддержки JavaScript на стороне сервера.

Часть I знакомит с основами JavaScript. В части II описывается среда разработки сценариев, предоставляемая веб_броузерами. Основное внимание уделяется разработке сценариев с применением методики ненавязчивого JavaScript и модели DOM. Часть III – обширный справочник по базовому языку JavaScript, включающий описания всех классов, объектов, конструкторов, методов, функций, свойств и констант, определенных в JavaScript 1.8, V8 3.0 и ECMAScript 5.

Часть IV – справочник по клиентскому JavaScript. Здесь описываются API веб-браузеров, стандарт DOM API Level 3 и недавно вошедшие в стандарт HTML5 технологии WebSockets и WebWorkers, объекты localStorage и sessionStorage,

а также теги <audio> и <video>.

Издание рекомендуется программистам, которым потребовалось изучить язык программирования для Веб, а также программистам, использующим язык JavaScript и желающим овладеть им в совершенстве.

Шестое издание бестселлера «JavaScript. Подробное руководство» полностью пересмотрено и дополнено сведениями о JavaScript в соответствии с современным положением дел в разработке приложений для Web 2.0. Эта книга – одновременно и руководство программиста с большим числом практических примеров, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.

Издание охватывает стандарты ECMAScript 5 и HTML5. Многие главы переписаны заново, другие дополнены новой информацией, появились и новые главы с описанием библиотеки jQuery и поддержки JavaScript на стороне сервера.

Часть I знакомит с основами JavaScript. В части II описывается среда разработки сценариев, предоставляемая веб_броузерами. Основное внимание уделяется разработке сценариев с применением методики ненавязчивого JavaScript и модели DOM. Часть III – обширный справочник по базовому языку JavaScript, включающий описания всех классов, объектов, конструкторов, методов, функций, свойств и констант, определенных в JavaScript 1.8, V8 3.0 и ECMAScript 5.

Часть IV – справочник по клиентскому JavaScript. Здесь описываются API веб-браузеров, стандарт DOM API Level 3 и недавно вошедшие в стандарт HTML5 технологии WebSockets и WebWorkers, объекты localStorage и sessionStorage,

а также теги <audio> и <video>.

Издание рекомендуется программистам, которым потребовалось изучить язык программирования для Веб, а также программистам, использующим язык JavaScript и желающим овладеть им в совершенстве.

Кол-во страниц:1080 Язык:Русский Издательство:Символ-Плюс

Предисловие 17
Глава 1. Введение в JavaScript 21
1.1. Базовый JavaScript 25
1.2. Клиентский JavaScript 29
1.2.1. Пример: калькулятор платежей по ссуде на JavaScript 33
Часть I. Базовый JavaScript 39
Глава 2. Лексическая структура 41
2.1. Набор символов 41
2.1.1. Чувствительность к регистру 41
2.1.2. Пробелы, переводы строк и символы управления форматом 42
2.1.3. Экранированные последовательности Юникода 42
2.1.4. Нормализация 43
2.2. Комментарии 43
2.3. Литералы 43
2.4. Идентификаторы и зарезервированные слова 44
2.4.1. Зарезервированные слова 44
2.5. Необязательные точки с запятой 46
Глава 3. Типы данных, значения и переменные 49
3.1. Числа 51
3.1.1. Целые литералы 52
3.1.2. Литералы вещественных чисел 52
3.1.3. Арифметические операции в JavaScript 53
3.1.4. Двоичное представление вещественных чисел и ошибки округления 55
3.1.5. Дата и время 56
3.2. Текст 56
3.2.1. Строковые литералы 56
3.2.2. Управляющие последовательности в строковых литералах 58
3.2.3. Работа со строками 59
3.2.4. Сопоставление с шаблонами 60
3.3. Логические значения 61
3.4. Значения null и undefined 62
3.5. Глобальный объект 63
3.6. Объекты-обертки 64
3.7. Неизменяемые простые значения и ссылки на изменяемые объекты 65
3.8. Преобразование типов 67
3.8.1. Преобразования и равенство 68
3.8.2. Явные преобразования 69
3.8.3. Преобразование объектов в простые значения 71
3.9. Объявление переменных 74
3.9.1 Повторные и опущенные объявления 74
3.10. Область видимости переменной 75
3.10.1. Область видимости функции и подъем 76
3.10.2. Переменные как свойства 77
3.10.3 Цепочки областей видимости 78
Глава 4. Выражения и операторы 79
4.1. Первичные выражения 79
4.2. Инициализаторы объектов и массивов 80
4.3. Выражения определений функций 81
4.4. Выражения обращения к свойствам 82
4.5. Выражения вызова 83
4.6. Выражения создания объектов 84
4.7. Обзор операторов 84
4.7.1. Количество операндов 86
4.7.2. Типы данных операндов и результата . 86
4.7.3. Левосторонние выражения 86
4.7.4. Побочные эффекты операторов 87
4.7.5. Приоритет операторов 87
4.7.6. Ассоциативность операторов 88
4.7.7. Порядок вычисления 88
4.8. Арифметические выражения 88
4.8.1. Оператор + . 89
4.8.2. Унарные арифметические операторы 90
4.8.3. Поразрядные операторы 91
4.9. Выражения отношений 93
4.9.1. Операторы равенства и неравенства 93
4.9.2. Операторы сравнения 95
4.9.3. Оператор in 97
4.9.4. Оператор instanceof 97
4.10. Логические выражения 98
4.10.1. Логическое И (&&) 98
4.10.2. Логическое ИЛИ () 99
4.10.3. Логическое НЕ (!) . 100
4.11. Выражения присваивания 100
4.11.1. Присваивание с операцией 101
4.12. Вычисление выражений 102
4.12.1. eval() 103
4.12.2. Использование eval() в глобальном контексте 103
4.12.3. Использование eval() в строгом режиме 104
4.13. Прочие операторы 105
4.13.1. Условный оператор (?:) 105
4.13.2. Оператор typeof 105
4.13.3. Оператор delete 107
4.13.4. Оператор void 108
4.13.5. Оператор запятая (,) 108
Глава 5. Инструкции 109
5.1. Инструкции-выражения 110
5.2. Составные и пустые инструкции 110
5.3. Инструкции-объявления 112
5.3.1. Инструкция var 112
5.3.2. Инструкция function 113
5.4. Условные инструкции 114
5.4.1. Инструкция if 114
5.4.2. Инструкция else if 116
5.4.3. Инструкция switch 117
5.5. Циклы 119
5.5.1. Инструкция while 119
5.5.2. Инструкция do/while 120
5.5.3. Инструкция for 121
5.5.4. Инструкция for/in 122
5.6. Переходы 124
5.6.1. Метки инструкций 124
5.6.2. Инструкция break 125
5.6.3. Инструкция continue 126
5.6.4. Инструкция return 127
5.6.5. Инструкция throw 128
5.6.6. Инструкция try/catch/finally 129
5.7. Прочие инструкции 131
5.7.1. Инструкция with 131
5.7.2. Инструкция debugger 132
5.7.3. "use strict" 133
5.8. Итоговая таблица JavaScript-инструкций 135
Глава 6. Объекты 137
6.1. Создание объектов 139
6.1.1. Литералы объектов 139
6.1.2. Создание объектов с помощью оператора new 140
6.1.3. Прототипы 140
6.1.4. Object.create() 141
6.2. Получение и изменение свойств 142
6.2.1. Объекты как ассоциативные массивы Наследование 144
6.2.3. Ошибки доступа к свойствам 145
6.3. Удаление свойств 147
6.4. Проверка существования свойств 148
6.5. Перечисление свойств 149
6.6. Методы чтения и записи свойств 152
6.7. Атрибуты свойств 154
6.7.1. Устаревшие приемы работы с методами чтения и записи 157
6.8. Атрибуты объекта 158
6.8.1. Атрибут prototype 158
6.8.2. Атрибут class 159
6.8.3. Атрибут extensible 160
6.9. Сериализация объектов 161
6.10. Методы класса Object 162
6.10.1. Метод toString() 162
6.10.2. Метод toLocaleString() . 163
6.10.3. Метод toJSON() 163
6.10.4. Метод valueOf() 163
Глава 7. Массивы 164
7.1. Создание массивов 165
7.2. Чтение и запись элементов массива . . 166
7.3. Разреженные массивы 167
7.4. Длина массива 168
7.5. Добавление и удаление элементов массива 169
7.6. Обход элементов массива 170
7.7. Многомерные массивы 171
7.8. Методы класса Array 172
7.8.1. Метод join() 172
7.8.2. Метод reverse() 172
7.8.3. Метод sort() 173
7.8.4. Метод concat() 173
7.8.5. Метод slice() 174
7.8.6. Метод splice() 174
7.8.7. Методы push() и pop() 175
7.8.8. Методы unshift() и shift() 175
7.8.9. Методы toString() и toLocaleString() 176
7.9. Методы класса Array, определяемые стандартом ECMAScript 5 176
7.9.1. Метод forEach() 176
7.9.2. Метод map() 177
7.9.3. Метод filter() 177
7.9.4. Методы every() и some() 178
7.9.5. Методы reduce() и reduceRight() . 178
7.9.6. Методы indexOf() и lastIndexOf() 180
7.10. Тип Array 181
7.11. Объекты, подобные массивам 182
7.12. Строки как массивы 184
Глава 8. Функции 185
8.1. Определение функций 185
8.1.1. Вложенные функции 188
8.2. Вызов функций 189
8.2.1. Вызов функций 189
8.2.2. Вызов методов 190
8.2.3. Вызов конструкторов 192
8.2.4. Косвенный вызов 193
8.3. Аргументы и параметры функций 193
8.3.1. Необязательные аргументы 193
8.3.2. Списки аргументов переменной длины: объект Arguments 194
8.3.3. Использование свойств объекта в качестве аргументов 196
8.3.4. Типы аргументов 197
8.4. Функции как данные 198
8.4.1. Определение собственных свойств функций 200
8.5. Функции как пространства имен 201
8.6. Замыкания 203
8.7. Свойства и методы функций и конструктор Function 209
8.7.1. Свойство length 209
8.7.2. Свойство prototype 209
8.7.3. Методы call() и apply() 210
8.7.4. Метод bind() 211
8.7.5. Метод toString() 213
8.7.6. Конструктор Function() 213
8.7.7. Вызываемые объекты 214
8.8. Функциональное программирование 215
8.8.1. Обработка массивов с помощью функций 215
8.8.2. Функции высшего порядка 217
8.8.3. Частичное применение функций 218
8.8.4. Мемоизация 220
Глава 9. Классы и модули 221
9.1. Классы и прототипы .222
9.2. Классы и конструкторы 223
9.2.1. Конструкторы и идентификация класса 225
9.2.2. Свойство constructor 226
9.3. Классы в стиле Java 227
9.4. Наращивание возможностей классов 231
9.5. Классы и типы 232
9.5.1. Оператор instanceof 232
9.5.2. Свойство constructor 233
9.5.3. Имя конструктора .234
9.5.4. Грубое определение типа .235
9.6. Приемы объектно-ориентированного программирования в JavaScript 238
9.6.1. Пример: класс множества 238
9.6.2. Пример: типы-перечисления 239
9.6.3. Стандартные методы преобразований 242
9.6.4. Методы сравнения 244
9.6.5. Заимствование методов 247
9.6.6. Частные члены 249
9.6.7. Перегрузка конструкторов и фабричные методы 250
9.7. Подклассы 252
9.7.1. Определение подкласса 252
9.7.2. Вызов конструктора и методов базового класса 254
9.7.3. Композиция в сравнении с наследованием 256
9.7.4. Иерархии классов и абстрактные классы
9.8. Классы в ECMAScript 5 262
9.8.1. Определение не перечислимых свойств 262
9.8.2. Определение неизменяемых классов
9.8.3. Сокрытие данных объекта 265
9.8.4. Предотвращение расширения класса 266
9.8.5. Подклассы и ECMAScript 5 267
9.8.6. Дескрипторы свойств .268
9.9. Модули 270
9.9.1. Объекты как пространства имен 271
9.9.2. Область видимости функции как частное пространство 273
Глава 10. Шаблоны и регулярные выражения 276
10.1. Определение регулярных выражений 276
10.1.1. Символы литералов 277
10.1.2. Классы символов 278
10.1.3. Повторение 279
10.1.4. Альтернативы, группировка и ссылки 281
10.1.5. Указание позиции соответствия 283
10.1.6. Флаги 284
10.2. Методы класса String для поиска по шаблону 285
10.3. Объект RegExp 287
10.3.1. Свойства RegExp 288
10.3.2. Методы RegExp 288
Глава 11. Подмножества и расширения JavaScript . 290
11.1. Подмножества JavaScript .291
11.1.1. Подмножество The Good Parts 291
11.1.2. Безопасные подмножества 292
11.2. Константы и контекстные переменные 295
11.3. Присваивание с разложением 298
11.4. Итерации 300
11.4.1. Цикл for/each 300
11.4.2. Итераторы 301
11.4.3. Генераторы 303
11.4.4. Генераторы массивов 307
11.4.5. Выражения-генераторы 308
11.5. Краткая форма записи функций 309
11.6. Множественные блоки catch 309
11.7. E4X: ECMAScript for XML 310
Глава 12. Серверный JavaScript 314
12.1. Управление Java с помощью Rhino 315
12.1.1. Пример использования Rhino 319
12.2. Асинхронный ввод/вывод в интерпретаторе Node 321
12.2.1. Пример использования Node: HTTP-сервер 327
12.2.2. Пример использования Node: модуль утилит клиента 329
Часть II. Клиентский JavaScript 331
Глава 13. JavaScript в веб-броузерах 333
13.1. Клиентский JavaScript 333
13.1.1. Сценарии JavaScript в веб-документах 336
13.1.2. Сценарии JavaScript в веб-приложениях 336
13.2. Встраивание JavaScript-кода в разметку HTML 337
13.2.1. Элемент script .338
13.2.2. Сценарии во внешних файлах .339
13.2.3. Тип сценария 340
13.2.4. Обработчики событий в HTML 341
13.2.5. JavaScript в URL 342
13.3. Выполнение JavaScript-программ 344
13.3.1. Синхронные, асинхронные и отложенные сценарии 345
13.3.2. Выполнение, управляемое событиями 347
13.3.3. Модель потоков выполнения в клиентском JavaScript 349
13.3.4. Последовательность выполнения клиентских сценариев 350
13.4. Совместимость на стороне клиента 352
13.4.1. Библиотеки обеспечения совместимости 356
13.4.2. Классификация броузеров 356
13.4.3. Проверка особенностей 357
13.4.4. Режим совместимости и стандартный режим 358
13.4.5. Проверка типа броузера 358
13.4.6. Условные комментарии в Internet Explorer 359
13.5. Доступность 360
13.6. Безопасность 361
13.6.1. Чего не может JavaScript 362
13.6.2. Политика общего происхождения 363
13.6.3. Взаимодействие с модулями расширения и элементами управления ActiveX 365
13.6.4. Межсайтовый скриптинг 365
13.6.5. Атаки типа отказа в обслуживании 367
13.7. Клиентские фреймворки 367
Глава 14. Объект Window 369
14.1. Таймеры 370
14.2. Адрес документа и навигация по нему 371
14.2.1. Анализ URL 371
14.2.2. Загрузка нового документа 372
14.3. История посещений 373
14.4. Информация о броузере и об экране 374
14.4.1. Объект Navigator 374
14.4.2. Объект Screen 377
14.5. Диалоги 377
14.6. Обработка ошибок 379
14.7. Элементы документа как свойства окна 380
14.8. Работа с несколькими окнами и фреймами 382
14.8.1. Открытие и закрытие окон 383
14.8.2. Отношения между фреймами 385
14.8.3. JavaScript во взаимодействующих окнах 387
Глава 15. Работа с документами 390
15.1. Обзор модели DOM 390
15.2. Выбор элементов документа 393
15.2.1. Выбор элементов по значению атрибута id 393
15.2.2. Выбор элементов по значению атрибута name 394
15.2.3. Выбор элементов по типу 395
15.2.4. Выбор элементов по классу CSS 397
15.2.5. Выбор элементов с использованием селекторов CSS 398
15.2.6. document.all[] 400
15.3. Структура документа и навигация по документу 401
15.3.1. Документы как деревья узлов 401
15.3.2. Документы как деревья элементов 402
15.4. Атрибуты 405
15.4.1. HTML-атрибуты как свойства объектов Element 405
15.4.2. Доступ к нестандартным HTML-атрибутам 406
15.4.3. Атрибуты с данными 407
15.4.4. Атрибуты как узлы типа Attr 408
15.5. Содержимое элемента 409
15.5.1. Содержимое элемента в виде HTML 409
15.5.2. Содержимое элемента в виде простого текста 410
15.5.3. Содержимое элемента в виде текстовых узлов 411
15.6. Создание, вставка и удаление узлов 412
15.6.1. Создание узлов 413
15.6.2. Вставка узлов 413
15.6.3. Удаление и замена узлов . 415
15.6.4. Использование объектов DocumentFragment 416
15.7. Пример: создание оглавления 418
15.8. Геометрия документа и элементов и прокрутка 421
15.8.1. Координаты документа и видимой области . 421
15.8.2. Определение геометрии элемента 423
15.8.3. Определение элемента в указанной точке 424
15.8.4. Прокрутка 425
15.8.5. Подробнее о размерах, позициях и переполнении элементов 426
15.9. HTML-формы 428
15.9.1. Выбор форм и элементов форм 430
15.9.2. Свойства форм и их элементов 431
15.9.3. Обработчики событий форм и их элементов 432
15.9.4. Кнопки 433
15.9.5. Переключатели и флажки 434
15.9.6. Текстовые поля ввода 434
15.9.7. Элементы Select и Option 435
15.10. Другие особенности документов 437
15.10.1. Свойства объекта Document 437
15.10.2. Метод document.write() 438
15.10.3. Получение выделенного текста 440
15.10.4. Редактируемое содержимое 441
Глава 16. Каскадные таблицы стилей 444
16.1. Обзор CSS 445
16.1.1. Каскад правил 446
16.1.2. История развития CSS 447
16.1.3. Сокращенная форма определения свойств 447
16.1.4. Нестандартные свойства 447
16.1.5. Пример CSS-таблицы 448
16.2. Наиболее важные CSS-свойства 450
16.2.1. Позиционирование элементов с помощью CSS 451
16.2.2. Рамки, поля и отступы 454
16.2.3. Блочная модель и детали позиционирования в CSS 455
16.2.4. Отображение и видимость элементов 457
16.2.5. Цвет, прозрачность и полупрозрачность 458
16.2.6. Частичная видимость: свойства overflow и clip 459
16.2.7. Пример: перекрытие полупрозрачных окон 460
16.3. Управление встроенными стилями 463
16.3.1. Создание анимационных эффектов средствами CSS 465
16.4. Вычисленные стили 468
16.5. CSS-классы 470
16.6. Управление таблицами стилей 472
16.6.1. Включение и выключение таблиц стилей 472
16.6.2. Получение, вставка и удаление правил из таблиц стилей 473
16.6.3. Создание новых таблиц стилей 474
Глава 17. Обработка событий 476
17.1. Типы событий 479
17.1.1. Старые типы событий 479
17.1.2. События модели DOM 485
17.1.3. События HTML5 486
17.1.4. События, генерируемые сенсорными экранами и мобильными устройствами 488
17.2. Регистрация обработчиков событий 489
17.2.1. Установка свойств обработчиков событий 489
17.2.2. Установка атрибутов обработчиков событий 490
17.2.3. addEventListener() 491
17.2.4. attachEvent() 492
17.3. Вызов обработчиков событий 492
17.3.1. Аргумент обработчика событий 493
17.3.2. Контекст обработчиков событий 493
17.3.3. Область видимости обработчика событий 494
17.3.4. Возвращаемые значения обработчиков 495
17.3.5. Порядок вызова 495
17.3.6. Распространение событий 496
17.3.7. Отмена событий 497
17.4. События загрузки документа 498
17.5. События мыши 500
17.6. События колесика мыши 504
17.7. События механизма буксировки (drag-and-drop) 508
17.8. События ввода текста 515
17.9. События клавиатуры 518
Глава 18. Работа с протоколом HTTP 524
18.1. Использование объекта XMLHttpRequest 527
18.1.1. Выполнение запроса 529
18.1.2. Получение ответа 531
18.1.3. Оформление тела запроса 535
18.1.4. События, возникающие в ходе выполнения HTTP-запроса 541
18.1.5. Прерывание запросов и предельное время ожидания 544
18.1.6. Выполнение междоменных HTTP-запросов 545
18.2. Выполнение HTTP-запросов с помощью script: JSONP 548
18.3. Архитектура Comet на основе стандарта Server-Sent Events 550
Глава 19. Библиотека jQuery 556
19.1. Основы jQuery 557
19.1.1. Функция jQuery() 558
19.1.2. Запросы и результаты запросов 562
19.2. Методы чтения и записи объекта jQuery 565
19.2.1. Чтение и запись значений HTML-атрибутов 565
19.2.2. Чтение и запись значений CSS-атрибутов 566
19.2.3. Чтение и запись CSS-классов 566
19.2.4. Чтение и запись значений элементов HTML-форм 567
19.2.5. Чтение и запись содержимого элемента 568
19.2.6. Чтение и запись параметров геометрии элемента 568
19.2.7. Чтение и запись данных в элементе 570
19.3. Изменение структуры документа 571
19.3.1. Вставка и замена элементов 571
19.3.2. Копирование элементов 573
19.3.3. Обертывание элементов 574
19.3.4. Удаление элементов 574
19.4. Обработка событий с помощью библиотеки jQuery 575
19.4.1. Простые методы регистрации обработчиков событий 575
19.4.2. Обработчики событий в библиотеке jQuery 577
19.4.3. Объект Event в библиотеке jQuery 577
19.4.4. Дополнительные способы регистрации обработчиков событий 579
19.4.5. Удаление обработчиков событий .580
19.4.6. Возбуждение событий 582
19.4.7. Реализация собственных событий 584
19.4.8. Динамические события 584
19.5. Анимационные эффекты 586
19.5.1. Простые эффекты 588
19.5.2. Реализация собственных анимационных эффектов 589
19.5.3. Отмена, задержка и постановка эффектов в очередь 593
19.6. Реализация Ajax в библиотеке jQuery 595
19.6.1. Метод load() 595
19.6.2. Вспомогательные функции поддержки Ajax 597
19.6.3. Функция jQuery.ajax() 602
19.6.4. События в архитектуре Ajax 608
19.7. Вспомогательные функции 610
19.8. Селекторы и методы выбора в библиотеке jQuery 613
19.8.1. Селекторы jQuery 613
19.8.2. Методы выбора 618
19.9. Расширение библиотеки jQuery с помощью модулей расширений 622
19.10. Библиотека jQuery UI 625
Глава 20. Сохранение данных на стороне клиента 627
20.1. Объекты localStorage и sessionStorage 630
20.1.1. Срок хранения и область видимости 630
20.1.2. Прикладной программный интерфейс объекта Storage 632
20.1.3. События объекта Storage 633
20.2. Cookies 634
20.2.1. Атрибуты cookie: срок хранения и область видимости 635
20.2.2. Сохранение cookies 637
20.2.3. Чтение cookies 638
20.2.4. Ограничения cookies 639
20.2.5. Реализация хранилища на основе cookies 639
20.3. Механизм сохранения userData в IE 641
20.4. Хранилище приложений и автономные веб-приложения 643
20.4.1. Объявление кэшируемого приложения 643
20.4.2. Обновление кэша 645
20.4.3. Автономные веб-приложения 650
Глава 21. Работа с графикой и медиафайлами на стороне клиента .655
21.1. Работа с готовыми изображениями 656
21.1.1. Ненавязчивая реализация смены изображений 657
21.2. Работа с аудио- и видеопотоками 658
21.2.1. Выбор типа и загрузка 659
21.2.2. Управление воспроизведением .660
21.2.3. Определение состояния мультимедийных элементов 661
21.2.4 События мультимедийных элементов 663
21.3. SVG – масштабируемая векторная графика 665
21.4. Создание графики с помощью элемента canvas 672
21.4.1. Рисование линий и заливка многоугольников 675
21.4.2. Графические атрибуты 678
21.4.3. Размеры и система координат холста 679
21.4.4. Преобразование системы координат 680
21.4.5. Рисование и заливка кривых 685
21.4.6. Прямоугольники 687
21.4.7. Цвет, прозрачность, градиенты и шаблоны 687
21.4.8. Атрибуты рисования линий 691
21.4.9. Текст 692
21.4.10. Отсечение 693
21.4.11. Тени 695
21.4.12. Изображения 696
21.4.13. Композиция 698
21.4.14. Манипулирование пикселами 701
21.4.15. Определение попадания 703
21.4.16. Пример использования элемента canvas: внутристрочные диаграммы 704
Глава 22. Прикладные интерфейсы HTML5 706
22.1. Геопозиционирование 707
22.2. Управление историей посещений 711
22.3. Взаимодействие документов с разным происхождением 716
22.4. Фоновые потоки выполнения 720
22.4.1. Объект Worker 721
22.4.2. Область видимости фонового потока 722
22.4.3. Примеры использования фоновых потоков 725
22.5. Типизированные массивы и буферы 728
22.6. Двоичные объекты 732
22.6.1. Файлы как двоичные объекты 734
22.6.2. Загрузка двоичных объектов 735
22.6.3. Конструирование двоичных объектов 736
22.6.4. URL-адреса, ссылающиеся на двоичные объекты 736
22.6.5. Чтение двоичных объектов 739
22.7. Прикладной интерфейс к файловой системе 742
22.8. Базы данных на стороне клиента 747
22.9. Веб-сокеты 755
Часть III. Справочник по базовому JavaScript 759
Справочник по базовому JavaScript 761
Часть IV. Справочник по клиентскому JavaScript 881
Справочник по клиентскому JavaScript 883
Алфавитный указатель 1040