^
Начало
Установить закладку
+ Настройки
14 | 16 | 18 | 20 | 22 | 24
Ширина текста:
50% | 60% | 70% | 80% | 90% | 100%
Шрифт:
Цвет текста:
Установить
Цвет фона:
Установить
Сбросить настройки
Марейн Хавербеке
Выразительный 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
Запуск
Показ тем
Обновление сервера
Обнаружение изменений
Упражнения
Сохранение состояния на диск
Обнуление полей комментариев
Улучшенные шаблоны
А кто без скрипта?
