1) Попробуйте создать DOM-узел.
2) Напичкать его потомками с различной вложенностью.
3) Попробуйте еще засунуть текстовые ноды.
4) Найти потомка в DOM-узле и добавить обработчик события.
5) Из обработчика события обратиться к родителю или потомка DOM и что-то с ним сделать.
6) Пересортировать детей в DOM-узле.
7) Переместить DOM-узел, не растеряв его обработчики, перед определенным узлом или после.
8) Добавить на одно событие больше одного обработчика событий.
9) Удалить конкретный обработчик событий, не убив все обработчики одного и того же события.
10) Определите, что функция не работает в данном интерпретаторе JS (то бишь браузере) и попробуйте переключиться на полифил, не потеряв ее функционала.
Типичный список задач, чем может заниматься JS на странице, что может выносить мозг тому, кто входит в эту технологию.
PS: Это еще не полный список. Когда пойдете изучать взаимодействия с сервером, будете развлекаться с функциями ответами (коллбэки) и всякими новомодными промисами, чтобы сделать очередь обработки событий.
Нет, это типичные операции, которые нужно осмысливать в типичном боевом проекте, для которого JS и создан.
Не пытайтесь решать классические задачки различных сортировок и работы с деревьями, что так любимы на олимпиадах - будете просто вертеть сферического коня в вакууме.
Alexandroppolus, человек интересуется основами JS. Поэтому, это именно то, что нужно понимать, когда беретесь за него, без этого не будет понятно, как там работают фреймворки.