Если Вы не понимаете выражение "логарифм по основанию два", то Вам очень трудно будет стать хорошим программистом...
нужно было написать понятно
catalog[i].removeEventListener('click', listener, false);
catalog[i].addEventListener('click', listener, false);
я неадекватное невменько которое потеряло связь с реальностью, которому надо удалять обработчик события и задавать его заново само не знаю зачем
Full-stack - Это когда программист, умеет frontend, backend, seo, disign, qa, т.е. это специалист, который умеет все (не чуть-чуть, а именно разбирается как следует)
А до full-stack уровня, нужно отпахать как папа Карло лет 7-10