Современный JavaScript для нетерпеливых
Покупка
Тематика:
Программирование на Java
Издательство:
ДМК Пресс
Автор:
Хорстманн Кей С.
Перевод:
Слинкин Алексей Александрович
Год издания: 2021
Кол-во страниц: 288
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-97060-177-8
Артикул: 784694.02.99
Язык JavaScript стремительно набирает популярность: он поддерживается всеми браузерами и все активнее проникает в серверное программирование. Однако даже у опытных программистов, знакомых с такими языками, как Java, C#, C или C++, могут возникнуть затруднения при переходе на JavaScript. Эта книга призвана облегчить их задачу.
В отличие от большинства изданий, посвященных JavaScript, акцент здесь ставится не на переход от прежних версий к современной, а на освоение профессиональными веб-разработчиками нового для них языка программирования. От самых азов автор постепенно переходит к рассмотрению сложных вопросов; темы начального, среднего и высокого уровня помечены в тексте специальными значками.
Изучив книгу, читатель сумеет написать следующую версию своего приложения на современном JavaScript.
- Полная коллекция по информатике и вычислительной технике
- Веб-разработка
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование
- Программирование на Java
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Кэй С. Хорстман Современный JavaScript для нетерпеливых
Modern JavaScript for the Impatient Cay S. Horstmann Boston • Columbus • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sydney • Hong Kong • Seoul • Singapore • Taipei • Tokyo
Современный JavaScript для нетерпеливых Кэй С. Хорстман Москва, 2021
УДК 004.42Javascript ББК 32.972 Х79 Хорстман К. С. Х79 Современный JavaScript для нетерпеливых / пер. с англ. А. А. Слинкина. – М.: ДМК Пресс, 2021. – 288 с.: ил. ISBN 978-5-97060-177-8 Язык JavaScript стремительно набирает популярность: он поддерживается всеми браузерами и все активнее проникает в серверное программирование. Однако даже у опытных программистов, знакомых с такими языками, как Java, C#, C или C++, могут возникнуть затруднения при переходе на JavaScript. Эта книга призвана облегчить их задачу. В отличие от большинства изданий, посвященных JavaScript, акцент здесь ставится не на переход от прежних версий к современной, а на освоение профессиональными веб-разработчиками нового для них языка программирования. От самых азов автор постепенно переходит к рассмотрению сложных вопросов; темы начального, среднего и высокого уровня помечены в тексте специальными значками. Изучив книгу, читатель сумеет написать следующую версию своего приложения на современном JavaScript. УДК 004.42Javascript ББК 32.972 Authorized translation from the English language edition, entitled MODERN JAVASCRIPT FOR THE IMPATIENT, 1st Edition by CAY HORSTMANN, published by Pearson Education, Inc, publishing as Addison-Wesley Professional. Russian language edition copyright © 2021 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в ка кой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-0-13-650214-2 (англ.) © Pearson Education, Inc., 2020 ISBN 978-5-97060-177-8 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2021
Посвящается Чи – самому важному человеку в моей жизни
Содержание Предисловие ............................................................................................12 Об авторе ...................................................................................................16 От издательства ......................................................................................17 Глава 1. Значения и переменные ....................................................18 1.1. Запуск JavaScript .....................................................................................18 1.2. Типы и оператор typeof .........................................................................20 1.3. Комментарии .........................................................................................21 1.4. Объявления переменных ......................................................................22 1.5. Идентификаторы ...................................................................................23 1.6. Числа .......................................................................................................24 1.7. Арифметические операторы .................................................................25 1.8. Булевы значения ....................................................................................27 1.9. null и undefined.......................................................................................27 1.10. Строковые литералы ............................................................................28 1.11. Шаблонные литералы ..........................................................................30 1.12. Объекты ................................................................................................31 1.13. Синтаксис объектного литерала .........................................................32 1.14. Массивы ................................................................................................33 1.15. JSON.......................................................................................................34 1.16. Деструктуризация ................................................................................35 1.17. Еще о деструктуризации ......................................................................37 1.17.1. Дополнительные сведения о деструктуризации объектов .........37 1.17.2. Объявление прочих .......................................................................38 1.17.3. Значения по умолчанию ...............................................................38 Упражнения ..................................................................................................39 Глава 2. Управляющие конструкции ...............................................40 2.1. Выражения и предложения ...................................................................40 2.2. Вставка точки с запятой ........................................................................41 2.3. Ветвления ...............................................................................................44 2.4. Булевость ................................................................................................46 2.5. Сравнение ...............................................................................................46 2.6. Смешанное сравнение ...........................................................................48 2.7. Логические операторы ...........................................................................49 2.8. Предложение switch ...............................................................................51
Содержание 7 2.9. Циклы while и do ....................................................................................51 2.10. Циклы for ..............................................................................................52 2.10.1. Классический цикл for ..................................................................52 2.10.2. Цикл for of .....................................................................................53 2.10.3. Цикл for in ......................................................................................54 2.11. Break и continue ....................................................................................55 2.12. Перехват исключений ..........................................................................57 Упражнения ..................................................................................................58 Глава 3. Функции и функциональное программирование ....60 3.1. Объявление функций .............................................................................60 3.2. Функции высшего порядка ...................................................................61 3.3. Функциональные литералы ..................................................................62 3.4. Стрелочные функции .............................................................................63 3.5. Функциональная обработка массива ....................................................64 3.6. Замыкания ..............................................................................................65 3.7. Крепкие объекты ....................................................................................67 3.8. Строгий режим .......................................................................................69 3.9. Проверка типов аргументов ..................................................................70 3.10. Передача большего или меньшего числа аргументов .......................71 3.11. Аргументы по умолчанию ...................................................................72 3.12. Прочие параметры и оператор расширения ......................................73 3.13. Имитация именованных аргументов с помощью деструктуризации .........................................................................................74 3.14. Поднятие ...............................................................................................75 3.15. Возбуждение исключений ...................................................................77 3.16. Перехват исключений ..........................................................................78 3.17. Ветвь finally ...........................................................................................79 Упражнения ..................................................................................................80 Глава 4. Объектно-ориентированное программирование ....83 4.1. Методы ....................................................................................................83 4.2. Прототипы ..............................................................................................84 4.3. Конструкторы .........................................................................................87 4.4. Синтаксис классов .................................................................................88 4.5. Акцессоры чтения и записи ..................................................................89 4.6. Поля экземпляра и закрытые методы ..................................................90 4.7. Статические методы и поля ..................................................................91 4.8. Подклассы ...............................................................................................92 4.9. Переопределение методов ....................................................................94 4.10. Конструирование подкласса................................................................95 4.11. Классовые выражения .........................................................................95
Содержание 4.12. Ссылка this ............................................................................................96 Упражнения ..................................................................................................99 Глава 5. Числа и даты .........................................................................102 5.1. Числовые литералы..............................................................................102 5.2. Форматирование чисел .......................................................................103 5.3. Разбор чисел .........................................................................................103 5.4. Функции и константы в классе Number..............................................104 5.5. Математические функции и константы .............................................105 5.6. Большие целые .....................................................................................106 5.7. Конструирование дат ...........................................................................107 5.8. Функции и методы класса Date ...........................................................110 5.9. Форматирование дат ...........................................................................111 Упражнения ................................................................................................111 Глава 6. Строки и регулярные выражения .................................114 6.1. Преобразование между строками и последовательностями кодовых точек .............................................................................................114 6.2. Подстроки .............................................................................................115 6.3. Прочие методы класса String ..............................................................116 6.4. Тегированные шаблонные литералы .................................................119 6.5. Простые шаблонные литералы ...........................................................120 6.6. Регулярные выражения .......................................................................121 6.7. Литеральные регулярные выражения ................................................124 6.8. Флаги .....................................................................................................125 6.9. Регулярные выражения и Юникод ......................................................126 6.10. Методы класса RegExp .......................................................................127 6.11. Группы ................................................................................................128 6.12. Методы класса String для работы с регулярными выражениями ...130 6.13. Еще о методе replace ..........................................................................132 6.14. Экзотические возможности ..............................................................133 Упражнения ................................................................................................134 Глава 7. Массивы и коллекции ........................................................137 7.1. Конструирование массива ...................................................................137 7.2. Свойство length и индексные свойства ..............................................138 7.3. Удаление и добавление элементов .....................................................139
Содержание 9 7.4. Прочие методы изменения массива ...................................................141 7.5. Порождение элементов .......................................................................143 7.6. Поиск элементов ..................................................................................144 7.7. Перебор всех элементов .......................................................................145 7.8. Разреженные массивы .........................................................................147 7.9. Редукция ...............................................................................................148 7.10. Отображения ......................................................................................151 7.11. Множества ...........................................................................................153 7.12. Слабые отображения и множества ....................................................154 7.13. Типизированные массивы .................................................................155 7.14. Буферные массивы .............................................................................157 Упражнения ................................................................................................158 Глава 8. Интернационализация ......................................................161 8.1. Понятие локали ....................................................................................161 8.2. Задание локали ....................................................................................162 8.3. Форматирование чисел .......................................................................164 8.4. Локализация даты и времени .............................................................166 8.4.1. Форматирование объектов Date ..................................................166 8.4.2. Диапазоны .....................................................................................167 8.4.3. Относительное время ...................................................................167 8.4.4. Форматирование с точностью до отдельных частей ..................168 8.5. Порядок следования ............................................................................168 8.6. Другие методы класса String, чувствительные к локали ...................170 8.7. Правила образования множественного числа и списков ..................171 8.8. Различные средства, относящиеся к локалям ...................................173 Упражнения ................................................................................................174 Глава 9. Асинхронное программирование .................................176 9.1. Конкурентные задачи в JavaScript ......................................................176 9.2. Создание обещаний .............................................................................179 9.3. Немедленно улаживаемые обещания ................................................181 9.4. Получение результата обещания ........................................................182 9.5. Сцепление обещаний ..........................................................................182 9.6. Обработка отвергнутых обещаний .....................................................184 9.7. Выполнение нескольких обещаний ....................................................185 9.8. Гонка нескольких обещаний ...............................................................186 9.9. Асинхронные функции ........................................................................187 9.10. Асинхронно возвращаемые значения ..............................................189 9.11. Конкурентное ожидание ...................................................................191 9.12. Исключения в асинхронных функциях ............................................191 Упражнения ................................................................................................192
Содержание Глава 10. Модули ..................................................................................196 10.1. Понятие модуля..................................................................................196 10.2. Модули в ECMAScript .........................................................................197 10.3. Импорт по умолчанию .......................................................................197 10.4. Именованный импорт .......................................................................198 10.5. Динамический импорт ......................................................................199 10.6. Экспорт ...............................................................................................200 10.6.1. Именованный экспорт ................................................................200 10.6.2. Экспорт по умолчанию ...............................................................201 10.6.3. Экспортируемые средства – это переменные ...........................202 10.6.4. Реэкспорт .....................................................................................202 10.7. Упаковка модулей ...............................................................................203 Упражнения ................................................................................................204 Глава 11. Метапрограммирование ................................................207 11.1. Символы .............................................................................................207 11.2. Настройка с помощью символьных свойств ....................................208 11.2.1. Настройка метода toString .........................................................209 11.2.2. Управление преобразованием типов ........................................210 11.2.3. Символ Species ............................................................................210 11.3. Атрибуты свойств ...............................................................................211 11.4. Перечисление свойств .......................................................................213 11.5. Проверка наличия свойства ..............................................................215 11.6. Защита объектов ................................................................................215 11.7. Создание и обновление объектов .....................................................216 11.8. Доступ к прототипу и его обновление ..............................................216 11.9. Клонирование объектов ....................................................................217 11.10. Свойства-функции ...........................................................................220 11.11. Привязка аргументов и вызов методов ..........................................221 11.12. Прокси ...............................................................................................222 11.13. Класс Reflect ......................................................................................224 11.14. Инварианты прокси .........................................................................226 Упражнения ................................................................................................228 Глава 12. Итераторы и генераторы ...............................................232 12.1. Итерируемые значения .....................................................................232 12.2. Реализация итерируемого объекта ...................................................233 12.3. Закрываемые итераторы ...................................................................235 12.4. Генераторы .........................................................................................236 12.5. Вложенное yield ..................................................................................238 12.6. Генераторы как потребители ............................................................240 12.7. Генераторы и асинхронная обработка ..............................................241 12.8. Асинхронные генераторы и итераторы ...........................................243 Упражнения ................................................................................................246