. |
Современный JavaScript для нетерпеливых.
Хорстман К.
М.: 2021. —
288
с.
Язык JavaScript стремительно набирает популярность:
он подцерживается всеми браузерами и все активнее проникает в серверное
программирование. Однако даже у опытных программистов, знакомых с такими
языками, как Java, C#, С или C++, могут возникнуть затруднения при переходе на
JavaScript. Эта книга призвана облегчить их задачу. В отличие от большинства
изданий, посвященных JavaScript, акцент здесь ставится не на переход от прежних
версий к современной, а на освоение профессиональными веб-разработчиками нового
для них языка программирования. От самых азов автор постепенно переходит к
рассмотрению сложных вопросов; темы начального, среднего и высокого уровня
помечены в тексте специальными значками. Изучив книгу, читатель сумеет написать
следующую версию своего приложения на современном JavaScript.
Формат:
pdf
Размер:
3,1 Мб
Смотреть, скачать:
yandex.disk
Оригинал на английском языке:
Modern JavaScript for the Impatient. Horstmann C.S.
(2020, 343p.)
Содержание
Предисловие 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
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. Числа и даты Ю2
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 ПО
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
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. Интернационализация ш
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
Глава 13. Введение в TypeScript 249
13.1. Аннотации типов 250
13.2. Запуск TypeScript 251
13.3. Терминология, относящаяся ктипам 252
13.4. Примитивные типы 253
13.5. Составные типы 254
13.6. Выведение типа 256
13.7. Подтипы 259
13.7.1. Правило подстановки 259
13.7.2. Факультативные и лишние свойства 261
13.7.3. Вариантность типов массива и объекта 262
13.8. Классы 263
13.8.1. Объявление классов 263
13.8.2. Тип экземпляра класса 264
13.8.3. Статический тип класса 265
13.9. Структурная типизация 266
13.10. Интерфейсы 267
13.11. Индексные свойства 268
13.12. Более сложные параметры функций 269
13.12.1. Факультативные, подразумеваемые по умолчанию и прочие параметры 269
13.12.2. Деструктуризация параметров 270
13.12.3. Вариантность типа функции 271
13.12.4. Перегрузка 273
13.13. Обобщенное программирование 275
13.13.1. Обобщенные классы и типы 275
13.13.2. Обобщенные функции 276
13.13.3. Ограничения на типы 277
13.13.4. Стирание 278
13.13.5. Вариантность обобщенных типов 279
13.13.6. Условные типы 280
13.13.7. Отображаемые типы 281
Упражнения 282
Предметный указатель 285
О том, как читать книги в форматах
pdf,
djvu
- см. раздел "Программы; архиваторы; форматы
pdf, djvu
и др."
|