JavaScript. Только самое нужное. Осваиваем самый популярный язык программирования
Год издания: 2025
Автор: Юбер Боссо (JackPotte)
Издательство: АСТ
ISBN: 978-5-17-174756-5
Серия: IT для начинающих и опытных
Язык: Русский
Формат: PDF
Качество: Отсканированные страницы + слой распознанного текста
Количество страниц: 194
Описание: Перед вами краткое и емкое руководство по JavaScript, в котором собрана только самая важная информация для быстрого освоения этого крайне востребованного языка программирования. Здесь рассматриваются ключевые концепции, начиная с основ синтаксиса, работы с переменными, типами данных и операторами и заканчивая продвинутыми темами, такими как замыкания , асинхронное программирование, объектно-ориентированный подход и модули.
Отдельное внимание уделяется практическим аспектам: работе с HTML, обработке событий, манипуляциям с DOM, а также инструментам отладки и оптимизации кода. Включены лучшие практики ра з работки, методы работы с JSON и XML, взаимодействие с сервером, а также полезные советы для эффективного кодинга.
Издание идеально подходит как для начинающих программистов, которые хотят быстро освоить JavaScript, так и для опытны х разработчиков , желающих структурировать и обновить свои знания. Четкая структура, лаконичные объяснения и практические примеры делают эту книгу удобным пособием для самостоятельного изучения и повседневного использования.
Примеры страниц (скриншоты)
Оглавление
Введение ............................................................................................................................................... 11
Примечания ........................................................................................................................................................... 11
Динамические типы данных ................................................................................................................... 11
Функциональное программирование .................................................................................................. 11
Объектно-ориентированное программирование ........................................................................... 11
Синтаксис, подобный С .............................................................................................................................. 11
Отношение к Java ......................................................................................................................................... 12
JS-движки ......................................................................................................................................................... 12
Ссылки ...................................................................................................................................................................... 12
Отношение к другим языкам ........................................................................................................... 13
Поведение переменных ............................................................................................................................. 13
Область видимости переменных ........................................................................................................... 13
Классы ............................................................................................................................................................... 14
Первая программа ............................................................................................................................. 15
Упражнения ........................................................................................................................................................... 15
JavaScript внутри HTML ..................................................................................................................... 17
Внутренний и внешний JavaScript ................................................................................................................ 17
Внешний JavaScript ............................................................................................................................................. 18
Атрибут src ...................................................................................................................................................... 18
Атрибут type .................................................................................................................................................... 18
Атрибуты async и defer ............................................................................................................................... 18
Расположение элементов <script> ................................................................................................................. 18
Элемент <noscript> ............................................................................................................................................... 19
JavaScript в ХНТМL-файлах ............................................................................................................................... 19
Ссылки ...................................................................................................................................................................... 20
Обработка событий ............................................................................................................................ 21
Второй пример ...................................................................................................................................................... 22
Инструменты разработки ................................................................................................................. 23
Этап разработки ................................................................................................................................................... 23
Локально установленные инструменты ............................................................................................. 23
Онлайн .............................................................................................................................................................. 23
Валидация ............................................................................................................................................................... 24
Оптимизация, обфускация ....................................................................................................................... 24
Самопроверка ..................................................................................................................................... 25
Введение .................................................................................................................................................................. 25
Синтаксис и семантика ..................................................................................................................................... 25
Преобразование типов (Туре Conversion) ................................................................................................... 26
Циклы (Loops) ........................................................................................................................................................ 27
Полезные советы ................................................................................................................................ 28
Предопределенные функции .......................................................................................................................... 28
alert() .................................................................................................................................................................. 28
log() ..................................................................................................................................................................... 28
print() ................................................................................................................................................................ 28
prompt() ........................................................................................................................................................... 28
write() ................................................................................................................................................................ 28
Стиль написания кода ...................................................................................................................................... 29
Лексическая структура ..................................................................................................................... 30
Сводка ...................................................................................................................................................................... 30
Чувствительность к регистру ........................................................................................................................ 30
Пробельные символы ........................................................................................................................................ 30
Комментарии ........................................................................................................................................................ 31
Однострочные комментарии .................................................................................................................. 31
Многострочные комментарии ............................................................................................................... 31
Точки с запятой .................................................................................................................................................... 31
Литералы ................................................................................................................................................................ 32
Идентификаторы ................................................................................................................................................ 32
Примечания .......................................................................................................................................................... 33
Ссылки ..................................................................................................................................................................... 33
Автоматическая вставка точки с запятой (Automatic Semicolon Insertion, ASI) ...................................................... 34
Примеры ......................................................................................................................................................... 34
См. также ................................................................................................................................................................ 35
Зарезервированные слова ............................................................................................................... 36
Ссылки ..................................................................................................................................................................... 36
Переменные ....................................................................................................................................... 37
Цель .......................................................................................................................................................................... 37
Объявление и инициализация ...................................................................................................................... 37
Ключевое слово let ...................................................................................................................................... 38
Ключевое слово const ................................................................................................................................. 38
Ключевое слово var ..................................................................................................................................... 38
Пропуск объявления .................................................................................................................................. 39
Типы данных ........................................................................................................................................................ 39
Область видимости (Scope) ............................................................................................................................. 39
Блочная область видимости (Block Scope) ......................................................................................... 40
Функциональная область видимости (Function Scope) ...................................................................... 41
Модульная область видимости (Module Scope) ................................................................................ 41
Глобальная область видимости (Global Scope) ................................................................................. 41
Ссьшки ..................................................................................................................................................................... 42
типы даннъIХ ...................................................................................................................................... 43
Введение ................................................................................................................................................................. 43
Категории типов данных ................................................................................................................................. 43
Ссылки ..................................................................................................................................................................... 43
Примитивные типы даннъIХ .......................................................................................................................... 44
Строка (String) ....................................................................................................................................................... 44
Свойства и методы для строк ......................................................................................................................... 45
length ................................................................................................................................................................ 45
concat(text) ...................................................................................................................................................... 45
indexOf(searchText) ...................................................................................................................................... 45
lastlndexOf(searchText) ............................................................................................................................... 45
replace(text, newtext) ................................................................................................................................... 45
slice(start [, end]) ............................................................................................................................................ 45
substr(start [, number of characters]) ...................................................................................................... 46
substring(start [, end]) .................................................................................................................................. 46
toLowerCase() ................................................................................................................................................. 46
toUpperCase() .................................................................................................................................................. 46
Число (Number) .................................................................................................................................................... 46
Свойства и методы для чисел ......................................................................................................................... 4 7
Свойства .......................................................................................................................................................... 48
Math.ceil(number) ......................................................................................................................................... 48
Math.floor(number) ...................................................................................................................................... 48
Math.round(number) .................................................................................................................................... 48
Math.max(number_l, number_2) .............................................................................................................. 48
Math.min(number_l, number_2) ............................................................................................................... 48
Math.random() ................................................................................................................................................ 48
Number.parselnt(string) и Number.parseFloat(string) ................................................................................... 49
Biglnt ......................................................................................................................................................................... 49
Boolean ..................................................................................................................................................................... 49
Undefined ................................................................................................................................................................ 49
Null ............................................................................................................................................................................ 50
Symbol ...................................................................................................................................................................... 50
См. также ................................................................................................................................................................ 50
Ссылки ..................................................................................................................................................................... 50
Объекты .............................................................................................................................................. 51
Создание объекта ................................................................................................................................................ 51
«Литеральная нотация» с использованием фигурных скобок {} ......................................................................... 51
Конструктор ................................................................................................................................................... 51
Object.create() ................................................................................................................................................. 52
Чтение свойства .................................................................................................................................................. 52
Добавление или изменение свойства ......................................................................................................... 52
Удаление свойства .............................................................................................................................................. 53
Объединение объектов ..................................................................................................................................... 53
Функции/методы как часть объекта ........................................................................................................... 54
Массивы .............................................................................................................................................. 55
Создание массива ................................................................................................................................................ 55
Доступ к элементам массива .......................................................................................................................... 56
Различные типы данных ................................................................................................................................. 56
Вложенные массивы .......................................................................................................................................... 56
Свойства и методы ............................................................................................................................................. 57
length ................................................................................................................................................................ 57
concat ................................................................................................................................................................ 57
join и split ........................................................................................................................................................ 57
push ................................................................................................................................................................... 57
рор ..................................................................................................................................................................... 58
unshift ............................................................................................................................................................... 58
shift .................................................................................................................................................................... 58
См. также ................................................................................................................................................................ 58
Даты ..................................................................................................................................................... 59
Конструктор .......................................................................................................................................................... 59
Методы .................................................................................................................................................................... 59
Статические методы ................................................................................................................................... 59
Методы экземпляра .................................................................................................................................... 60
«Как целое число» ....................................................................................................................................... 60
Временные зоны .......................................................................................................................................... 60
Новый API: Temporal .......................................................................................................................................... 61
См. также ................................................................................................................................................................ 61
Регулярные выражения ................................................................................................................................. 62
Метод для строки match ................................................................................................................................... 62
Принятие решений ..................................................................................................................................... 62
Метасимволы ........................................................................................................................................................ 63
Подстановочный знак ............................................................................................................................... 63
Квантификаторы ......................................................................................................................................... 63
Модификаторы ............................................................................................................................................. 63
Классы символов ......................................................................................................................................... 64
Метод для строки replace ................................................................................................................................. 64
Внешние ссылки ................................................................................................................................................. 64
Операторы ......................................................................................................................................................... 65
Конкатенация строк ........................................................................................................................................... 65
Арифметические операторы .......................................................................................................................... 65
Побитовые операторы ....................................................................................................................................... 66
Операторы присваивания ............................................................................................................................... 66
Операторы инкремента и декремента ................................................................................................................. 67
Пре- и пост-инкрементные операторы ................................................................................................................ 67
Операторы сравнения ....................................................................................................................................... 68
Логические операторы ...................................................................................................................................... 69
Другие операторы ............................................................................................................................................... 70
? : ........................................................................................................................................................................ 70
delete ................................................................................................................................................................. 71
new .................................................................................................................................................................... 71
instanceof ......................................................................................................................................................... 71
typeof ................................................................................................................................................................ 72
См. также ................................................................................................................................................................ 72
Управляющие структуры ........................................................................................................................................... 73
if / else ....................................................................................................................................................................... 73
switch ........................................................................................................................................................................ 75
try / catch / finally .................................................................................................................................................. 76
throw ........................................................................................................................................................................ 77
Циклы ...................................................................................................................................................................... 77
См. также ................................................................................................................................................................ 77
Циклы ...................................................................................................................................................................... 78
for (;;) {} .................................................................................................................................................................... 78
Необязательные части синтаксиса .................................................................................................................. 78
Вложенность ................................................................................................................................................. 79
continue / break ..................................................................................................................................................... 79
do {} while О ........................................................................................................................................................... 80
while О {} ................................................................................................................................................................. 80
for (х in Object) {} .................................................................................................................................................. 80
for (х of Array) {} ................................................................................................................................................... 81
for .. in vs. for"of ...................................................................................................................................................... 81
Метод Object.entries() ......................................................................................................................................... 81
Метод Array.forEach() ......................................................................................................................................... 82
См. также ................................................................................................................................................................ 83
<l>ункции .............................................................................................................................................. 84
Объявление ........................................................................................................................................................... 84
Вызов ........................................................................................................................................................................ 85
Поднятие (Hoisting) ..................................................................................................................................... 85
Немедленно вызываемая функция (Immediately Invoked Function) ......................................................... 86
Аргументы ............................................................................................................................................................. 86
Передача по значению (Call-by-value) .................................................................................................. 86
Значения по умолчанию .......................................................................................................................... 88
Переменное количество аргументов ................................................................................................... 88
Возврат (return) .................................................................................................................................................... 90
Стрелочные функции ( =>) ................................................................................................................................ 90
Рекурсивные вызовы ......................................................................................................................................... 91
См. также ................................................................................................................................................................ 92
Замыкания (Closures) ....................................................................................................................... 93
Лексическое окружение (Lexical environment) ........................................................................................ 93
Замыкание (Closure) ........................................................................................................................................... 93
См. также ................................................................................................................................................................ 94
Асинхронность (async) ..................................................................................................................... 95
Однопоточность ................................................................................................................................................... 95
Строго последовательно? Нет ......................................................................................................................... 96
Callback .................................................................................................................................................................... 97
Промис (Promise) ................................................................................................................................................. 98
async/await .............................................................................................................................................................. 99
Реалистичный пример ................................................................................................................................... 100
См. также .............................................................................................................................................................. 101
Ссылки ................................................................................................................................................................... 101
Объектно-ориентированное программирование ............................................................................................... 102
Классовый подход в ООП ............................................................................................................................... 102
Прототипный подход в ООП ......................................................................................................................... 102
ООП в JavaScript: «Два пиджака на одно тело» ...................................................................................... 102
Классический синтаксис ........................................................................................................................ 103
Синтаксис «классов » ........................................................................................................................................ 105
См. также .............................................................................................................................................................. 105
Классическое ООП ............................................................................................................................ 106
Конструкция ....................................................................................................................................................... 106
Функции ........................................................................................................................................................ 107
new .................................................................................................................................................................. 107
Предопределенные типы данных ....................................................................................................... 108
Наследование ..................................................................................................................................................... 108
setPrototypeOf .............................................................................................................................................. 108
new .................................................................................................................................................................. 109
Object.create .................................................................................................................................................. 110
Отличие от подходов, основанных на классах .............................................................................................. 110
Проверка иерархии объектов ...................................................................................................................... 111
getPrototypeOf .............................................................................................................................................. 111
instanceof ....................................................................................................................................................... 112
typeof .............................................................................................................................................................. 112
См. также .............................................................................................................................................................. 112
Классы в ООП .................................................................................................................................... 113
Создание ............................................................................................................................................................... 113
Статические свойства и методы .......................................................................................................... 113
Get .................................................................................................................................................................... 114
Наследование ..................................................................................................................................................... 114
Управление доступом ..................................................................................................................................... 115
Полиморфизм ..................................................................................................................................................... 116
this ........................................................................................................................................................................... 117
См. также .............................................................................................................................................................. 117
Модули ................................................................................................................................................ 118
Без модулей ......................................................................................................................................................... 118
Модули ECMAScript (ES модули) .................................................................................................................. 119
Модули Node.js (Common]S) ........................................................................................................................... 120
См. также .............................................................................................................................................................. 121
Генераторы ........................................................................................................................................ 122
Примеры ............................................................................................................................................................... 122
Параметры ........................................................................................................................................................... 123
Ссылки ................................................................................................................................................................... 123
Введение в Document Object Model (DOM) .................................................................................................................. 124
Узлы ........................................................................................................................................................................ 124
Доступ к узлам .................................................................................................................................................... 124
Доступ к содержимому .................................................................................................................................... 125
Изменение содержимого ............................................................................................................................... 125
Изменение структуры дерева ...................................................................................................................... 126
См. также .............................................................................................................................................................. 126
Поиск элементов .............................................................................................................................. 127
Использование ID ............................................................................................................................................. 128
Использование имени теrа ........................................................................................................................... 128
Использование имени класса ...................................................................................................................... 129
Использование селектора запросов .......................................................................................................... 129
Навигация по дереву DOM ............................................................................................................................. 130
См. также .............................................................................................................................................................. 130
Изменение элементов ..................................................................................................................... 131
Пример страницы ............................................................................................................................................. 131
Изменение содержимого ............................................................................................................................... 131
Изменение атрибута ........................................................................................................................................ 132
setAttriЬute() ................................................................................................................................................. 133
См. также .............................................................................................................................................................. 133
Добавление элементов .................................................................................................................... 134
Создание элементов ......................................................................................................................................... 134
Создание атрибутов ......................................................................................................................................... 135
Альтернативный синтаксис ................................................................................................................. 136
Соединение частей ........................................................................................................................................... 136
«Неправильное » использование innerHTML ......................................................................................... 136
write() ..................................................................................................................................................................... 136
См. также .............................................................................................................................................................. 137
Удаление элементов ........................................................................................................................ 138
Удаление элементов ......................................................................................................................................... 138
Дочерние элементы дочерних элементов ....................................................................................... 138
Свойство parentNode ................................................................................................................................ 138
Удаление атрибутов ......................................................................................................................................... 139
См. также .............................................................................................................................................................. 139
Реструктуризация DOM ................................................................................................................... 140
Пример страницы ............................................................................................................................................. 140
Перемещение элемента в конец списка соседей (дочерних элементов одного уровня) .......................... 140
Перемещение элемента перед соседом (дочерним элементом одного уровня) ....................................... 141
Атрибуты .............................................................................................................................................................. 141
См. также .............................................................................................................................................................. 142
Изменение стилей элементов ............................................................................................................ 143
Пример .................................................................................................................................................................. 143
Свойства style ...................................................................................................................................................... 144
См. также .............................................................................................................................................................. 144
Обработка событий DOM ................................................................................................................. 145
Создание и вызов событий ............................................................................................................................ 145
Встроенные в HTML .................................................................................................................................. 145
Программно в JavaScript ................................................................................................................................. 146
Типы событий .................................................................................................................................................... 147
Свойства событий ............................................................................................................................................. 150
removeEventListener ......................................................................................................................................... 151
Синтетические события ................................................................................................................................. 152
(А)синхронное поведение .............................................................................................................................. 153
См. также .............................................................................................................................................................. 154
Ссылки ................................................................................................................................................................... 154
Отладка J avaScript ............................................................................................................................ 155
Отладчики JavaScript ....................................................................................................................................... 155
Firebug ............................................................................................................................................................ 155
Venkman JavaScript Debugger ................................................................................................................. 155
Отладка в Internet Explorer .................................................................................................................... 155
Отладка в Safari .......................................................................................................................................... 156
JТF: Ферма модульного тестирования JavaScript ................................................................................ 156
jsUnit ............................................................................................................................................................... 156
Встроенные инструменты отладки .................................................................................................... 157
Распространенные ошибки .......................................................................................................................... 157
Методы отладки ................................................................................................................................................. 158
Отслеживание переменных во время выполнения скрипта ............................................................................. 158
Ошибки браузеров ............................................................................................................................................ 158
Код, зависящий от браузера .......................................................................................................................... 159
Дополнительная литература ........................................................................................................................ 159
Ссылки ................................................................................................................................................................... 159
Оптимизация ..................................................................................................................................... 160
Оптимизация JavaScript .................................................................................................................................. 160
Техники оптимизации ............................................................................................................................ 160
Распространенные ошибки и заблуждения ........................................................................................... 160
Конкатенация строк ................................................................................................................................. 160
Shell ..................................................................................................................................................... 163
Автономная оболочка (Standalone) ............................................................................................................ 163
В браузере ............................................................................................................................................................. 163
Внешние ссылки ............................................................................................................................................... 164
<l>ормы ................................................................................................................................................ 165
Ссылки ................................................................................................................................................................... 165
Букмарклеты (Bookmarklets) ......................................................................................................... 167
Схема URI JavaScript .......................................................................................................................................... 167
Примеры использования ............................................................................................................................... 167
Управление медиа .................................................................................................................................... 167
Зациклить видео ....................................................................................................................................... 167
Перейти к десяти минутам (с использованием умножения) ................................................... 167
Перейти вперед на одну минуту (шестьдесят секунд) ................................................................ 167
Перейти назад на полминуты (с использованием деления) .................................................... 167
Получить продолжительность видео на странице в консоли ................................................ 167
Вывести текущее время воспроизведения ...................................................................................... 168
Установить громкость звука на 50% .................................................................................................. 168
Отключить звук ......................................................................................................................................... 168
Удвоить скорость воспроизведения ................................................................................................... 168
Запросить скорость воспроизведения .............................................................................................. 168
Запросить позицию воспроизведения в секундах ....................................................................... 168
Запросить позицию воспроизведения в минутах ........................................................................ 168
Запросить позицию воспроизведения в процентах (от О до 100) ................................................. 168
Использование нескольких строк кода ................................................................................................... 168
Протокол JavaScript в ссылках ..................................................................................................................... 169
Примеры ............................................................................................................................................................... 169
Работа с файлами ............................................................................................................................. 170
Ссылки ................................................................................................................................................................... 170
Обработка XML .................................................................................................................................. 172
Простая функция для открытия ХМL-файла .......................................................................................... 172
Использование ................................................................................................................................................... 172
Обработка JSON ................................................................................................................................. 173
Нативная по,zrдержка JSON ............................................................................................................................ 173
Старый способ ............................................................................................................................................. 173
JSONP ...................................................................................................................................................................... 173
Дополнительная информация ..................................................................................................................... 174
CS Communication ............................................................................................................................. 175
XMLHttpRequest .................................................................................................................................................. 175
Ajax ......................................................................................................................................................................... 176
Библиотеки .......................................................................................................................................................... 176
Fetch API ................................................................................................................................................................ 177
Ссылки ................................................................................................................................................................... 177
Глоссарий ........................................................................................................................................... 178
Полезные инструменты для программистов на JavaScript ......................................................................... 181
Редакторы / IDE ........................................................................................................................................... 181
Движки и другие инструменты ........................................................................................................... 182
Лучшие практики ............................................................................................................................. 183
document.write .................................................................................................................................................... 183
JavaScript-пpoтoкoл .......................................................................................................................................... 183
Валидация email ................................................................................................................................................ 184
Тестовая страница ..................................................................................................................................... 185
use strict ................................................................................................................................................................. 189
Для дальнейшего чтения ............................................................................................................................... 189
Ссылки ................................................................................................................................................................... 190