Типы данных, переменные (var
, let
, const
)
операции + логические операции, шаблонизация строк.
Циклы и условия
`for (let` , `for .. in`, `for ..of`
Массивы и объекты
`sort`, `map`, `reduce`, `filter`, `Object.keys`, ключи-значения, деструктуризация, es6 литералы объектов, `JSON`
Функции
определение, вызов, `arguments`, `call`, `apply`, `rest`, `spread`, `callback` (изнутри и снаружи), анонимные, Function Declaration vs Function Expression, self-invoked. Стрелочные и их особенности, параметры по умолчанию.
Замыкания, рекурсия
замыкания в целом, замыкания на `let` без функции
Функциональное ООП
приватные свойства на замыканиях, что делает new, геттеры, сеттеры.
this, call, apply, bind
потеря this и как с ней бороться в контексте DOM и функционального ООП.
Try Catch Throw Finally
Асинхронность работы тандемом JS и браузера, и способы работы с этим (callback hell, closures, промисы)
Promise
DOM, BOM
создание, конфигурирование, вставка и удаление элементов, обреботчики событий (два способа навесить обработчик)
this в обработчике, объект события, его свойства, целевой элемент, всплытие и его обработка. поведение браузера по умолчанию.
`localStorage`
AJAX (AJAJ)
`XMLHttpRequest` + `Promise`
Canvas
контекст, пути, отрисовка, афинные преобразования системы координат.