Учебник JavaScript. В трех частях. От азов до продвинутого уровня.

Учебник в трех книгах.

Илья Кaнтop "Современный учебник JavaScript" Изначально электронное (ebook), 2015 год, 3 книги, (634 стр, 389 стр, 438 стр.8,50 мб. pdf +8,23 мб. pdf +9,16 мб. pdf )

Представленый учебник JavaScript состоит из 3 частей: основы, работа со страницей-как создавать элементы страници и придавать им функциональность, создание WEB - компонентов страницы и разработка под современные браузеры. включающий в себя DOM, замыкания, ООП, тонкости и много практических задач. Автор предлагает руководство с собственными наработками по языку программирования JavaScript. Удачно или нет, решать вам.

Оглавление книги:

Введение в JavaScript

Справочники и спецификации
Редакторы для кода
Консоль разработчика

Основы JavaScript

Привет, мир!
Внешние скрипты, порядок исполнения
Структура кода
Современный стандарт, «use strict»
Переменные
Правильный выбор имени переменной
Шесть типов данных, typeof
Основные операторы
Операторы сравнения и логические значения
Побитовые операторы
Взаимодействие с пользователем: alert prompt confirm
Условные операторы: if, ?'
Логические операторы
Преобразование типов для примитивов
Циклы while, for
Конструкция switch
Функции
Функциональные выражения
Рекурсия, стек
Именованные функциональные выражения
Всё вместе: особенности JavaScript

Качество кода

Отладка в браузере Chrome
Советы по стилю кода
Как писать неподдерживаемый код?
Автоматические тесты при помощи chai и mocha
Структуры данных
Введение в методы и свойства
Числа
Строки
Объекты как ассоциативные массивы
Объекты: перебор свойств
Объекты: передача по ссылке
Массивы с числовыми индексами
Массивы: методы
Массив: перебирающие методы
Псевдомассив аргументов «arguments»
Дата и Время
Замыкания, область видимости
Глобальный объект
Замыкания, функции изнутри
[[Scope]] для new Function
Локальные переменные для объекта
Модули через замыкания
Управление памятью BjavaScript
Устаревшая конструкция «with»
Методы объектов и контекст вызова
Методы объектов, this
Преобразование объектов: toString и valueOf
Создание объектов через «new»
Дескрипторы, геттеры и сеттеры свойств
Статические и фабричные методы
Явное указание this: «call», «apply»
Привязка контекста и карринг «bind»
Функции-обёртки, декораторы

ООП в функциональном стиле

Введение
Внутренний и внешний интерфейс
Геттеры и сеттеры
Функциональное наследование

ООП в прототипном стиле

Прототип объекта
Свойство F.prototype и создание объектов через
Встроенные «классы» в JavaScript
Свои классы на прототипах
Наследование классов BjavaScript
Проверка класса: «instanceof»
Свои ошибки, наследование от Error
Примеси

Документ и объекты страницы

Окружение: DOM, ВОМ и JS
Дерево DOM
Работа с DOM из консоли
Навигация по DOM-элементам
Поиск: getElement* и querySelector* и не только
Внутреннее устройство поисковых методов
Свойства узлов: тип, тег и содержимое
Современный DOM: полифиллы
Атрибуты и DOM-свойства
Методы contains и compareDocumentPosition
Добавление и удаление узлов
Мультивставка: insertAdjacentHTML и DocumentFragment
Метод document.write
Стили, getComputedStyle
Размеры и прокрутка элементов
Размеры и прокрутка страницы
Координаты в окне
Координаты в документе
Итого

Основы работы с событиями

Введение в браузерные события
Порядок обработки событий
Объект события
Всплытие и перехват
Делегирование событий
Приём проектирования «поведение»
Действия браузера по умолчанию
Генерация событий на элементах

События в деталях

Мышь: клики, кнопка, координаты
Мышь: отмена выделения, невыделяемые элементы
Мышь: движение mouseover/out, mouseenter/leave
Мышь: Dragfn’Drop
Мышь: Drag'n’Drop более глубоко
Мышь: колёсико, событие wheel
Мышь: IE8-, исправление события
Прокрутка: событие scroll
Клавиатура: keyup, keydown, keypress
Загрузка документа: DOMContentLoaded, load, beforeunload, unload
Загрузка скриптов, картинок, фреймов: onload и onerror

Формы, элементы управления

Навигация и свойства элементов формы
Фокусировка: focus/blur
Изменение: change, input, cut, copy, paste
Формы: отправка, событие и метод submit

Создание графических компонентов

Введение
Графические компоненты
Вёрстка графических компонентов
Шаблонизатор LoDash
Коллбэки и события на компонентах
Что изучать дальше

Веб-компоненты: взгляд в будущее

С высоты орбитального полёта
Свои элементы: Custom Elements
Shadow DOM
Шаблоны <template>
Стили и селекторы
Импорты
Веб-компонент в сборе AJAX и COMET
Введение в AJAX и COMET
Node.JS для решения задач
Основы XMLHttpRequest
XMLHttpRequest POST, формы и кодировка
XMLHttpRequest: кросс-доменные запросы
XMLHttpRequest: индикация прогресса
XMLHttpRequest: возобновляемая закачка
COMET с XMLHttpRequest: длинные опросы
WebSocket
Протокол JSONP
Server Side Events — события с сервера
IFRAME для AJAX и COMET
Атака CSRF
Таблица транспортов и их возможностей Анимация
Кривые Безье
CSS-анимации
JS-Анимация

Оптимизация

Введение
Как работают сжиматели JavaScript
Улучшаем сжатие кода
Утечки памяти
Утечки памяти при использовании jQuery
Очистка памяти при removeChild/innerHTML
GCC: продвинутые оптимизации
GCC: статическая проверка типов
GCC: интеграция с Google Closure Library

Окна и Фреймы

Открытие окон и методы window
Общение между окнами и фреймами
Кросс-доменные ограничения и их обход
Общение окон с разных доменов: postMessage
Привлечение внимания к окну
Атака Clickjacking и защита от неё

CSS для JavaScript-разработчика

О чём пойдёт речь
Единицы измерения: «рх». «ет», «гет» и другие
Все значения свойства «display»
Свойство «float»
Свойство «position»
Центрирование горизонтальное и вертикальное
Свойства «font-size» и «line-height»
Свойство wti it e-space
Свойство «outline»
Свойство «Ьох-sizing»
Свойство «margin»
Лишнее место под IMG
Свойство «overflow»
Особенности свойства «height» в %
Знаете ли вы селекторы?
CSS-спрайты
Правила форматирования CSS Сундучок с инструментами
Полезные расширения Firefox и Chrome
Скриптуемый отладочный прокси Fiddler
IE HTTP Analyzer

Регулярные выражения

Паттерны и флаги
Методы RegExp и String
Классы и спецсимволы
Наборы и диапазоны [...] Квантификаторы +, *, ? и {п}
Жадные и ленивые квантификаторы
Скобочные группы
Обратные ссылки: \п и $п
Альтернация (или) |
Начало строки Л и конец $
Многострочный режим, флаг «т»
Предпросмотр (неготово)
Чёрная дыра бэктрекинга
О всякой всячине
Эволюция шаблонных систем для JavaScript
Книги по JS, HTML/CSS и не только
Асинхронное выполнение: setlmmediate
Позднее связывание «bindLate»
Sublime Text: шпаргалка
Выделение: Range, TextRange и Selection
Применяем ООП: Drag'n'Drop++
Куки, documentcookie
Inti: интернационализация в JavaScript
Особенности регулярных выражений Bjavascript

Скачать 3 книги бесплатно24.3 мб. zip(pdf)
Уроки JavaScript. Видео