Зарегистрироваться
Восстановить пароль
FAQ по входу

Скотт Адам Д., Макдоналд Мэтью, Пауэрс Шелли. JavaScript. Рецепты для разработчиков

  • Файл формата djvu
  • размером 5,01 МБ
Скотт Адам Д., Макдоналд Мэтью, Пауэрс Шелли. JavaScript. Рецепты для разработчиков
3-е изд. — Пер. с англ. Е. Сандицкая. — СПб.: Питер, 2023. — 528 с.: ил. — (Бестселлеры O’Reilly). — ISBN 978-5-4461-2001-7.
Зачем изобретать велосипед, сталкиваясь с очередной проблемой в JavaScript? Здесь вы найдете множество рецептов кода для типовых задач программирования, а также познакомитесь c методами создания приложений, работающих в любом браузере. Адаптируемые примеры кода можно вставить практически в любой проект, а заодно поглубже изучить JS.
С помощью этой книги вы научитесь настраивать эффективную среду разработки с редактором кода, статическим анализатором и тестовым сервером; станете лучше понимать функции JS, включая замыкания и генераторы; узнаете, как использовать классы и наследование — основные концепции ООП; освоите работу с мультимедиа, включая аудио, видео и SVG; научитесь управлять HTML и CSS; благодаря Node.js сможете использовать JavaScript где угодно; узнаете, как получать доступ к удаленным данным и управлять ими с помощью технологий REST, GraphQL и Fetch; освоите популярную среду разработки приложений Express; научитесь выполнять асинхронные операции с промисами, async/await и веб-процессами.
Предисловие
Аудитория этой книги
Структура издания
Условные обозначения
Примеры кода
Благодарности
От издательства
Язык JavaScript
Настройка среды разработки
Выбираем редактор кода
Использование консоли разработки в браузере
Выполнение фрагментов кода в консоли разработчика
Использование строгого режима для выявления типичных ошибок
Вставка блоков HTML с помощью сокращенных команд Emmet
Установка менеджера пакетов npm (с Node.js)
Загрузка пакета с помощью npm
Обновление пакета с помощью npm
Настройка локального тестового сервера
Соблюдение стандартов кодирования с помощью статического анализатора
Согласованное оформление кода с помощью форматировщика
Эксперименты в интерактивной среде JavaScript
Строки и регулярные выражения
Проверка того, что строка существует и она не пустая
Преобразование числового значения в форматированную строку
Вставка специальных символов
Использование эмодзи
Использование шаблонных литералов для более наглядной конкатенации строк
Сравнение строк без учета регистра
Проверка того, содержит ли строка заданную подстроку
Замена всех вхождений строки
Замена тегов HTML на именованные сущности
Использование регулярных выражений для создания шаблонов при замене строк
Извлечение списка из строки
Поиск по шаблону
Удаление пробелов в начале и в конце строки
Замена первой буквы строки на прописную
Валидация адреса электронной почты
Числа
Генерирование случайных чисел
Генерирование криптографически надежных случайных чисел
Округление до заданного десятичного разряда
Сохранение точности в дробных числах
Преобразование строки в число
Преобразование десятичных значений в шестнадцатеричные
Преобразование градусов в радианы
Вычисление длины дуги окружности
Манипуляции с очень большими целыми числами в формате BigInt
Даты
Получение текущих даты и времени
Преобразование строки в дату
Добавляем дни к дате
Сравнение дат и проверка двух дат на равенство
Вычисление времени, прошедшего между двумя датами
Представление даты в виде форматированной строки
Массивы
Проверка того, является ли объект массивом
Перебор всех элементов массива
Проверка равенства двух массивов
Разбиение массива на отдельные переменные
Передача массива в функцию, которая принимает список значений
Клонирование массива
Слияние двух массивов
Копирование части массива, выбранной по положению элемента
Извлечение из массива элементов, удовлетворяющих заданному условию
Очистка массива
Удаление дубликатов
Сведение двумерного массива
Точный поиск элементов массива
Поиск элементов массива, удовлетворяющих заданному критерию
Удаление и замена элементов массива
Сортировка массива объектов по заданному свойству
Преобразование элементов массива
Использование всех элементов массива в одном вычислении
Проверка содержимого массива
Построение коллекции недублирующихся значений
Создание коллекции элементов, индексированной по ключу
Функции
Передача одной функции в другую в качестве аргумента
Использование стрелочных функций
Предоставление значения параметра по умолчанию
Создание функции, принимающей неограниченное число аргументов
Использование именованных параметров функции
Создание функции с сохранением состояния посредством замыкания
Создание функции-генератора, которая возвращает несколько значений
Уменьшение избыточности за счет частичного применения
Фиксация this посредством привязки функций
Реализация рекурсивного алгоритма
Объекты
Проверка того, относится ли объект к заданному типу
Объединение данных с помощью объектных литералов
Проверка существования свойства у объекта
Перебор всех свойств объекта
Проверка того, является ли объект пустым
Объединение свойств двух объектов
Выбор способа определения свойств
Запрет любых изменений объекта
Перехват и изменение объектов с помощью прокси-объектов
Клонирование объектов
Создание глубокой копии объекта
Создание абсолютно уникальных ключей для свойств объекта
Создание перечислений с помощью Symbol
Классы
Создание класса для многократного использования
Добавление в класс новых свойств
Улучшенное строковое представление класса
Создание произвольного класса посредством шаблона «Конструктор
Создание возможности для объединения методов класса в цепочку
Создание статических методов класса
Создание объектов посредством статических методов
Наследование функционала другого класса
Объединение классов JavaScript в модули
Асинхронное программирование
Обновление страницы в цикле
Использование функции, которая возвращает промис
Замена асинхронной функции с обратным вызовом на промис
Конкурентное выполнение нескольких промисов
Ожидание выполнения промиса с помощью await и async
Создание асинхронной функции-генератора
Выполнение фоновых задач с помощью Web Worker
Поддержка сообщений о ходе выполнения задач в Web Worker
Ошибки и тестирование
Обнаружение и обезвреживание ошибок
Перехват различных типов ошибок
Перехват асинхронных ошибок
Обнаружение необработанных ошибок
Выдача обычной ошибки
Выдача нестандартных ошибок
Написание модульных тестов для кода
Отслеживание покрытия кода тестами
JavaScript в браузере
Инструментарий браузера
Отладка кода JavaScript
Анализ производительности во время выполнения кода
Обнаружение неиспользуемого кода JavaScript
Выдача наилучших рекомендаций посредством Lighthouse
Работа с HTML
Доступ к определенному элементу, поиск его родительского и дочерних элементов
Перебор результатов, полученных от querySelectorAll(), с помощью forEach()
Привязка к элементу действия в ответ на щелчок
Поиск всех элементов с данным атрибутом
Выбор всех элементов определенного типа
Исследование дочерних элементов с помощью Selectors API
Изменение класса элемента
Присвоение элементу атрибута style
Создание абзаца и вставка в него текста
Вставка нового элемента в определенной точке DOM
Проверка того, установлен ли флажок
Вставка значений в таблицу HTML
Удаление строк из таблицы HTML
Скрытие частей страницы
Создание окон, всплывающих по наведению указателя мыши
Валидация данных формы
Выделение ошибочно заполненных полей форм и реализация специальных возможностей
Создание автоматически обновляемой области, доступной на специализированных устройствах
Получение удаленных данных
Запрос удаленных данных с помощью Fetch API
Использование метода XMLHttpRequest
Отправка данных формы
Заполнение списка выбора данными, полученными с сервера
Синтаксический анализ данных, полученных в формате JSON
Получение и синтаксический анализ данных в формате XML
Передача двоичных данных и загрузка изображения
Обмен HTTP cookies между несколькими доменами
Двунаправленный обмен данными между клиентом и сервером посредством WebSockets
Длинный опрос удаленного источника данных
Сохранение данных
Сохранение информации в cookies
Хранение данных на стороне клиента с помощью sessionStorage
Создание хранилища данных на стороне клиента на основе localStorage
Сохранение больших объемов данных на стороне клиента с помощью IndexedDB
Упрощение IndexedDB с помощью библиотеки
Работа с мультимедиа
JavaScript для SVG
Доступ к SVG из скрипта веб-страницы
Построение столбчатой диаграммы в формате SVG с помощью библиотеки D
Интеграция элементов SVG и Canvas в HTML
Выполнение процедуры в начале воспроизведения аудиофайла
Управление отображением видео с помощью элемента video и JavaScript
Создание веб-приложений
Создание пакетов JavaScript
JavaScript для мобильного интернета
Создание прогрессивного веб-приложения
Тестирование и профилирование прогрессивных веб-приложений
Получение текущего URL
Перенаправление на другой URL
Копирование текста в буфер обмена
Вывод на стационарном компьютере таких же уведомлений, как на мобильном устройстве
Открытие в браузере файла с локального устройства
Расширение возможностей с помощью Web Components
Выбор фреймворка для разработки на стороне клиента
NODE.JS
Основы Node
Управление версиями Node с помощью Node Version Manager
Ответ на простой запрос браузера
Интерактивная проверка кода Node с помощью REPL
Чтение данных из файла и запись данных в файл
Получение данных из терминала
Получение пути к выполняемому скрипту
Работа с таймерами и циклом событий Node
Модули Node
Поиск нужного модуля Node через npm
Преобразование библиотеки в модуль Node
Перенос кода в модульную среду
Создание устанавливаемого модуля Node
Создание мультиплатформенных библиотек
Тестирование модулей
Управление экосистемой Node
Использование переменных среды
Что делать с адом обратных вызовов
Доступ к функциям командной строки из приложений Node
Передача аргументов в командную строку
Создание утилиты командной строки с подсказкой с помощью Commander
Обеспечение работоспособности экземпляра Node
Отслеживание изменений и перезапуск приложения в процессе разработки на локальном компьютере
Многократное выполнение задач по расписанию
Тестирование производительности и возможностей приложения WebSockets
Удаленные данные
Получение удаленных данных
Анализ экранных данных
Доступ к данным в формате JSON посредством RESTful API
Построение веб-приложений с помощью Express
Использование Express для ответов на запросы
Использование Express-Generator
Задача маршрутизации
Работа с OAuth
Аутентификация пользователей в OAuth 2 с помощью Passport.js
Обработка форматированных данных
Построение RESTful API
Построение API GraphQL
Об авторах
Иллюстрация на обложке
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация