Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Современный JavaScript для нетерпеливых

Покупка
Артикул: 784694.02.99
Доступ онлайн
1 099 ₽
В корзину
Язык JavaScript стремительно набирает популярность: он поддерживается всеми браузерами и все активнее проникает в серверное программирование. Однако даже у опытных программистов, знакомых с такими языками, как Java, C#, C или C++, могут возникнуть затруднения при переходе на JavaScript. Эта книга призвана облегчить их задачу. В отличие от большинства изданий, посвященных JavaScript, акцент здесь ставится не на переход от прежних версий к современной, а на освоение профессиональными веб-разработчиками нового для них языка программирования. От самых азов автор постепенно переходит к рассмотрению сложных вопросов; темы начального, среднего и высокого уровня помечены в тексте специальными значками. Изучив книгу, читатель сумеет написать следующую версию своего приложения на современном JavaScript.
Хорстманн, К. С. Современный JavaScript для нетерпеливых : практическое руководство / К. С. Хорстманн ; пер. с англ. А. А. Слинкина. - Москва : ДМК Пресс, 2021. - 288 с. - ISBN 978-5-97060-177-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/2109482 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Кэй С. Хорстман

Современный 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

Доступ онлайн
1 099 ₽
В корзину