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