Глубокий JavaScript

Цикл про ядро языка: типы и приведение, область видимости и замыкания, прототипы, ссылки и копирование, промисы изнутри, итераторы и генераторы.

JavaScript легко начать и трудно понять: язык прощает почти всё и молча делает «что-то» там, где другие языки падают с ошибкой. Этот цикл — про ядро: восемь механизмов, из которых состоит всё остальное. Не справочник по синтаксису, а объяснение, почему язык ведёт себя так.

Восемь статей идут по порядку — каждая опирается на предыдущие:

  1. Типы в JavaScript — примитивы и объекты, typeof, NaN, значение против ссылки.
  2. Приведение типов — ==, ===, truthy/falsy и почему [] + [] — пустая строка.
  3. Область видимости — var/let/const, поднятие, мёртвая зона и классика с циклом.
  4. Замыкания — функция уносит область с собой: приватность, фабрики, stale closure.
  5. Прототипы — делегирование, prototype против proto и class как сахар.
  6. Ссылки и копирование — shallow/deep копии, structuredClone и зачем неизменяемость.
  7. Промисы изнутри — цепочки then, полёт ошибок, async/await и комбинаторы.
  8. Итераторы и генераторы — протокол итерации, yield и for await..of.

Темы this и event loop живут в соседнем разделе — this: контекст вызова и Event loop — и вместе с этим циклом закрывают ядро языка целиком.

Цикл входит в программу Frontend фазой между основами TypeScript и React: хуки, состояние и рендеринг стоят на замыканиях, ссылках и неизменяемости — с этим фундаментом React перестаёт быть магией.