Справочник JavaScript
Основы языка и работа со страницей: данные, функции, DOM, события, формы, асинхронные запросы и локальные настройки. Примеры для самостоятельной проверки.
for...of: перебор значений итерируемой коллекции
For...of перебирает значения, которые выдаёт итератор объекта. Цикл подходит для массивов, строк, Set и Map, но обычный объект со свойствами не становится итерируемым автоматически.
for...in: перечислимые строковые свойства объекта
For...in перечисляет строковые ключи доступных перечислимых свойств, включая унаследованные. Поэтому при обработке собственных данных объекта нужно явно решить, допустим ли обход прототипа.
Генератор function*: последовательность значений по запросу
Генератор создаёт последовательность, вычисление которой приостанавливается на yield. Значения можно получать постепенно, не собирая весь результат в массив заранее.
Symbol: уникальный ключ свойства объекта
Symbol создаёт примитивное значение, которое можно использовать как уникальный ключ свойства. Совпадающие описания символов не делают их одинаковыми ключами.
Intl.RelativeTimeFormat: подпись относительного времени
Intl.RelativeTimeFormat форматирует числовое смещение времени словами выбранного языка. Он помогает вывести подпись вроде прошедших или оставшихся дней, но сам не вычисляет разницу между датами.
Object.create(): объект с заданным прототипом
Object.create создаёт объект с явно выбранным прототипом. Он позволяет отделить собственные данные от унаследованного поведения без копирования всех полей образца.
Object.getPrototypeOf(): посмотреть непосредственный прототип
Object.getPrototypeOf возвращает непосредственный прототип объекта. Это помогает понять, откуда берётся свойство, которое доступно при чтении, но не входит в собственные ключи.
Object.defineProperty(): управление свойством через дескриптор
Object.defineProperty задаёт значение и характеристики свойства явно. Это нужно, когда обычного присваивания недостаточно и требуется управлять записью, перечислением или перенастройкой поля.
Object.getOwnPropertyDescriptor(): прочитать характеристики поля
Object.getOwnPropertyDescriptor показывает дескриптор собственного свойства. Он помогает объяснить, почему поле не перечисляется или не допускает запись, хотя его значение доступно при чтении.
Reflect.ownKeys(): все собственные строковые и символьные ключи
Reflect.ownKeys возвращает собственные ключи объекта, включая неперечислимые и символьные. Метод полезен для диагностики структуры, когда Object.keys показывает лишь часть свойств.
search(): позиция первого совпадения с регулярным выражением
Search возвращает позицию первого совпадения строки с шаблоном. Он подходит, когда нужен индекс начала найденного фрагмента, а не массив всех результатов.
match(): результат поиска с группами и без них
Match возвращает совпадения строки с регулярным выражением. Форма результата зависит от флага g, поэтому перед обращением к группам нужно понимать выбранный режим.
exec(): пошаговый поиск с состоянием lastIndex
Exec возвращает подробный результат очередного совпадения. При флаге g или y объект регулярного выражения хранит позицию продолжения в lastIndex, поэтому повторные вызовы связаны между собой.
RegExp.flags: прочитать режимы регулярного выражения
Свойство flags возвращает строку флагов регулярного выражения. Оно полезно для диагностики и создания нового выражения с теми же режимами без ручного чтения литерала.
RegExp.source: получить текст шаблона без флагов
Source возвращает строковое представление шаблона регулярного выражения без внешних слешей и флагов. Это удобно при диагностике или создании отдельного экземпляра с теми же правилами.
Intl.Segmenter: разбиение текста на графемы
Intl.Segmenter помогает разбивать строку на единицы, соответствующие языковому представлению текста. Режим grapheme полезен, когда видимый символ состоит из нескольких кодовых точек.
Intl.DisplayNames: понятные названия языков и регионов
Intl.DisplayNames преобразует стандартные коды в названия выбранной локали. Это полезно для языкового переключателя или подписи региона без ручного словаря для каждой локализации.
getTime(): временная метка и недопустимая дата
GetTime возвращает число миллисекунд от начала эпохи Unix для объекта Date. Оно удобно для сравнения моментов времени, но не является готовым представлением календарной даты для пользователя.
Date.UTC(): собрать временную метку из компонентов UTC
Date.UTC создаёт временную метку из календарных компонентов, интерпретируемых в UTC. Это отличается от конструктора Date с отдельными числами, который обычно использует местную временную зону.
Number.EPSILON: точность чисел около единицы
Number.EPSILON описывает расстояние между единицей и следующим представимым числом Number. Он помогает объяснить ошибки двоичной арифметики, но не задаёт универсальный допуск для всех вычислений.
push(): добавить элементы в конец массива
Push добавляет один или несколько элементов в конец существующего массива. Метод изменяет исходный объект и возвращает новую длину, а не новый массив.
pop(): удалить и получить последний элемент массива
Pop удаляет последний элемент и возвращает его значение. Это основная операция для простого стека, где последним добавленный элемент забирается первым.
shift(): взять первый элемент массива
Shift удаляет первый элемент массива и возвращает его. Операция удобна для небольшой учебной очереди, в которой элементы обрабатываются в порядке поступления.
unshift(): добавить элементы в начало массива
Unshift вставляет значения в начало существующего массива и возвращает новую длину. Это полезно для небольшого списка, где новые элементы должны появиться перед старыми.
forEach(): действие для каждого существующего элемента
ForEach вызывает функцию для каждого существующего элемента массива. Он подходит для последовательных синхронных побочных действий, когда не требуется собрать новый массив результатов.