Ревью кода. Что можно улучшить в этом коде?
Честно говоря, это плохой код. Смысла разбираться в нем не имеет, долго объяснять все моменты(все это просто придется переписать под корень).  Но все новички в программировании пишут что-то подобное, это нормально.

Могут отметить несколько вещей:
1) Нейминг css классов - почитайте про БЭМ, у вас что-то невразумительное. Да и БЭМ тут не нужен, если прям строго взглянуть - у него свои задачи.
2) Используйте строгое равенство ===
3) Условия внутри методов просто кошмар. В целом в методах спагетти код по работе с dom. Это так не делается. Нужно декомпозировать логику и писать лаконичный и выразительный код.
4) Что-то можно было передать через constructor(), при создании экземпляра класса. Зачем это все пихать в сам constructor.

На счет html, то просто попробуйте сверстать лендинг, лучше поймете что к чему.

В общем, никуда это не выкладывайте всерьез). Ну и советую использовать тайпскрипт.

Реакт можно изучать конечно.
Бем неправильный, нарушает концепцию - элемент не может содержать других элементов. Дальше смотреть не стал, уверен, что ошибок больше.