http://jsraccoon.ru/tip-advanced-reduce – продвинутое использование метода reduce
https://learn.javascript.ru/array-iteration – Массив: перебирающие методы
Promise – удобный способ организации асинхронного кода.
https://learn.javascript.ru/promise
Canvas
https://youtu.be/yXQADptc5OY – Как сделать классную анимацию для фона в Canvas
MutationObserver – отследить изменения элемента
https://developer.mozilla.org/[..]API/MutationObserver[link1]