Выразительный JavaScript.
- О программировании. ⇢
- Почему язык имеет значение. ⇢
- Что такое JavaScript? ⇢
- Код, и что с ним делать. ⇢
- 1. Величины, типы и операторы. ⇢
- Величины. ⇢
- Числа. ⇢
- Арифметика. ⇢
- Специальные числа. ⇢
- Строки. ⇢
- Унарные операторы. ⇢
- Булевские величины. ⇢
- Сравнения. ⇢
- Неопределённые значения. ⇢
- Автоматическое преобразование типов. ⇢
- Короткое вычисление логических операторов. ⇢
- Итог. ⇢
- 2. Структура программ. ⇢
- Выражения и инструкции. ⇢
- Переменные. ⇢
- Переменные как щупальца. ⇢
- Ключевые и зарезервированные слова. ⇢
- Окружение. ⇢
- Функции. ⇢
- Диалог alert. ⇢
- Функция console.log. ⇢
- Возвращаемые значения. ⇢
- prompt и confirm. ⇢
- Управление порядком выполнения программы. ⇢
- Условное выполнение. ⇢
- Циклы while и do. ⇢
- Отступы в коде. ⇢
- Циклы for. ⇢
- Выход из цикла. ⇢
- Короткое обновление переменных. ⇢
- Работаем с переменными при помощи switch. ⇢
- Регистр имён. ⇢
- Комментарии. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Треугольник в цикле. ⇢
- FizzBuzz. ⇢
- Шахматная доска. ⇢
- 3. Функции. ⇢
- Определение функции. ⇢
- Параметры и область видимости. ⇢
- Вложенные области видимости. ⇢
- Функции как значения. ⇢
- Объявление функций. ⇢
- Стек вызовов. ⇢
- Необязательные аргументы. ⇢
- Замыкания. ⇢
- Рекурсия. ⇢
- Выращиваем функции. ⇢
- Функции и побочные эффекты. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Минимум. ⇢
- Рекурсия. ⇢
- Считаем бобы. ⇢
- 4. Структуры данных: объекты и массивы. ⇢
- Белка-оборотень. ⇢
- Наборы данных. ⇢
- Свойства. ⇢
- Методы. ⇢
- Объекты. ⇢
- Изменчивость (Mutability). ⇢
- Журнал оборотня. ⇢
- Вычисляем корреляцию. ⇢
- Объекты как карты (map). ⇢
- Итоговый анализ. ⇢
- Дальнейшая массивология. ⇢
- Строки и их свойства. ⇢
- Объект arguments. ⇢
- Объект Math. ⇢
- Объект global. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Сумма диапазона. ⇢
- Обращаем вспять массив. ⇢
- Список. ⇢
- Глубокое сравнение. ⇢
- 5. Функции высшего порядка. ⇢
- Абстракции. ⇢
- Абстрагируем обход массива. ⇢
- Функции высшего порядка. ⇢
- Передача аргументов. ⇢
- JSON. ⇢
- Фильтруем массив. ⇢
- Преобразования при помощи map. ⇢
- Суммирование при помощи reduce. ⇢
- Компонуемость. ⇢
- Цена. ⇢
- Пра-пра-пра-пра-пра-… ⇢
- Связывание. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Свёртка. ⇢
- Разница в возрасте матерей и их детей. ⇢
- Историческая ожидаемая продолжительность жизни. ⇢
- Every и some. ⇢
- 6. Тайная жизнь объектов. ⇢
- История. ⇢
- Методы. ⇢
- Прототипы. ⇢
- Конструкторы. ⇢
- Перегрузка унаследованных свойств. ⇢
- Нежелательное взаимодействие прототипов. ⇢
- Объекты без прототипов. ⇢
- Полиморфизм. ⇢
- Форматируем таблицу. ⇢
- Геттеры и сеттеры. ⇢
- Наследование. ⇢
- Оператор instanceof. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Векторный тип. ⇢
- Ещё одна ячейка. ⇢
- Интерфейс к последовательностям. ⇢
- 7. Проект: электронная жизнь. ⇢
- Определение. ⇢
- Изображаем пространство. ⇢
- Программный интерфейс существ. ⇢
- Мировой объект. ⇢
- this и его область видимости. ⇢
- Оживляем мир. ⇢
- Оно двигается. ⇢
- Больше форм жизни. ⇢
- Более жизненная ситуация. ⇢
- Обработчики действий. ⇢
- Населяем мир. ⇢
- Вдохнём жизнь. ⇢
- Упражнения. ⇢
- Искусственный идиот. ⇢
- Хищники. ⇢
- 8. Поиск и обработка ошибок. ⇢
- Ошибки программистов. ⇢
- Строгий режим (strict mode). ⇢
- Тестирование. ⇢
- Отладка (debugging). ⇢
- Распространение ошибок. ⇢
- Исключения. ⇢
- Подчищаем за исключениями. ⇢
- Выборочный отлов исключений. ⇢
- Утверждения (Assertions). ⇢
- Итог. ⇢
- Упражнения. ⇢
- Повтор. ⇢
- Запертая коробка. ⇢
- 9. Регулярные выражения. ⇢
- Создаём регулярное выражение. ⇢
- Проверяем на совпадения. ⇢
- Ищем набор символов. ⇢
- Повторяем части шаблона. ⇢
- Группировка подвыражений. ⇢
- Совпадения и группы. ⇢
- Тип даты. ⇢
- Границы слова и строки. ⇢
- Шаблоны с выбором. ⇢
- Механизм поиска. ⇢
- Откаты. ⇢
- Метод replace. ⇢
- Жадность. ⇢
- Динамическое создание объектов RegExp. ⇢
- Метод search. ⇢
- Свойство lastIndex. ⇢
- Циклы по вхождениям. ⇢
- Разбор INI файлы. ⇢
- Международные символы. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Регулярный гольф. ⇢
- Кавычки в тексте. ⇢
- Снова числа. ⇢
- 10. Модули. ⇢
- Зачем нужны модули. ⇢
- Пространство имён. ⇢
- Повторное использование. ⇢
- Устранение связей (Decoupling). ⇢
- Использование функций в качестве пространств имён. ⇢
- Объекты в качестве интерфейсов. ⇢
- Отсоединяемся от глобальной области видимости. ⇢
- Выполняем данные как код. ⇢
- Require. ⇢
- Медленная загрузка модулей. ⇢
- Разработка интерфейса. ⇢
- Предсказуемость. ⇢
- Компонуемость. ⇢
- Многослойные интерфейсы. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Названия месяцев. ⇢
- Вернёмся к электронной жизни. ⇢
- Круговые зависимости. ⇢
- 11. Проект: язык программирования. ⇢
- Разбор (parsing). ⇢
- Структура синтаксического дерева. ⇢
- Интерпретатор. ⇢
- Специальные формы. ⇢
- Окружение. ⇢
- Функции. ⇢
- Компиляция. ⇢
- Мошенничество. ⇢
- Упражнения. ⇢
- Массивы. ⇢
- Замыкания. ⇢
- Комментарии. ⇢
- Чиним область видимости. ⇢
- 12. JavaScript и браузер. ⇢
- Сети и интернет. ⇢
- Веб. ⇢
- HTML. ⇢
- HTML и JavaScript. ⇢
- Песочница. ⇢
- Совместимость и браузерные войны. ⇢
- 13. Document Object Model. ⇢
- Деревья. ⇢
- Стандарт. ⇢
- Обход дерева. ⇢
- Поиск элементов. ⇢
- Меняем документ. ⇢
- Создание узлов. ⇢
- Атрибуты. ⇢
- Расположение элементов (layout). ⇢
- Стили. ⇢
- Каскадные стили. ⇢
- Селекторы запросов. ⇢
- Расположение и анимация. ⇢
- Использование синуса и косинуса для вычисления координат. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Строим таблицу. ⇢
- Элементы по имени тегов. ⇢
- Шляпа кота. ⇢
- 14. Обработка событий. ⇢
- Обработчики событий. ⇢
- События и узлы DOM. ⇢
- Объекты событий. ⇢
- Распространение (propagation). ⇢
- Действия по умолчанию. ⇢
- События от кнопок клавиатуры. ⇢
- Кнопки мыши. ⇢
- Движение мыши. ⇢
- События прокрутки. ⇢
- События, связанные с фокусом. ⇢
- Событие загрузки. ⇢
- График выполнения скрипта. ⇢
- Установка таймеров. ⇢
- Устранение помех (debouncing). ⇢
- Итог. ⇢
- Упражнения. ⇢
- Цензура клавиатуры. ⇢
- След мыши. ⇢
- Закладки. ⇢
- 15. Проект: игра-платформер. ⇢
- Игра. ⇢
- Технология. ⇢
- Уровни. ⇢
- Чтение уровня. ⇢
- Действующие лица (актёры). ⇢
- Бремя инкапсуляции. ⇢
- Рисование. ⇢
- Движение и столкновение. ⇢
- Поиск столкновений на решётке. ⇢
- Актёры и действия. ⇢
- Отслеживание клавиш. ⇢
- Запуск игры. ⇢
- Упражнения. ⇢
- Конец игры. ⇢
- Пауза. ⇢
- 16. Рисование на холсте. ⇢
- SVG. ⇢
- Элемент холста canvas. ⇢
- Заливка и обводка. ⇢
- Пути. ⇢
- Кривые. ⇢
- Рисуем круговую диаграмму. ⇢
- Текст. ⇢
- Изображения. ⇢
- Преобразования. ⇢
- Хранение и очистка преобразований. ⇢
- Назад к игре. ⇢
- Спрайты для нашей игры. ⇢
- Выбор графического интерфейса. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Формы. ⇢
- Круговая диаграмма. ⇢
- Прыгающий мячик. ⇢
- Предварительно рассчитанное отзеркаливание. ⇢
- 17. HTTP. ⇢
- Протокол. ⇢
- Браузер и HTTP. ⇢
- XMLHttpRequest. ⇢
- Отправка запроса. ⇢
- Асинхронные запросы. ⇢
- Получение данных XML. ⇢
- Песочница для HTTP. ⇢
- Абстрагируем запросы. ⇢
- Обещания. ⇢
- Цените HTTP. ⇢
- Безопасность и HTTPS. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Согласование содержания (content negotiation). ⇢
- Ожидание нескольких обещаний. ⇢
- 18. Формы и поля форм. ⇢
- Поля. ⇢
- Фокус. ⇢
- Отключённые поля. ⇢
- Форма в целом. ⇢
- Текстовые поля. ⇢
- Галочки и радиокнопки. ⇢
- Поля select. ⇢
- Файловое поле. ⇢
- Хранение данных на стороне клиента. ⇢
- Итог. ⇢
- Упражнения. ⇢
- Верстак JavaScript. ⇢
- Автодополнение. ⇢
- Игра «Жизнь» Конвея. ⇢
- 19. Проект: Paint. ⇢
- Простая программа рисования. ⇢
- Реализация. ⇢
- Строим DOM. ⇢
- Основание. ⇢
- Выбор инструмента. ⇢
- Цвет и размер кисти. ⇢
- Сохранение. ⇢
- Загрузка картинок. ⇢
- Закругляемся. ⇢
- Упражнения. ⇢
- Прямоугольники. ⇢
- Выбор цвета. ⇢
- Заливка. ⇢
- 20. Node.js. ⇢
- Вступление. ⇢
- Асинхронность. ⇢
- Команда node. ⇢
- Модули. ⇢
- Установка через NPM. ⇢
- Модуль file system. ⇢
- Модуль HTTP. ⇢
- Потоки. ⇢
- Простой файловый сервер. ⇢
- Обработка ошибок. ⇢
- Итог. ⇢
- Упражнения. ⇢
- И снова согласование содержания. ⇢
- Устранение утечек. ⇢
- Создание директорий. ⇢
- Общественное место в сети. ⇢
- 21. Проект: веб-сайт по обмену опытом. ⇢
- Встречи моноциклистов. ⇢
- Дизайн. ⇢
- Длинные запросы. ⇢
- Интерфейс HTTP. ⇢
- Сервер. ⇢
- Маршрутизация. ⇢
- Выдача файлов. ⇢
- Темы как ресурсы. ⇢
- Поддержка длинных запросов. ⇢
- Клиент. ⇢
- HTML. ⇢
- Запуск. ⇢
- Показ тем. ⇢
- Обновление сервера. ⇢
- Обнаружение изменений. ⇢
- Упражнения. ⇢
- Сохранение состояния на диск. ⇢
- Обнуление полей комментариев. ⇢
- Улучшенные шаблоны. ⇢
- А кто без скрипта? ⇢
М. Хавербеке.