JavaScript. Полное руководство: Справочник по самому популярному языку программирования. 7 изд

Оглавление⌄
Оглавление ....5 Содержание ....6 Об авторе ....19 Об иллюстрации на обложке ....19 Предисловие ....20 Соглашения, используемые в этой книге ....20 Использование примеров кода ....21 Благодарности ....21 Ждем ваших отзывов! ....22 ГЛАВА 1 ....23 Введение в JavaScript ....23 1.1. Исследование JavaScript ....25 1.2. Программа "Hello World" ....27 1.3. Тур по JavaScript ....27 1.4. Пример: гистограмма частоты использования символов ....34 1.5. Резюме ....37 Лексическая структура ....39 2.1. Текст программы JavaScript ....39 2.2. Комментарии ....40 2.3. Литералы ....40 2.4. Идентификаторы и зарезервированные слова ....40 2.4.1. Зарезервированные слова ....41 2.5. Unicode ....42 2.5.1. Управляющие последовательности Unicode ....42 2.6. Необязательные точки с запятой ....43 2.7. Резюме ....45 Типы, значения и переменные ....47 3.1. Обзор и определения ....47 3.2. Числа ....49 3.2.1. Целочисленные литералы ....50 3.2.2. Числовые литералы с плавающей точкой ....50 3.2.3. Арифметические действия в JavaScript ....51 3.2.4. Двоичное представление чисел с плавающей точкой и ошибки округления ....54 3.2.5. Целые числа произвольной точности с использованием Bigint ....55 3.2.6. Дата и время ....56 3.3. Текст ....56 3.3.1. Строковые литералы ....57 3.3.2. Управляющие последовательности в строковых литералах ....58 3.3.3. Работа со строками ....60 3.3.4. Шаблонные литералы ....61 3.3.5. Сопоставление с шаблонами ....63 3.4. Булевские значения ....63 3.6. Тип Symbol ....66 3.7. Глобальный объект ....67 3.8. Неизменяемые элементарные значения и изменяемые объектные ссылки ....68 3.9. Преобразования типов ....70 3.9.1. Преобразования и равенство ....72 3.9.2. Явные преобразования ....72 3.9.3. Преобразования объектов в элементарные значения ....74 3.10. Объявление и присваивание переменных ....78 3,10.1. Объявление с помощью let и const ....79 В.10.2. Объявление переменных с помощью var ....81 3.10.3. Деструктурирующее присваивание ....83 3.11. Резюме ....86 ГЛАВА 4 ....87 Выражения и операции ....87 4.1. Первичные выражения ....87 4.2. Инициализаторы объектов и массивов ....88 4.3. Выражения определений функций ....89 4.4. Выражения доступа к свойствам ....90 4.4.1- Условный доступ к свойствам ....91 4.5. Выражения вызова ....92 4.5.1. Условный вызов ....93 4.6. Выражения создания объектов ....94 47. Обзор операций ....95 4.7.1. Количество операндов ....97 4.7.2. Типы операндов и результата ....98 4.7.3. Побочные эффекты операций ....98 4 7.4. Приоритеты операций ....99 4.7.5. Ассоциативность операций ....100 4.7.6. Порядок вычисления ....100 4.8. Арифметические выражения ....101 4.8.1. Операция + ....102 4.8.2. Унарные арифметические операции ....103 4.8.3. Побитовые операции ....104 4.9. Выражения отношений ....106 4.9.1. Операции равенства и неравенства ....106 4.9.2. Операции сравнения ....109 4.10. Логические выражения ....112 4.10.1. Логическое И (&&) ....112 4.10.2. Логическое ИЛИ (| |) ....113 4.10.3. Логическое НЕ (!) ....114 4.11. Выражения присваивания ....115 4.11.1. Присваивание с действием ....115 4.12. Вычисление выражений ....116 4.12.1. eval () ....117 4.12.2. eval () в глобальном контексте ....118 4.12.3. eval () в строгом режиме ....119 4.13. Смешанные операции ....120 4.13.1. Условная операция (?:) ....120 4.13.2. Операция выбора первого определенного операнда (??) ....120 4.13.3. Операция typeof ....122 4.13.4. Операция delete ....122 4.13.5. Операция await ....124 4.13.6. Операция void ....124 4.13.7. Операция "запятая" ....124 4.14. Резюме ....125 Операторы ....127 5.1. Операторы-выражения ....128 5.2. Составные и пустые операторы ....129 5.3. Условные операторы ....130 5.3.1. if ....130 5.4. Циклы ....135 5.4.1. while ....135 5.5. Переходы ....142 5.5.1. Помеченные операторы ....143 5.6. Смешанные операторы ....151 5.7. Объявления ....154 5.8. Резюме по операторам JavaScript ....157 Объекты ....159 6.1. Введение в объекты ....159 6.2. Создание объектов ....160 6.3. Запрашивание и установка свойств ....163 6.3.1. Объекты как ассоциативные массивы ....164 6.3.2. Наследование ....166 б.З.З. Ошибки доступа к свойствам ....167 6.4. Удаление свойств ....168 6.5. Проверка свойств ....169 6.6. Перечисление свойств ....171 6.6.1. Порядок перечисления свойств ....172 6.7. Расширение объектов ....172 6.8. Сериализация объектов ....174 6.9. Методы Object ....174 6.9.3. Метод valueOf () ....176 6.9.4. Метод toJSONO ....176 6.10. Расширенный синтаксис объектных литералов ....177 6.10.1. Сокращенная запись свойств ....177 6.10.2. Вычисляемые имена свойств ....177 6.10.3. Символы в качестве имен свойств ....178 6.10.4. Операция распространения ....179 6.10.5. Сокращенная запись методов ....180 6.10.6. Методы получения и установки свойств ....181 6.11. Резюме ....184 Массивы ....185 7.1. Создание массивов ....186 7.1.1. Литералы типа массивов ....186 7.1.2. Операция распространения ....187 7.1.3. Конструктор Array () ....187 7.2. Чтение и запись элементов массива ....189 7.3. Разреженные массивы ....190 7.4. Длина массива ....191 7.5. Добавление и удаление элементов массива ....192 7.6. Итерация по массивам ....193 7.7. Многомерные массивы ....194 7.8. Методы массивов ....195 ^•8.1. Методы итераторов для массивов ....195 7.8.2. Выравнивание массивов с помощью flat() и flatMap() ....200 7.8.3. Присоединение массивов с помощью concatO ....200 7.8.4. Организация стеков и очередей с помощью push(), pop (), shift () и unshift () ....201 7.8.5. Работа с подмассивами с помощью ....202 7.8.6. Методы поиска и сортировки массивов ....204 7.8.7- Преобразования массивов в строки ....207 ^•8.8. Статические функции массивов ....207 7.9. Объекты, похожие на массивы ....208 7.10. Строки как массивы ....210 7.11. Резюме ....210 Функции ....211 8.1. Определение функций ....212 8.1.1. Объявления функций ....212 8.1.4. Вложенные функции ....216 8.2. Вызов функций ....216 8.2.2. Вызов метода ....218 8.2.3. Вызов конструктора ....221 8.2.4. Косвенный вызов функции ....222 8.2.5. Неявный вызов функции ....222 8.3. Аргументы и параметры функций ....223 8.3.1. Необязательные параметры и стандартные значения ....223 g.3.2. Параметры остатка и списки аргументов переменной длины ....225 8.3.3. Объект Arguments ....225 8.3.4. Операция распространения для вызовов функций ....226 8.3.5. Деструктуризация аргументов функции в параметры ....227 8.3.6. Типы аргументов ....230 8.4. Функции как значения ....231 3.4.1. Определение собственных свойств функций ....233 8.5. Функции как пространства имен ....234 8.6. Замыкания ....235 8.7. Свойства( методы и конструктор функций ....240 8.7.1. Свойство length ....240 8.7.5. Метод bind () ....242 8.7.6. Метод toString () ....243 8.7.7. Конструктор Function () ....243 8.8. Функциональное программирование ....244 8.8.1- Обработка массивов с помощью функций ....245 8.8.2. Функции высшего порядка ....246 8.8.3. Функции с частичным применением ....247 8.8.4. Мемоизация ....249 8.9. Резюме ....250 Классы ....251 9.1. Классы и прототипы ....252 9.2. Классы и конструкторы ....254 9,2-1- Конструкторы, идентичность классов и операция instanceof ....257 9.3. Классы с ключевым словом class ....259 9.3.1. Статические методы ....262 9.3.2. Методы получения, установки и других видов ....262 9,3.3. Открытые, закрытые и статические поля ....263 9.3.4. Пример: класс для представления комплексных чисел ....265 9.4. Добавление методов в существующие классы ....266 9-5. Подклассы ....267 9.5.1. Подклассы и прототипы ....268 9.5.2. Создание подклассов с использованием extends и super ....269 9.5.3. Делегирование вместо наследования ....272 9.5.4. Иерархии классов и абстрактные классы ....274 9.6. Резюме ....279 Модули ....281 10.1. Модули, использующие классы, объекты и замыкания ....282 Автоматизация модульности на основе замыканий ....283 10.2. Модули в Node ....284 10.2.1 Экспортирование в Node ....285 10.2.2. Импортирование в Node ....286 10.2-3- Модули в стиле Node для веб-сети ....287 10.3. Модули в ES6 ....287 10.3.1. Экспортирование в ES6 ....288 10.3.2. Импортирование в ES6 ....289 Ю.З.З. Импортирование и экспортирование с переименованием ....291 10.3.4. Повторное экспортирование ....292 10.3.5. Модули JavaScript для веб-сети ....294 10.3.6. Динамическое импортирование с помощью import О ....296 10.4. Резюме ....298 Стандартная ....299 библиотека ....299 JavaScript ....299 11.1. Множества и отображения ....300 11.1.1. Класс Set ....300 11.1.2. Класс Мар ....303 11.1.3. WeakMap и WeakSet ....306 11.2. Типизированные массивы и двоичные данные ....307 11.2.3. Использование типизированных массивов ....310 11.2.4. Методы и свойства типизированных массивов ....311 11.2.5. DataView и порядок байтов ....313 11.3. Сопоставление с образцом с помощью регулярных выражений ....314 11.3.1- Определение регулярных выражений ....315 11.3.2. Строковые методы для сопоставления с образцом ....326 11.3.3. Класс RegExp ....331 <11.4. Дата и время ....335 11.4.1. Отметки времени ....336 11.4.2. Арифметические действия с датами ....337 11.4.3. Форматирование и разбор строк с датами ....338 11.5. Классы ошибок ....339 11.6. Сериализация и разбор данных в формате JS0N ....340 11.6.1. Настройка JSON ....342 11.7. API-интерфейс интернационализации ....344 11.7.1. Форматирование чисел ....344 11.7.2. Форматирование даты и времени ....346 11.7.3. Сравнение строк ....349 H.8. API-интерфейс Console ....351 11.8.1. Форматирование вывода с помощью API-интерфейса Console ....354 11.9. API-интерфейсы URL ....354 11.9.1. Унаследованные функции для работы с URL ....357 11.10. Таймеры ....358 11.11. Резюме ....359 Итераторы и генераторы ....361 12.1. Особенности работы итераторов ....362 12.2. Реализация итерируемых объектов ....363 12.2.1. "Закрытие" итератора: метод return () ....366 12.3. Генераторы ....367 12.3.1. Примеры генераторов ....368 12.3.2. yield* и рекурсивные генераторы ....370 12.4. Расширенные возможности генераторов ....371 12.4.1. Возвращаемое значение генераторной функции ....371 12.4.2. Значение выражения yield ....372 12.4.3. Методы return () и throw () генератора ....373 12.4.4. Финальное замечание о генераторах ....374 12.5. Резюме ....374 Асинхронный ....375 JavaScript ....375 13.1. Асинхронное программирование ....376 с использованием обратных вызовов ....376 13.1.1. Таймеры ....376 0,1.2. События ....377 13.1.3. События сети ....377 13.1.4. Обратные вызовы и события в Node ....379 13.2. Объекты Promise ....380 13.2.1. Использование объектов Promise ....382 13.2.2. Выстраивание объектов Promise в цепочки ....385 13.2.3. Разрешение объектов Promise ....388 13.2.4. Дополнительные сведения ....390 об объектах Promise и ошибках ....390 13.2.5. Параллельное выполнение нескольких ....396 асинхронных операций с помощью Promise ....396 13,2.6. Создание объектов Promise ....397 13.2.7. Последовательное выполнение нескольких асинхронных операций с помощью Promise ....401 13.3. async и await ....404 13.3.1. Выражения await ....404 13.3.2. Функции async ....404 13.3.3. Ожидание множества объектов Promise ....405 13.3.4. Детали реализации ....406 13.4. Асинхронная итерация ....406 13.4.2. Асинхронные итераторы ....408 <13.4.3. Асинхронные генераторы ....409 П.4.4. Реализация асинхронных итераторов ....409 13.5. Резюме ....414 Метапрограммирование ....415 14.1. Атрибуты свойств ....416 14.2. Расширяемость объектов ....420 14.3. Атрибут prototype ....422 14.4. Хорошо известные объекты Symbol ....423 14.4.6. Объекты Symbol для сопоставления с образцом ....429 14.5. Теги шаблонов ....432 14.6. API-интерфейс Reflect ....434 14.7. Объекты Proxy ....436 14.8. Резюме ....443 JavaScript в веб-браузерах ....445 15.1. Основы программирования для веб-сети ....448 15.1.1. Код JavaScript в HTML-дескрипторах ....448 15.1.2, Объектная модель документа ....451 15.1.3. Глобальный объект в веб-браузерах ....453 15.1.4. Сценарии разделяют пространство имен ....45415,1.5. Выполнение программ JavaScript ....45515.1.6. Ввод и вывод программы ....45815.1.7. Ошибки в программе ....45915.1.8. Модель безопасности веб-сети ....46015.2. События ....46415.2.1. Категории событий ....46615.2.2. Регистрация обработчиков событий ....46715.2.3. Вызов обработчиков событий ....47115.2-4. Распространение событий ....47315.2.5. Отмена событий ....47415.2.6. Отправка специальных событий ....47415.3. Работа с документами в сценариях ....47515.3.1. Выбор элементов документа ....47615.3.2. Структура и обход документа ....47915.3.3. Атрибуты ....48215.3.4. Содержимое элементов ....48415.3.5. Создание, вставка и удаление узлов ....48615.3.6. Пример: генерация оглавления ....48715.4. Работа с CSS в сценариях ....49015.4.1. Классы CSS ....49015.4.4. Работа с таблицами стилей в сценариях ....49415.4.5. Анимация и события CSS ....49515.5. Геометрия и прокрутка документов ....49715.5.1. Координаты документа и координаты окна просмотра ....49715.5.2. Запрашивание геометрии элемента ....49915-5.3. Определение элемента в точке ....49915.5.4. Прокрутка ....50015.5.5. Размер окна просмотра, размер содержимого и позиция прокрутки ....50115.6. Веб-компоненты ....50215.6.1. Использование веб-компонентов ....50315.6.2. Шаблоны HTML ....50515.6.3. Специальные элементы ....50615.6.4. Теневая модель DOM ....50915.6.5. Пример: веб-компонент <search-box> ....51115.7. SVG: масштабируемая векторная графика ....51615.7.1. SVG в HTML ....51615.7.2. Работа с SVG в сценариях ....51815.7.3. Создание изображений SVG с помощью JavaScript ....51915.8. Графика в <canvas> ....52215.8.1. Пути и многоугольники ....524О® ....52615.8.2. Размеры и координаты холста ....52715.8.3. Графические атрибуты ....52815.8.4. Операции рисования холста ....53315.8.5. Трансформации системы координат ....53815.8.6. Отсечение ....54215.8.7. Манипулирование пикселями ....54315.9. API-интерфейсы Audio ....54515.9.1. Конструктор Audio () ....54515.9.2. API-интерфейс WebAudio ....54615.10. Местоположение, навигация и хронология ....54715.10.1. Загрузка новых документов ....54815.10.2. Хронология просмотра ....54915.10.3. Управление хронологией с помощью событий "hashchange" ....55015.10.4. Управление хронологией с помощью метода pushState () ....55115.11. Взаимодействие с сетью ....55715.11.1. fetch () ....55715.11.2. События, посылаемые сервером ....56815.11.3. Веб-сокеты ....57215.12. Хранилище ....57415.12.2. Cookie-наборы ....57815.12.3. IndexedDB ....58215.13. Потоки воркеров и обмен сообщениями ....58715.13.1. Объекты воркеров ....58815.13.2. Глобальный объект в воркерах ....58915.13.3. Импортирование кода в воркер ....59015.13.4. Модель выполнения воркеров ....59115.13.6. Обмен сообщениями между разными ....594источниками с помощью postMessage () ....59415.14. Пример: множество Мандельброта ....59515.15. Резюме и рекомендации ....608<br> относительно дальнейшего чтения ....60815.15.1. HTML и CSS ....60915.15.2. Производительность ....61015.15.3. Безопасность ....61015.15.4. WebAssembly ....61015.15.5. Дополнительные средства объектов Document и Window ....61115.15.6. События ....61215.15.7. Прогрессивные веб-приложения и служебные воркеры ....61315.15.8. API-интерфейсы мобильных устройств ....61415.15.9. API-интерфейсы для работы с двоичными данными ....61515.15.10. API-интерфейсы для работы с медиаданными ....61515.15.11. API-интерфейсы для работы с криптографией и связанные с ними API-интерфейсы ....615JavaScript на стороне сервера с использованием ....617Node ....61716.1. Основы программирования в Node ....61816.1.1. Вывод на консоль ....61816.1.2. Аргументы командной строки и переменные среды ....61916.1.3. Жизненный цикл программы ....62016.1.4. Модули Node ....62116.1.5. Диспетчер пакетов Node ....62216.2. Среда Node асинхронна по умолчанию ....62316.3. Буферы ....62716.5. Потоки данных ....63116.5.1. Каналы ....63416.5.2. Асинхронная итерация ....63616.5.3. Запись в потоки и обработка противодавления ....63716.5.4. Чтение потоков с помощью событий ....64016.6. Информация о процессе, центральном процессоре и операционной системе ....64316.7. Работа с файлами ....64516.7.1. Пути, файловые дескрипторы и объекты FileHandle ....64616.7.2. Чтение из файлов ....647 16.7.3. Запись в файлы ....65016.7.4. Файловые операции ....65216.7.5. Метаданные файлов ....65316.7.6. Работа с каталогами ....65416.8. Клиенты и серверы HTTP ....65616.9. Сетевые серверы и клиенты, не использующие HTTP ....66116.10. Работа с дочерними процессами ....66416.10.2. ехес () иexecFile() ....666 16.10.3. spawn () ....66716.10.4. fork () ....66816.11. Потоки воркеров ....66916.11.1. Создание воркеров и передача сообщений ....67116.11.2. Среда выполнения воркеров ....67316.11.3. Каналы связи и объекты MessagePort ....67416.11.4. Передача объектов MessagePort и типизированных массивов ....67516.11.5. Разделение типизированных массивов между потоками ....67716.12. Резюме ....679Инструменты и расширения JavaScript ....68117.1. Линтинг с помощью ESLint ....68217.2. Форматирование кода JavaScript с помощью Prettier ....68317.3. Модульное тестирование с помощью Jest ....68417.4. Управление пакетами с помощью npm ....68717.5. Пакетирование кода ....68917.6. Транспиляция с помощью Babel ....69117.7. JSX: выражения разметки в JavaScript ....69217.8. Контроль типов с помощью Flow ....69717.8.1. Установка и запуск Flow ....69917.8.2. Использование аннотаций типов ....70017.8.3. Типы классов ....70317.8.4. Типы объектов ....70417.8.5. Псевдонимы типов ....70517.8.6. Типы массивов ....70517.8.7. Другие параметризированные типы ....70717.8.8. Типы, допускающие только чтение ....70917.8.9. Типы функций ....70917.8.10. Типы объединений ....71017.8.11. Перечислимые типы и различающие объединения ....71117.9. Резюме ....713Предметный указатель ....714 Содержание ....721
Описание
Коротко и по делу о том, что важно знать про javascript.
В течение почти 25 лет этот бестселлер служил исчерпывающим руководством для программистов на JavaScript, и новое издание книги полностью обновлено с целью охвата версии 2020 языка JavaScript. JavaScript — это язык программирования для веб-сети, который в настоящее время используется большим количеством разработчиков программного обеспечения, чем любой другой язык программирования. Повсюду в книге вы будете находить яркие и привлекательные примеры кода. Вам также предлагаются новые главы, в которых раскрываются классы, модули, итераторы, генераторы, объекты Promise и async/await.
Книга предназначена для программистов, желающих изучить язык JavaScript, и для разработчиков веб-приложений, которые стремятся повысить уровень своих знаний и мастерства.
Если материал оказался полезен — сохраните страницу.
Поделиться
Частые вопросы
Можно ли скачать «JavaScript. Полное руководство: Справочник по самому популярному языку программирования. 7 изд» бесплатно?
Да, «JavaScript. Полное руководство: Справочник по самому популярному языку программирования. 7 изд» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 15,5 МБ.
Кто автор и когда вышла книга?
автор — Флэнаган Дэвид, издательство Диалектика, год выпуска 2021, 732 страниц.
О чём книга «JavaScript. Полное руководство: Справочник по самому популярному языку программирования. 7 изд»?
JavaScript — это язык программирования для веб-сети, который в настоящее время используется большим количеством разработчиков программного обеспечения, чем любой другой язык программирования.