JS Intermediate

Области видимости, замыкания, this, классы, прототипы

Этап 6 из 8 · Средний уровень

19 тем

  1. 01

    Область видимости и замыкания

    Понять, где переменные доступны (global, function, block scope), и как вложенные функции «запоминают» внешние переменные (closures).

  2. 02

    Глобальный объект

    Понять, что такое глобальный объект (window/globalThis), как он связан с переменными, и почему его следует избегать.

  3. 03

    Копирование объектов

    Понять разницу между примитивами (копируются по значению) и объектами (передаются по ссылке), и научиться создавать shallow и deep копии.

  4. 04

    Методы объекта и this

    Понять, как определить значение this в конкретном вызове: default, implicit, explicit и new binding.

  5. 05

    call, apply, bind

    Научиться явно задавать this для функций с помощью call, apply и bind, понимая разницу между ними.

  6. 06

    Рекурсия и стек вызовов

    Понять, как функции вызывают сами себя (рекурсия), что такое стек вызовов, и когда рекурсия уместна.

  7. 07

    Геттеры и сеттеры

    Научиться создавать вычисляемые свойства (get) и контролируемое присваивание (set) в объектах.

  8. 08

    Классы

    Научиться создавать классы с конструктором, методами и свойствами, понимая что class — это синтаксический сахар над прототипами.

  9. 09

    Наследование классов

    Научиться создавать дочерние классы через extends, вызывать родительский constructor через super, и переопределять методы.

  10. 10

    Приватные и защищённые свойства

    Понять разницу между #private (языковая поддержка) и _protected (договорённость), и когда каждое нужно.

  11. 11

    Статические методы и свойства

    Понять разницу между методами экземпляра и статическими методами класса, и когда каждые нужны.

  12. 12

    instanceof

    Научиться проверять, принадлежит ли объект классу, и понять как instanceof работает через prototype chain.

  13. 13

    Прототипное наследование

    Понять, как JavaScript ищет свойства через цепочку прототипов (prototype chain), и чем это отличается от классического наследования.

  14. 14

    F.prototype и конструкторы

    Понять, как function.prototype связывает конструктор и экземпляры, и как это работает «под капотом» классов.

  15. 15

    Встроенные прототипы

    Понять, что все встроенные объекты (Array, Object, String, Number) имеют свои прототипы с полезными методами.

  16. 16

    Прототипные методы и __proto__

    Научиться работать с прототипами через Object.getPrototypeOf, Object.setPrototypeOf, и понять почему __proto__ — legacy.

  17. 17

    Полный набор методов массивов

    Научиться использовать дополнительные методы массивов: find, findIndex, some, every, flat, flatMap, sort, Array.from, а также when to use each.

  18. 18

    Map и Set

    Научиться использовать Map для коллекций ключ/значение (с любыми типами ключей) и Set для хранения уникальных значений.

  19. 19

    Итерируемые объекты

    Понять протокол итерации: что такое iterable, iterator, next(), и как создавать свои итерируемые объекты через Symbol.iterator.