В первую очередь нужно хорошо понимать JS, именно не выучить, а понимать. Область видимости, наследование, контекст, замыкания. Типы данных, как с ними работать. Потом разобраться с ES6.
https://learn.javascript.ru/ в этом плане как оглавление, дальше по всему интернету искать статьи и видеокурсы на ютубе, главное брать и самому делать примеры из статей без подсказок и только потом смотреть готовое решение и сравнивать. Консолить, консолить и консолить. Дальше, когда разберетесь с чистым JS, учить уже фреймворки React, Angular, Vue