Николас Закас «JavaScript для профессиональных веб-разработчиков» Питер, 2015 год, 960 стр. (15,5 мб. pdf)
Книга проведет обучение javascript от основ до профессионального уровня.JavaScript-язык несколько схожий с Java — который является объектно-ориентированным языком программирования, ставший популярным для использования в Web, посредством встроенных апплетов. JavaScript имеет похожий синтаксис и методологии программирования с Java, однако его не следует считать «облегченной» версией языка. JavaScript-это самостоятельный язык, который обрел свое пристанище в веб-браузерах всего мира и с поддержкой расширенного взаимодействия с пользователем на веб-сайтах, а также в веб-приложениях.
В этой книге JavaScript-описывается начиная с использования в самых ранних браузерах Netscape до версий версии, которые могут поддерживают DOM и AJAX. Вы узнаете, как расширить язык, чтобы удовлетворить конкретные потребности и как создать клиент-серверное взаимодействие без посредников, таких как java или скрытых фреймов. Вы также узнаете, как применять JavaScript для решения бизнес-проблем, с которыми сталкиваются веб-разработчики везде. Эта книга предоставляет обучение javascript разработчикам на уровне, как начинающих разработчиков, так и профессионалов.
Читатель получит информацию о разных реализациях JavaScript, которые используются в различных популярных веб-браузерах. Книга охватывает круг вопросов: обучение javascript, основы использования языка, наследование, использование в HTML, новые API, такие как HTML5, селекторы API и файл API-интерфейса. Последняя часть книги ориентирована на специальные темы, в том числе производительность-оптимизация памяти.
Николас Закас «JavaScript для профессиональных веб-разработчиков» Питер, 2015 год, 960 стр. (15,5 мб. pdf)
Книга проведет обучение javascript от основ до профессионального уровня.JavaScript-язык несколько схожий с Java — который является объектно-ориентированным языком программирования, ставший популярным для использования в Web, посредством встроенных апплетов. JavaScript имеет похожий синтаксис и методологии программирования с Java, однако его не следует считать «облегченной» версией языка. JavaScript-это самостоятельный язык, который обрел свое пристанище в веб-браузерах всего мира и с поддержкой расширенного взаимодействия с пользователем на веб-сайтах, а также в веб-приложениях.
В этой книге JavaScript-описывается начиная с использования в самых ранних браузерах Netscape до версий версии, которые могут поддерживают DOM и AJAX. Вы узнаете, как расширить язык, чтобы удовлетворить конкретные потребности и как создать клиент-серверное взаимодействие без посредников, таких как java или скрытых фреймов. Вы также узнаете, как применять JavaScript для решения бизнес-проблем, с которыми сталкиваются веб-разработчики везде. Эта книга предоставляет обучение javascript разработчикам на уровне, как начинающих разработчиков, так и профессионалов.
Читатель получит информацию о разных реализациях JavaScript, которые используются в различных популярных веб-браузерах. Книга охватывает круг вопросов: обучение javascript, основы использования языка, наследование, использование в HTML, новые API, такие как HTML5, селекторы API и файл API-интерфейса. Последняя часть книги ориентирована на специальные темы, в том числе производительность-оптимизация памяти.
Книга разбита на 25 глав
Глава 1 Объясняет происхождение JavaScript, в том числе, откуда он взялся, как он развивался, и чем он есть сегодня.
Что такое JavaScript?
Краткая история JavaScript
Реализации jаvаSсriрt
ECMAScript»
Объектная модель документа
Объектная модель браузера
Bepcии javaScript
Глава 2 Рассматриваются как JavaScript используется совместно с HTML для создания динамических веб-страниц.
JavaScript в HTML
Элемент <script >
Расположение тегов
Отложенные сценарии
Асинхронные сценарии
Изменения в XHTML
Устаревший синтаксис
Встроенный код или внешние файлы?
Режимы документа
Элемент <noscript >
Глава 3 Знакомит студентов с основными понятиями языка, включая синтаксис и операторы управления.
Основы языка
Синтаксис
Чувствительность к регистру
Идентификаторы
Комментарии
Строгий режим
Инструкции
Ключевые и зарезервированные слова
Переменные
Типы данных
Оператор typeof
Тип Undefi ned
Тип Null
Тип boolean
Тип number
Тип string
Тип Object
Операторы
Унарные операторы
Поразрядные операторы
Логические операторы
Мультипликативные операторы
Операторы сложения и вычитания
Операторы отношений
Операторы эквивалентности
Условный оператор
Операторы присваивания
Оператор «запятая»
Инструкции
Инструкция if
Инструкция do-while
Инструкция while
Инструкция for
Инструкция fo r-in
Метки инструкций
Инструкции break и continue
Инструкция with
Инструкция switch
Функции
Аргументы функций
Никакой перегрузки
Глава 4 Рассматриваются как переменные обрабатываются в JavaScript с учетом их слабо типизированной природы.
Переменные, область видим ости и память
Примитивные и ссылочные значения
Динамические свойства
Копирование значений
Передача аргументов
Проверка типа
Контекст выполнения и область видимости
Приращение цепочки областей видимости
Отсутствие блочных областей видимости
Сборка мусора
Отслеживание и очистка
Подсчет ссылок
Производительность
Управление памятью
Глава 5 Охватывает все подробности, касающиеся на JavaScript, включая такие типы, как объект и массив:
Ссылочные типы
Тип Obj ect
Тип Array
Методы преобразования массивов
Методы для работы с массивом как со стеком
Методы для работы с массивом как с очередью
Методы изменения порядка следования элементов
Методы манипулирования элементами
Методы поиска элементов
Методы перебора элементов
Методы редукции массивов
Тип Date
Унаследованные методы
Методы форматирования дат
Методы для работы с компонентами даты/времени
Тип RegExp
Свойства экземпляра RegExp
Методы экземпляра RegExp
Свойства конструктора RegExp
Ограничения шаблонов
Тип Function
Никакой перегрузки (новый взгляд )
Объявления функций и функции-выражения
Функции как значения
Внутри функций
Свойства и методы функций
Оболочки примитивных типов
Тип Boolean
Тип Nu m ber
Тип String
Встроенные одиночные объекты
Объект Global
Объект Math
Глава 6 Поясняет, как использовать объектно-ориентированное программирование в JavaScript.
Объектно — ориентированное программирование
Общие сведения об объектах
Типы свойств
Определение нескольких свойств
Чтение атрибутов свойств
Создание объектов
Паттерн Фабрика
Паттерн Конструктор
Паттерн Прототип
Объединение паттернов Конструктор и Прототип
Паттерн Динамический прототип
Паттерн Паразитный конструктор
Паттерн Защищенный конструктор
Наследование
Цепочки прототипов
Кража конструктора
Комбинированное наследование
Прототипное наследование
Паразитное наследование
Паразитное комбинированное наследование
Глава 7 Посвящена одному из самых мощных аспектов JavaScript: функции выражения.
Функции выражения
Рекурсия
Замыкания
Замыкания и переменные .
Объект this
Утечки памяти
Закрытые переменные
Статические закрытые переменные
Паттерн Модуль
Расширенный паттерн Модуль
Глава 8 Знакомит с объектной моделью браузера (спецификации), которое отвечает за объекты, позволяющие взаимодействовать с самим браузером:
Объектная модель браузера
Объект window
Глобальная область видимости
Отношения окон и фреймов
Расположение окна
Размеры окна
Открытие окон и навигация
Интервалы и тайм-ауты
Системные диалоговые окна
Объект locat ion
Аргументы строки запроса
Работа с объектом location
Объект navigator
Обнаружение подключаемых модулей
Регистрация обработчиков
Объект scгeen
Объект history
Главе 9 Описываются различные подходы к работе на клиентской машине и ее возможностях:
Распознавание клиента
Распознавание возможностей
Надежное распознавание возможностей
Распознавание возможностей — не распознавание браузера
Распознавание особенностей
Распознавание пользовательского агента
История
Идентификация пользовательского агента
Полный сценарий
Использование сценария
Глава 10 Знакомит с объектной моделью документа (dom). Объекты, доступные в JavaScript, определение в dom уровня 1.
Объектная модель документа
Иерархия узлов
Тип Node
Тип Document
Тип Element
Тип Text
Тип Comment
Тип CDATASection
Тип DocumentT ype
Тип Document Fragment
Тип Attr
Работа с DOM
Динамические сценарии
Динамические стили
Работа с таблицами
Использование объектов NodeList
Глава 11 Объясняется, как другие API, а также другие браузеры, расширяют dom с большей функциональностью:
Расширения DOM
Selectors
Метод querySelector( )
Метод querySelectorAll( )
Метод matchesSelector( )
Element Traversal
HTM L5
Новые средства работы с классами
Управление фокусом
Изменения типа HTM LDocu ment
Свойства кодировки
Пользовательские атрибуты данных
Вставка разметки
Метод scroll lnto View( )
Фирменные расширения
Режим документа
Свойство children
Метод contains( )
Вставка разметки
Прокрутка
Глава 12 Опирается на две предыдущие главы, объясняя, как с DOM Level 2 и 3 расширяет DOM с помощью дополнительных свойств, методов и объектов:
DOM Level 2 и 3
Изменения DOM
ХМ L- пространства имен
Другие изменения
Стили
Доступ к стилям элементов
Работа с таблицами стилей
Размеры элементов
Обход
Тип Nodelterator
Тип Tree Walker
Диапазоны
Диапазоны в DOM
Диапазоны в Internet Explorer 8 и более ранних версий
Глава 13 Объясняет природу событий в JavaScript, где они зародились, поддержки старых версий, и, как dom переопределяет обработку событий, устройств, таких как Wii и iPhone:
События
Распространение событий
Всплытие событий
Перехват событий
Распространение DО М-событий
Обработчики событий
HTML-обработчики событий
Обработчики событий DOM Level 0
Обработчики событий DO М Level 2
Обработчики событий в Internet Explorer
Кросс браузерные обработчики событий
Объект event
Объект event в DOM
Объект event в Internet Explorer
Кроссбраузерный объект event
Типы событий
События пользовательского интерфейса
События изменения фокуса
События мыши и колесика мыши
События клавиатуры и редактирования текста
События композиции
События изменения DOМ -структуры
События HTML5
События устройств
События касаний и жестов
Память и быстродействие
Делегирование событий
Удаление обработчиков событий
Имитация событий
Имитация DOМ событий
Имитация событий в Internet Explorer
Глава 14 Показывает использование JavaScript для обработки формы взаимодействия с обходом ограничения браузера:
Работа с формами
Общие сведения о формах
Отправка данных формы
Сброс формы
Поля форм
Работа с текстовыми полями
Выделение текста
Фильтрация ввода
Автоматический переход по нажатию клавиши табуляции
API проверки ограничений в HTML5
Работа со сп исками
Выбор элементов списка
Добавление элементов в список
Удаление элементов списка
Перемещение и переупорядочение элементов списка
Сериализация форм
Редактирование форматированного текста
Атрибут contenteditable
Работа с форматированным текстом
Выделение форматированного текста
Форматированный текст в формах
Главе 15 Обсуждаются тег <canvas > и как его использовать для создания «на лету» графики.
Рисование на холсте
Основы работы с элементом <canvas >
Двухмерный контекст
Заливка и рисование контура
Рисование прямоугольников
Рисование путей
Рисование текста
Преобразования
Рисование изображений
Тени
Градиенты
Узоры
Работа с данными изображений
Композиция изображений
WebGL
Типизированные массивы
Контекст WebGL
Поддержка
Глава 16 Вводит в JavaScript API с изменениями, как это определено в спецификации HTML5.
Передача сообщений между документами
Встроенная поддержка перетаскивания
События перетаскивания
Пользовательские целевые элементы для данных
Объект data Transfer
Свойства dropEffect и effectAl lowed
Возможность перетаскивания
Дополнительные члены
Элементы для медиафайлов
Свойства
События
Пользовательские плееры
Распознавание кодеков
Тип Audio
Управление состоянием журнала
Глава 17 Рассматриваются как браузеры обрабатывают ошибки в коде JavaScript и представлены несколько способов обработки ошибок:
Обработка ошибок и отладка
Уведомления об ошибках
Internet Explorer
Firefox
Safari
Opera
Chrome
Обработка ошибок
Инструкция try-catch
Генерирование ошибок
Событие error
Стратегии обработки ошибок
Идентификация потенциальных источников ошибок
Различение критичных и некритичных ошибок
Протоколирование ошибок на сервере
Приемы отладки
Вывод сообщений на консоль
Вывод сообщений на страницу
Генерирование ошибок
Частые ошибки Internet Explorer
Операция прервана
Недопустимый символ
Член группы не найден
Неизвестная ошибка выполнения
Синтаксическая ошибка
Не удается найти указанный ресурс
Глава 18 Представлены особенности JavaScript используемыми для чтения и манипулирования расширяемым языком разметки (XML) данных:
XML в JavaScript
Поддержка XML DOM в браузерах
DOM Level 2 Core
Тип DOMParser
Тип XM LSerializer
XML в In ternet Explorer 8 и более ранних версий
Кроссбраузерная обработка XML
Поддержка X Path в браузерах
DOM Level 3 XPath
XPath в Internet Explorer
Кроссбраузерная обработка XPath
Поддержка XSLT в браузерах
XSLT в Internet Explorer
Тип XS LTProcessor
Кроссбраузерные ХSLТ-преобразования
Глава 19 Рассматриваются ecmascript для XML (E4X) — расширение к JavaScript, который предназначен для упрощения работы с XML.
ECMAScript для XML
Типы Е4Х
Тип XML
Тип XM LList
Тип Namespace
Тип QName
Общие принципы использования
Доступ к атрибутам
Другие типы узлов
Запросы
Конструирование и выполнение ХМL-кода
Параметры синтаксического анализа и сериализации
Пространства имен
Другие изменения
Полная поддержка Е4Х
Глава 20 Вводится Формат данных json в качестве альтернатива в XML.
JSON
Синтаксис
Простые значения
Объекты
Массивы
Синтаксический анализ и сериализация
Объект JSON.»
Параметры сериализации
Параметры синтаксического анализа
Глава 21 Рассматривает общие методы AJAX в том числе использование объекта xmlhttprequest и кросс-происхождения ресурса общего доступа (cors) для кросс-доменный Аякс.
Ajax и Comet
Объект XM LHttpRequest
Использование объекта XHR
Заголовки НТТР
Запросы GET
Запросы POST
XM LHttp Request LEVEL 2
Тип Form Data
Тайм-ауты
Метод overri deMimeT ype( )
События хода обмена данными
Событие load
Событие progress
Обмен ресурсами с запросом происхождения
CORS в Internet Explorer
CORS в других браузерах
Предварительные запросы
Запросы с учетными данными
Кроссбраузерный CORS
Альтернативные методики кроссдоменноrо взаимодействия
Проверка связи с помощью изображения
JSONP
Comet
События, посылаемые сервером
Веб-сокеты
SSE или веб-сокеты ?
Безопасность
Глава 22 Ныряет в какую-то более сложного JavaScript-структуры, включая функции карринг, частичное применение функции, и динамические функции:
Более сложные приемы
Расширенное применение функций
Безопасное распознавание типов
Безопасные для областей видимости конструкторы
Отложенная загрузка функций
Связывание функций
Каррирование функций
Защищенные от изменений объекты
Нерасширяемые объекты
Запечатанные объекты
Замороженные объекты
Расширенные возможности работы с таймерами
Повторяющиеся таймеры
Управление процессами
Регулирование функций
Пользовательские события
Перетаскивание
Исправленное перетаскивание
Добавление пользовательских событий
Глава 23 Дается описание, определения, когда приложение находится в автономном режиме и предоставляет различные методы для хранения данных на клиентской машине.
Автономный режим и клиентское хранилище
Распознавание автономного режима
Кэш приложений
Хранилище данных
Сооkiе-файлы
Пользовательские данные в Internet Explorer
Веб-хранилище
In dexed DB
Глава 24 Исследуются подходы к работе с JavaScript в корпоративной среде. Методы улучшения ремонтопригодности обсуждаются, в том числе способы кодирования, форматирования, и общие подходы к программированию:
Наилучшие методики
Удобство сопровождения кода
Какой код удобно сопровождать?
Конвенции кодирования
Слабая связанность
Принципы программирования
Быстродействие
Область видимости
Выбор оптимального подхода
Сокращение количества инструкций
Оптимизация взаимодействия с DOM
Развертывание
Процесс сборки
Проверка кода
Сжатие
Глава 25 Вводит API-Интерфейсы создание плавных анимации, работа с файлами, работа JavaScript в фоне:
requ estAnimationFrame ()
Ранние способы создания анимации
Проблемы с интервалами
mozRequestAnimati onFrame
webkitRequestAnimationFrame и msRequestAnimationFrame
Page VisiЬility API
Geolocation API
File API
Тип FileReader
Частичное чтение
URL-aдpeca объектов
Чтение файлов и перетаскивание
Отправка файлов с помощью объекта XHR
Web Timing API
Рабочие веб-потоки
Использование рабочего веб- потока
Гл обальная область видимости рабочего веб- потока
Подключение других сценариев
Будущее рабочих веб- потоков
Приложения:
Приложение А. ECMAScript Harmony
Общие изменения
Константы
Блочная и другие области видимости
Функции
Прочие и распределенные аргументы
Предлагаемые по умолчанию значения аргументов
Генераторы
Массивы и другие структуры
Итераторы
Абстракции массивов
Присваивание с деструктуризацией
Новые типы объектов
Прокси-объекты
Функции-прокси
Типы Мар и Set
Тип WeakMap
Тип StructT ype
Тип ArrayType
Классы
Закрытые члены
Методы чтения и записи свойств
Наследование
Внешние модули
Приложение Б. Строгий режим
Включение строгого режима
Переменные
Объекты
Функции
Функция eval ()
Идентификаторы eval и argu me
p
ts
Преобразование значения this
Приложение В. JаvаSсriрt-библиотеки
Библиотеки общего назначения
YUI
Prototype
Dojo Toolkit
MooTools
jQuery
MochiKit
U nderscore.js
Библиотеки для интернет-приложений
Backbone.js
Rico
qooxdoo
Библиотеки для анимации и эффектов
script. acu lo.us
moo.fx
Lightbox
Библиотеки для криптографии
JavaScript MD5
JavaScrypt
Приложение Г. JаvаSсriрt- инструменты
Средства проверки кода
JSLint
JSHi nt
JavaScript Lint
Средства сокращения объема кода
JSMin
Dojo ShrinkSafe
YUI Compressor
Средства модульного тестирования
JsUnit
YUI Test
Dojo Object Harness (DOH)
qUnit
Генераторы документации .
JsDoc Toolkit
YUI Doc
Aj axDoc
Среды безопасного выполнения кода
ADsafe
Caja
Издание ориентировано на три группы читателей: опытных разработчиков, знакомых с объектно-ориентированным программированием, тех кто ведет обучение javascript как он сопоставляется с традиционными объектно-ориентированными языками, такими как Java и C++.
Разработчиков веб-приложений, пытающихся улучшить юзабилити своих сайтов и веб-приложений.
Начинающих разработчиков JavaScript с целью лучше понять язык.
Знакомство со следующими родственными технологиями является большим подспорьем, что эту книгу для вас будет легко освоить: Java, PHP, ASP.Net , HTML и CSS в XML.
Книга не нацелена на новичков, которые не имеют базовых знаний ООП. Этим читателям следует обращаться к книгам начального уровня по программированию.
ISBN 978-5-496-01325-3 (РУ)
ISBN 978-1118026694 (EN)
Ссылка