Главная » 2014»Июнь»29 » JavaScript. Подробное руководство (6-е издание)
13:12
JavaScript. Подробное руководство (6-е издание)
Шестое издание бестселлера «JavaScript. Подробное руководство» полностью пересмотрено и дополнено сведениями о JavaScript в соответствии с современным положением дел в разработке приложений для Web 2.0. Эта книга – одновременно и руководство программиста с большим числом практических примеров, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами. Издание рекомендуется программистам, которым потребовалось изучить язык программирования для Веб, а также программистам, использующим язык JavaScript и желающим овладеть им в совершенстве.
Название: JavaScript. Подробное руководство (6-е издание) Автор: Дэвид Флэнаган Издательство: Символ-Плюс Год: 2012 Страниц: 1080 Формат: PDF Размер: 10,5 МБ ISBN: 978-5-93286-215-5 Качество: Отличное Язык: Русский
Содержание:
Предисловие Глава 1. Введение в JavaScript 1.1. Базовый JavaScript 1.2. Клиентский JavaScript 1.2.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.4.1. Зарезервированные слова 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.9.1. Повторные и опущенные объявления 3.10. Область видимости переменной 3.10.1. Область видимости функции и подъем 3.10.2. Переменные как свойства 3.10.3. Цепочки областей видимости Глава 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.8.1. Оператор + 4.8.2. Унарные арифметические операторы 4.8.3. Поразрядные операторы 4.9. Выражения отношений 4.9.1. Операторы равенства и неравенства 4.9.2. Операторы сравнения 4.9.3. Оператор in 4.9.4. Оператор instanceof 4.10. Логические выражения 4.10.1. Логическое И (&&) 4.10.2. Логическое ИЛИ (||) 4.10.3. Логическое НЕ (!) 4.11. Выражения присваивания 4.11.1. Присваивание с операцией 4.12. Вычисление выражений 4.12.1. eval() 4.12.2. Использование eval() в глобальном контексте 4.12.3. Использование eval() в строгом режиме 4.13. Прочие операторы 4.13.1. Условный оператор (?:) 4.13.2. Оператор typeof 4.13.3. Оператор delete 4.13.4. Оператор void 4.13.5. Оператор «запятая» (,) Глава 5. Инструкции 5.1. Инструкции-выражения 5.2. Составные и пустые инструкции 5.3. Инструкции-объявления 5.3.1. Инструкция var 5.3.2. Инструкция function 5.4. Условные инструкции 5.4.1. Инструкция if 5.4.2. Инструкция else if 5.4.3. Инструкция switch 5.5. Циклы 5.5.1. Инструкция while 5.5.2. Инструкция do/while 5.5.3. Инструкция for 5.5.4. Инструкция for/in 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.7.1. Инструкция with 5.7.2. Инструкция debugger 5.7.3. «use strict» 5.8. Итоговая таблица JavaScript-инструкций Глава 6. Объекты 6.1. Создание объектов 6.1.1. Литералы объектов 6.1.2. Создание объектов с помощью оператора new 6.1.3. Прототипы 6.1.4. Object.create() 6.2. Получение и изменение свойств 6.2.1. Объекты как ассоциативные массивы 6.2.2. Наследование 6.2.3. Ошибки доступа к свойствам 6.3. Удаление свойств 6.4. Проверка существования свойств 6.5. Перечисление свойств 6.6. Методы чтения и записи свойств 6.7. Атрибуты свойств 6.7.1. Устаревшие приемы работы с методами чтения и записи 6.8. Атрибуты объекта 6.8.1. Атрибут prototype 6.8.2. Атрибут class 6.8.3. Атрибут extensible 6.9. Сериализация объектов 6.10. Методы класса Object 6.10.1. Метод toString() 6.10.2. Метод toLocaleString() 6.10.3. Метод toJSON() 6.10.4. Метод valueOf() Глава 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() и pop() 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() и lastIndexOf() 7.10. Тип Array 7.11. Объекты, подобные массивам 7.12. Строки как массивы Глава 8. Функции 8.1. Определение функций 8.1.1. Вложенные функции 8.2. Вызов функций 8.2.1. Вы зов функ ций 8.2.2. Вызов методов 8.2.3. Вызов конструкторов 8.2.4. Косвенный вызов 8.3. Аргументы и параметры функций 8.3.1. Необязательные аргументы 8.3.2. Списки аргументов переменной длины: объект Arguments 8.3.3. Использование свойств объекта в качестве аргументов 8.3.4. Типы аргументов 8.4. Функции как данные 8.4.1. Определение собственных свойств функций 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. Функциональное программирование 8.8.1. Обработка массивов с помощью функций 8.8.2. Функции высшего порядка 8.8.3. Частичное применение функций 8.8.4. Мемоизация Глава 9. Классы и модули 9.1. Классы и прототипы 9.2. Классы и конструкторы 9.2.1. Конструкторы и идентификация класса 9.2.2. Свойство constructor 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. Модули 9.9.1. Объекты как пространства имен 9.9.2. Область видимости функции как частное пространство имен Глава 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 10.3.1. Свойства RegExp 10.3.2. Методы RegExp Глава 11. Подмножества и расширения JavaScript 11.1. Подмножества JavaScript 11.1.1. Подмножество The Good Parts 11.1.2. Безопасные подмножества 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. E4X: ECMAScript for XML Глава 12. Серверный JavaScript 12.1. Управление Java с помощью Rhino 12.1.1. Пример использования Rhino 12.2. Асинхронный ввод/вывод в интерпретаторе Node 12.2.1. Пример использования Node: HTTP-сервер 12.2.2. Пример использования Node: модуль утилит клиента HTTP Часть II. Клиентский JavaScript Глава 13. JavaScript в веб-броузерах 13.1. Клиентский JavaScript 13.1.1. Сценарии JavaScript в веб-документах 13.1.2. Сценарии JavaScript в веб-приложениях 13.2. Встраивание JavaScript-кода в разметку HTML 13.2.1. Элемент <script> 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.2.1. Анализ URL 14.2.2. Загрузка нового документа 14.3. История посещений 14.4. Информация о броузере и об экране 14.4.1. Объект Navigator 14.4.2. Объект Screen 14.5. Диалоги 14.6. Обработка ошибок 14.7. Элементы документа как свойства окна 14.8. Работа с несколькими окнами и фреймами 14.8.1. Открытие и закрытие окон 14.8.2. Отношения между фреймами 14.8.3. JavaScript во взаимодействующих окнах Глава 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.3.1. Документы как деревья узлов 15.3.2. Документы как деревья элементов 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. Другие особенности документов 15.10.1. Свойства объекта Document 15.10.2. Метод document. write() 15.10.3. Получение выделенного текста 15.10.4. Редактируемое содержимое Глава 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 и clip 16.2.7. Пример: перекрытие полупрозрачных окон 16.3. Управление встроенными стилями 16.3.1. Создание анимационных эффектов средствами CSS 16.4. Вычисленные стили 16.5. CSS-классы 16.6. Управление таблицами стилей 16.6.1. Включение и выключение таблиц стилей 16.6.2. Получение, вставка и удаление правил из таблиц стилей 16.6.3. Создание новых таблиц стилей Глава 17. Обработка событий 17.1. Типы событий 17.1.1. Старые типы событий 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.4. События, возникающие в ходе выполнения HTTP-запроса 18.1.5. Прерывание запросов и предельное время ожидания 18.1.6. Выполнение междоменных HTTP-запросов 18.2. Выполнение HTTP-запросов с помощью <script>: JSONP 18.3. Архитектура Comet на основе стандарта «Server-Sent Events» Глава 19. Библиотека jQuery 19.1. Основы jQuery 19.1.1. Функция jQuery() 19.1.2. Запросы и результаты запросов 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.3. Отмена, задержка и постановка эффектов в очередь 19.6. Реализация Ajax в библиотеке jQuery 19.6.1. Метод load() 19.6.2. Вспомогательные функции поддержки Ajax 19.6.3. Функция jQuery. ajax() 19.6.4. События в архитектуре Ajax 19.7. Вспомогательные функции 19.8. Селекторы и методы выбора в библиотеке jQuery 19.8.1. Селекторы jQuery 19.8.2. Методы выбора 19.9. Расширение библиотеки jQuery с помощью модулей расширений 19.10. Библиотека jQuery UI Глава 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. Хранилище приложений и автономные веб-приложения 20.4.1. Объявление кэшируемого приложения 20.4.2. Обновление кэша 20.4.3. Автономные веб-приложения Глава 21. Работа с графикой и медиафайлами на стороне клиента 21.1. Работа с готовыми изображениями 21.1.1. Ненавязчивая реализация смены изображений 21.2. Работа с аудио- и видеопотоками 21.2.1. Выбор типа и загрузка 21.2.2. Управление воспроизведением 21.2.3. Определение состояния мультимедийных элементов 21.2.4. События мультимедийных элементов 21.3. SVG - масштабируемая векторная графика 21.4. Создание графики с помощью элемента <canvas> 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. Пример использования элемента <canvas>: внутристрочные диаграммы Глава 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 Справочник по базовому JavaScript Часть IV. Справочник по клиентскому JavaScript Справочник по клиентскому JavaScript Алфавитный указатель