JS Intermediate
Области видимости, замыкания, this, классы, прототипы
Этап 6 из 8 · Средний уровень
19 тем
- 01
Область видимости и замыкания
Понять, где переменные доступны (global, function, block scope), и как вложенные функции «запоминают» внешние переменные (closures).
- 02
Глобальный объект
Понять, что такое глобальный объект (window/globalThis), как он связан с переменными, и почему его следует избегать.
- 03
Копирование объектов
Понять разницу между примитивами (копируются по значению) и объектами (передаются по ссылке), и научиться создавать shallow и deep копии.
- 04
Методы объекта и this
Понять, как определить значение this в конкретном вызове: default, implicit, explicit и new binding.
- 05
call, apply, bind
Научиться явно задавать this для функций с помощью call, apply и bind, понимая разницу между ними.
- 06
Рекурсия и стек вызовов
Понять, как функции вызывают сами себя (рекурсия), что такое стек вызовов, и когда рекурсия уместна.
- 07
Геттеры и сеттеры
Научиться создавать вычисляемые свойства (get) и контролируемое присваивание (set) в объектах.
- 08
Классы
Научиться создавать классы с конструктором, методами и свойствами, понимая что class — это синтаксический сахар над прототипами.
- 09
Наследование классов
Научиться создавать дочерние классы через extends, вызывать родительский constructor через super, и переопределять методы.
- 10
Приватные и защищённые свойства
Понять разницу между #private (языковая поддержка) и _protected (договорённость), и когда каждое нужно.
- 11
Статические методы и свойства
Понять разницу между методами экземпляра и статическими методами класса, и когда каждые нужны.
- 12
instanceof
Научиться проверять, принадлежит ли объект классу, и понять как instanceof работает через prototype chain.
- 13
Прототипное наследование
Понять, как JavaScript ищет свойства через цепочку прототипов (prototype chain), и чем это отличается от классического наследования.
- 14
F.prototype и конструкторы
Понять, как function.prototype связывает конструктор и экземпляры, и как это работает «под капотом» классов.
- 15
Встроенные прототипы
Понять, что все встроенные объекты (Array, Object, String, Number) имеют свои прототипы с полезными методами.
- 16
Прототипные методы и __proto__
Научиться работать с прототипами через Object.getPrototypeOf, Object.setPrototypeOf, и понять почему __proto__ — legacy.
- 17
Полный набор методов массивов
Научиться использовать дополнительные методы массивов: find, findIndex, some, every, flat, flatMap, sort, Array.from, а также when to use each.
- 18
Map и Set
Научиться использовать Map для коллекций ключ/значение (с любыми типами ключей) и Set для хранения уникальных значений.
- 19
Итерируемые объекты
Понять протокол итерации: что такое iterable, iterator, next(), и как создавать свои итерируемые объекты через Symbol.iterator.