Книга: JavaScript. Подробное руководство, 6-е издание
Оглавление книги
- Дэвид Флэнаган JavaScript. Подробное руководство, 6-е издание
- Предисловие
- Глава 1. Введение в JavaScript
- I Базовый JavaScript
- 2 Лексическая структура
- 2.1. Набор символов
- 2.1.1. Чувствительность к регистру
- 2.1.2. Пробелы, переводы строк и символы управления форматом
- 2.1.3. Экранированные последовательности Юникода
- 2.1.4. Нормализация
- 2.2. Комментарии
- 2.3. Литералы
- 2.4. Идентификаторы и зарезервированные слова
- 2.5. Необязательные точки с запятой
- 3. Типы данных, значения и переменные
- 3.1. Числа
- 3.1.1. Целые литералы
- 3.1.2. Литералы вещественных чисел
- 3.1.3. Арифметические операции в JavaScript
- 3.1.4. Двоичное представление вещественных чисел и ошибки округления
- 3.1.5. Дата и время
- 3.2. Текст
- 3.2.1. Строковые литералы
- 3.2.2. Управляющие последовательности в строковых литералах
- 3.2.3. Работа со строками
- 3.2.4. Сопоставление с шаблонами
- 3.3. Логические значения
- 3.4. Значения null и undefined
- 3.5. Глобальный объект
- 3.6. Объекты-обертки
- 3.7. Неизменяемые простые значения и ссылки на изменяемые объекты
- 3.8. Преобразование типов
- 3.8.1. Преобразования и равенство
- 3.8.2. Явные преобразования
- 3.8.3. Преобразование объектов в простые значения
- 3.9. Объявление переменных
- 3.10. Область видимости переменной
- 4 Выражения и операторы
- 4.1. Первичные выражения
- 4.2. Инициализаторы объектов и массивов
- 4.3. Выражения определений функций
- 4.4. Выражения обращения к свойствам
- 4.5. Выражения вызова
- 4.6. Выражения создания объектов
- 4.7. Обзор операторов
- 4.7.1. Количество операндов
- 4.7.2. Типы данных операндов и результата
- 4.7.3. Левосторонние выражения
- 4.7.4. Побочные эффекты операторов
- 4.7.5. Приоритет операторов
- 4.7.6. Ассоциативность операторов
- 4.7.7. Порядок вычисления
- 4.8. Арифметические выражения
- 4.9. Выражения отношений
- 4.9.1. Операторы равенства и неравенства
- 4.9.2. Операторы сравнения
- 4.9.3. Оператор in
- 4.9.4. Оператор instanceof
- 4.10. Логические выражения
- 4.11. Выражения присваивания
- 4.12. Вычисление выражений
- 4.12.1. eval()
- 4.12.2. Использование eval() в глобальном контексте
- 4.12.3. Использование eval() в строгом режиме
- 4.13. Прочие операторы
- 5 Инструкции
- 5.1. Инструкции-выражения
- 5.2. Составные и пустые инструкции
- 5.3. Инструкции-объявления
- 5.4. Условные инструкции
- 5.5. Циклы
- 5.6. Переходы
- 5.6.1. Метки инструкций
- 5.6.2. Инструкция break
- 5.6.3. Инструкция continue
- 5.6.4. Инструкция return
- 5.6.5. Инструкция throw
- 5.6.6. Инструкция try/catch/finally
- 5.7. Прочие инструкции
- 5.8. Итоговая таблица JavaScript-инструкций
- 6 Объекты
- 6.1. Создание объектов
- 6.1.1. Литералы объектов
- 6.1.2. Создание объектов с помощью оператора new
- 6.1.3. Прототипы
- 6.1.4. Object.create()
- 6.2. Получение и изменение свойств
- 6.3. Удаление свойств
- 6.4. Проверка существования свойств
- 6.5. Перечисление свойств
- 6.6. Методы чтения и записи свойств
- 6.7. Атрибуты свойств
- 6.8. Атрибуты объекта
- 6.9. Сериализация объектов
- 6.10. Методы класса Object
- 7 Массивы
- 7.1. Создание массивов
- 7.2. Чтение и запись элементов массива
- 7.3. Разреженные массивы
- 7.4. Длина массива
- 7.5. Добавление и удаление элементов массива
- 7.6. Обход элементов массива
- 7.7. Многомерные массивы
- 7.8. Методы класса Array
- 7.8.1. Метод join()
- 7.8.2. Метод reverse()
- 7.8.3. Метод sort()
- 7.8.4. Метод concat()
- 7.8.5. Метод slice()
- 7.8.6. Метод splice()
- 7.8.7. Методы push() и рор()
- 7.8.8. Методы unshift() и shift()
- 7.8.9. Методы toString() и toLocaleString()
- 7.9. Методы класса Array, определяемые стандартом ECMAScript 5
- 7.9.1. Метод forEach()
- 7.9.2. Метод map()
- 7.9.3. Метод filter()
- 7.9.4. Методы every() и some()
- 7.9.5. Методы reduce() и reduceRight()
- 7.9.6. Методы indexOf() и lastlndexOf()
- 7.10. Тип Array
- 7.11. Объекты, подобные массивам
- 7.12. Строки как массивы
- 8 Функции
- 8.1. Определение функций
- 8.2. Вызов функций
- 8.3. Аргументы и параметры функций
- 8.3.1. Необязательные аргументы
- 8.3.2. Списки аргументов переменной длины: объект Arguments
- 8.3.3. Использование свойств объекта в качестве аргументов
- 8.3.4. Типы аргументов
- 8.4. Функции как данные
- 8.5. Функции как пространства имен
- 8.6. Замыкания
- 8.7. Свойства и методы функций и конструктор Function
- 8.7.1. Свойство length
- 8.7.2. Свойство prototype
- 8.7.3. Методы call() и apply()
- 8.7.4. Метод bind()
- 8.7.5. Метод toString()
- 8.7.6. Конструктор Function()
- 8.7.7. Вызываемые объекты
- 8.8. Функциональное программирование
- 9 Классы и модули
- 9.1. Классы и прототипы
- 9.2. Классы и конструкторы
- 9.3. Классы в стиле Java
- 9.4. Наращивание возможностей классов
- 9.5. Классы и типы
- 9.5.1. Оператор instanceof
- 9.5.2. Свойство constructor
- 9.5.3. Имя конструктора
- 9.5.4. Грубое определение типа
- 9.6. Приемы объектно-ориентированного программирования в JavaScript
- 9.6.1. Пример: класс множества
- 9.6.2. Пример: типы-перечисления
- 9.6.3. Стандартные методы преобразований
- 9.6.4. Методы сравнения
- 9.6.5. Заимствование методов
- 9.6.6. Частные члены
- 9.6.7. Перегрузка конструкторов и фабричные методы
- 9.7. Подклассы
- 9.7.1. Определение подкласса
- 9.7.2. Вызов конструктора и методов базового класса
- 9.7.3. Композиция в сравнении с наследованием
- 9.7.4. Иерархии классов и абстрактные классы
- 9.8. Классы в ECMAScript 5
- 9.8.1. Определение неперечислимых свойств
- 9.8.2. Определение неизменяемых классов
- 9.8.3. Сокрытие данных объекта
- 9.8.4. Предотвращение расширения класса
- 9.8.5. Подклассы и ECMAScript 5
- 9.8.6. Дескрипторы свойств
- 9.9. Модули
- 10 Шаблоны и регулярные выражения
- 10.1. Определение регулярных выражений
- 10.1.1. Символы литералов
- 10.1.2. Классы символов
- 10.1.3. Повторение
- 10.1.4. Альтернативы, группировка и ссылки
- 10.1.5. Указание позиции соответствия
- 10.1.6. Флаги
- 10.2. Методы класса String для поиска по шаблону
- 10.3. Объект RegExp
- 11 Подмножества и расширения JavaScript
- 11.1. Подмножества JavaScript
- 11.2. Константы и контекстные переменные
- 11.3. Присваивание с разложением
- 11.4. Итерации
- 11.4.1. Цикл for/each
- 11.4.2. Итераторы
- 11.4.3. Генераторы
- 11.4.4. Генераторы массивов
- 11.4.5. Выражения-генераторы
- 11.5. Краткая форма записи функций
- 11.6. Множественные блоки catch
- 11.7. Е4Х: ECMAScript for XML
- 12 Серверный JavaScript
- II Клиентский JavaScript
- 13 JavaScript в веб-броузерах
- 13.1. Клиентский JavaScript
- 13.2. Встраивание JavaScript-кода в разметку HTML
- 13.2.1. Элемент
- 13.2.2. Сценарии во внешних файлах
- 13.2.3. Тип сценария
- 13.2.4. Обработчики событий в HTML
- 13.2.5. JavaScript в URL
- 13.3. Выполнение JavaScript-программ
- 13.3.1. Синхронные, асинхронные и отложенные сценарии
- 13.3.2. Выполнение, управляемое событиями
- 13.3.3. Модель потоков выполнения в клиентском JavaScript
- 13.3.4. Последовательность выполнения клиентских сценариев
- 13.4. Совместимость на стороне клиента
- 13.4.1. Библиотеки обеспечения совместимости
- 13.4.2. Классификация броузеров
- 13.4.3. Проверка особенностей
- 13.4.4. Режим совместимости и стандартный режим
- 13.4.5. Проверка типа броузера
- 13.4.6. Условные комментарии в Internet Explorer
- 13.5. Доступность
- 13.6. Безопасность
- 13.6.1. Чего не может JavaScript
- 13.6.2. Политика общего происхождения
- 13.6.3. Взаимодействие с модулями расширения и элементами управления ActiveX
- 13.6.4. Межсайтовый скриптинг
- 13.6.5. Атаки типа отказа в обслуживании
- 13.7. Клиентские фреймворки
- 14 Объект Window
- 14.1. Таймеры
- 14.2. Адрес документа и навигация по нему
- 14.3. История посещений
- 14.4. Информация о броузере и об экране
- 14.5. Диалоги
- 14.6. Обработка ошибок
- 14.7. Элементы документа как свойства окна
- 14.8. Работа с несколькими окнами и фреймами
- 15 Работа с документами
- 15.1. Обзор модели DOM
- 15.2. Выбор элементов документа
- 15.2.1. Выбор элементов по значению атрибута id
- 15.2.2. Выбор элементов по значению атрибута name
- 15.2.3. Выбор элементов по типу
- 15.2.4. Выбор элементов по классу CSS
- 15.2.5. Выбор элементов с использованием селекторов CSS
- 15.2.6. document.all[]
- 15.3. Структура документа и навигация по документу
- 15.4. Атрибуты
- 15.4.1. HTML-атрибуты как свойства объектов Element
- 15.4.2. Доступ к нестандартным HTML-атрибутам
- 15.4.3. Атрибуты с данными
- 15.4.4. Атрибуты как узлы типа Attr
- 15.5. Содержимое элемента
- 15.5.1. Содержимое элемента в виде HTML
- 15.5.2. Содержимое элемента в виде простого текста
- 15.5.3. Содержимое элемента в виде текстовых узлов
- 15.6. Создание, вставка и удаление узлов
- 15.6.1. Создание узлов
- 15.6.2. Вставка узлов
- 15.6.3. Удаление и замена узлов
- 15.6.4. Использование объектов DocumentFragment
- 15.7. Пример: создание оглавления
- 15.8. Геометрия документа и элементов и прокрутка
- 15.8.1. Координаты документа и видимой области
- 15.8.2. Определение геометрии элемента
- 15.8.3. Определение элемента в указанной точке
- 15.8.4. Прокрутка
- 15.8.5. Подробнее о размерах, позициях и переполнении элементов
- 15.9. HTML-формы
- 15.9.1. Выбор форм и элементов форм
- 15.9.2. Свойства форм и их элементов
- 15.9.3. Обработчики событий форм и их элементов
- 15.9.4. Кнопки
- 15.9.5. Переключатели и флажки
- 15.9.6. Текстовые поля ввода
- 15.9.7. Элементы Select и Option
- 15.10. Другие особенности документов
- 16 Каскадные таблицы стилей
- 16.1. Обзор CSS
- 16.1.1. Каскад правил
- 16.1.2. История развития CSS
- 16.1.3. Сокращенная форма определения свойств
- 16.1.4. Нестандартные свойства
- 16.1.5. Пример CSS-таблицы
- 16.2. Наиболее важные CSS-свойства
- 16.2.1. Позиционирование элементов с помощью CSS
- 16.2.2. Рамки, поля и отступы
- 16.2.3. Блочная модель и детали позиционирования в CSS
- 16.2.4. Отображение и видимость элементов
- 16.2.5. Цвет, прозрачность и полупрозрачность
- 16.2.6. Частичная видимость: свойства overflow и dip
- 16.2.7. Пример: перекрытие полупрозрачных окон
- 16.3. Управление встроенными стилями
- 16.4. Вычисленные стили
- 16.5. CSS-классы
- 16.6. Управление таблицами стилей
- 17 Обработка событий
- 17.1. Типы событий
- 17.1.1. Старые типы событий
- 17.1.1.1. События форм
- 17.1.1.2. События объекта Window
- 17.1.1.3. События мыши
- 17.1.1.4. События клавиатуры
- 17.1.2. События модели DOM
- 17.1.3. События HTML5
- 17.1.4. События, генерируемые сенсорными экранами и мобильными устройствами
- 17.2. Регистрация обработчиков событий
- 17.2.1. Установка свойств обработчиков событий
- 17.2.2. Установка атрибутов обработчиков событий
- 17.2.3. addEventListener()
- 17.2.4. attachEvent()
- 17.3. Вызов обработчиков событий
- 17.3.1. Аргумент обработчика событий
- 17.3.2. Контекст обработчиков событий
- 17.3.3. Область видимости обработчика событий
- 17.3.4. Возвращаемые значения обработчиков
- 17.3.5. Порядок вызова
- 17.3.6. Распространение событий
- 17.3.7. Отмена событий
- 17.4. События загрузки документа
- 17.5. События мыши
- 17.6. События колесика мыши
- 17.7. События механизма буксировки (drag-and-drop)
- 17.8. События ввода текста
- 17.9. События клавиатуры
- 18 Работа с протоколом HTTP
- 18.1. Использование объекта XMLHttpRequest
- 18.1.1. Выполнение запроса
- 18.1.2. Получение ответа
- 18.1.3. Оформление тела запроса
- 18.1.3.1. Запросы с данными в формате HTML-форм
- 18.1.3.2. Запросы с данными в формате JSON
- 18.1.3.3. Запросы с данными в формате XML
- 18.1.3.4. Выгрузка файлов
- 18.1.3.5. Запросы с данными в формате multipart/form-data
- 18.1.4. События, возникающие в ходе выполнения НТТР-запроса
- 18.1.5. Прерывание запросов и предельное время ожидания
- 18.1.6. Выполнение междоменных НТТР-запросов
- 18.2. Выполнение НТТР-запросов с помощью : JSONP
- 18.3. Архитектура Comet на основе стандарта «Server-Sent Events»
- 19 Библиотека jQuery
- 19.1. Основы jQuery
- 19.2. Методы чтения и записи объекта jQuery
- 19.2.1. Чтение и запись значений HTML-атрибутов
- 19.2.2. Чтение и запись значений CSS-атрибутов
- 19.2.3. Чтение и запись CSS-классов
- 19.2.4. Чтение и запись значений элементов HTML-форм
- 19.2.5. Чтение и запись содержимого элемента
- 19.2.6. Чтение и запись параметров геометрии элемента
- 19.2.7. Чтение и запись данных в элементе
- 19.3. Изменение структуры документа
- 19.3.1. Вставка и замена элементов
- 19.3.2. Копирование элементов
- 19.3.3. Обертывание элементов
- 19.3.4. Удаление элементов
- 19.4. Обработка событий с помощью библиотеки jQuery
- 19.4.1. Простые методы регистрации обработчиков событий
- 19.4.2. Обработчики событий в библиотеке jQuery
- 19.4.3. Объект Event в библиотеке jQuery
- 19.4.4. Дополнительные способы регистрации обработчиков событий
- 19.4.5. Удаление обработчиков событий
- 19.4.6. Возбуждение событий
- 19.4.7. Реализация собственных событий
- 19.4.8. Динамические события
- 19.5. Анимационные эффекты
- 19.5.1. Простые эффекты
- 19.5.2. Реализация собственных анимационных эффектов
- 19.5.2.1. Объект, определяющий изменяемые атрибуты
- 19.5.2.2. Объект с параметрами анимационного эффекта
- 19.5.3. Отмена, задержка и постановка эффектов в очередь
- 19.6. Реализация Ajax в библиотеке jQuery
- 19.6.1. Метод load()
- 19.6.2. Вспомогательные функции поддержки Ajax
- 19.6.3. Функция jQuery.ajax()
- 19.6.3.1. Часто используемые параметры
- 19.6.3.2. Функции обратного вызова
- 19.6.3.3. Редко используемые параметры и обработчики
- 19.6.4. События в архитектуре Ajax
- 19.7. Вспомогательные функции
- 19.8. Селекторы и методы выбора в библиотеке jQuery
- 19.9. Расширение библиотеки jQuery с помощью модулей расширений
- 19.10. Библиотека jQuery Ul
- 20 Сохранение данных на стороне клиента
- 20.1. Объекты localStorage и sessionStorage
- 20.1.1. Срок хранения и область видимости
- 20.1.2. Прикладной программный интерфейс объекта Storage
- 20.1.3. События объекта Storage
- 20.2. Cookies
- 20.2.1. Атрибуты cookie: срок хранения и область видимости
- 20.2.2. Сохранение cookies
- 20.2.3. Чтение cookies
- 20.2.4. Ограничения cookies
- 20.2.5. Реализация хранилища на основе cookies
- 20.3. Механизм сохранения userData в IE
- 20.4. Хранилище приложений и автономные веб-приложения
- 21 Работа с графикой и медиафайлами на стороне клиента
- 21.1. Работа с готовыми изображениями
- 21.2. Работа с аудио- и видеопотоками
- 21.2.1. Выбор типа и загрузка
- 21.2.2. Управление воспроизведением
- 21.2.3. Определение состояния мультимедийных элементов
- 21.2.4 События мультимедийных элементов
- 21.3. SVG - масштабируемая векторная графика
- 21.4. Создание графики с помощью элемента
- 21.4.1. Рисование линий и заливка многоугольников
- 21.4.2. Графические атрибуты
- 21.4.3. Размеры и система координат холста
- 21.4.4. Преобразование системы координат
- 21.4.5. Рисование и заливка кривых
- 21.4.6. Прямоугольники
- 21.4.7. Цвет, прозрачность, градиенты и шаблоны
- 21.4.8. Атрибуты рисования линий
- 21.4.9. Текст
- 21.4.10. Отсечение
- 21.4.11. Тени
- 21.4.12. Изображения
- 21.4.13. Композиция
- 21.4.14. Манипулирование пикселами
- 21.4.15. Определение попадания
- 21.4.16. Пример использования элемента : внутристрочные диаграммы
- 22 Прикладные интерфейсы HTML5
- 22.1. Геопозиционирование
- 22.2. Управление историей посещений
- 22.3. Взаимодействие документов с разным происхождением
- 22.4. Фоновые потоки выполнения
- 22.4.1. Объект Worker
- 22.4.2. Область видимости фонового потока
- 22.4.3. Примеры использования фоновых потоков
- 22.5. Типизированные массивы и буферы
- 22.6. Двоичные объекты
- 22.6.1. Файлы как двоичные объекты
- 22.6.2. Загрузка двоичных объектов
- 22.6.3. Конструирование двоичных объектов
- 22.6.4. URL-адреса, ссылающиеся на двоичные объекты
- 22.6.5. Чтение двоичных объектов
- 22.7. Прикладной интерфейс к файловой системе
- 22.8. Базы данных на стороне клиента
- 22.9. Веб-сокеты
- III Справочник по базовому JavaScript
- IV Справочник по клиентскому JavaScript
- Справочник по клиентскому JavaScript
- ApplicationCache
- ArrayBuffer
- ArrayBufferView
- Attr
- Audio
- BeforeUnloadEvent
- Blob
- BlobBuilder
- Button
- Canvas
- BlobBuilder
- Button
- Canvas
- CanvasGradient
- CanvasPattern
- CanvasRenderingContext2D
- ClientRect
- CloseEvent
- Comment
- Console
- ConsoleCommandLine
- CSS2Properties
- CSSRule
- CSSStyleDeclaration
- CSSStyleSheet
- DataTransfer
- DataView
- Document
- DocumentFragment
- DocumentType
- DOMException
- DOMImplementation
- DOMSettableTokenList
- DOMTokenList
- Element
- ErrorEvent
- Event
- EventSource
- EventTarget
- FieldSet
- File
- FileError
- FileReader
- FileReaderSync
- Form
- FormControl
- Form Data
- FormValidity
- Geocoordinates
- Geolocation
- GeolocationError
- Geoposition
- HashChangeEvent
- History
- HTMLCollection
- HTMLDocument
- HTMLEIement
- HTMLFormControlsCollection
- HTMLOptionsCollection
- IFrame
- Image
- ImageData
- Input
- jQuery jQuery 1.4
- KeyEvent
- Label
- Link
- Location
- MediaElement
- MediaError
- MessageChannel
- MessageEvent
- MessagePort
- Meter
- MouseEvent
- Navigator
- Node
- NodeList
- Option
- Output
- PageTransitionEvent
- PopStateEvent
- ProcessingInstruction
- Progress
- ProgressEvent
- Screen
- Script
- Select
- Storage
- StorageEvent
- Style
- Table
- TableCell
- TableRow
- TableSection
- Text
- TextArea
- TextMetrics
- TimeRanges
- TypedArray
- URL
- Video
- WebSocket
- Window
- Worker
- WorkerGlobalScope
- WorkerLocation
- WorkerNavigator
- XMLHttpRequest
- XMLHttpRequestUpload
- Алфавитный указатель
- ...
- Сноски из книги
- Содержание книги
- Популярные страницы
Оглавление статьи/книги
- Дэвид Флэнаган JavaScript. Подробное руководство, 6-е издание
- Предисловие
- Глава 1. Введение в JavaScript
- I Базовый JavaScript
- II Клиентский JavaScript
- III Справочник по базовому JavaScript
- IV Справочник по клиентскому JavaScript
- Алфавитный указатель
- ...
- Сноски из книги
- Содержание книги
- Популярные страницы
Похожие страницы
- 7.2. Описание сценария rc.firewall
- 9.7.1. Определение подкласса
- 19.2.4. Чтение и запись значений элементов HTML-форм
- Справочник по базовому JavaScript
- 20.2.1. Атрибуты cookie: срок хранения и область видимости
- 19.2.1. Чтение и запись значений HTML-атрибутов
- Дэвид Флэнаган JavaScript. Подробное руководство, 6-е издание
- JavaScript. Подробное руководство, 6-е издание
- 9.1. Классы и прототипы
- 9.8. Классы в ECMAScript 5
- 7.6. Обход элементов массива
- 19.5.1. Простые эффекты