Проблема JS в том что его учат по примерам, вместо того что бы понять сам язык.
Я часто провожу собеседования кандидатов JS и Node.js, уровня мидл и выше, ответ на вопрос, что такое Lexical Environment, геде то 1 из 10 правильный. Про то как работает Event Loop в JS тоже мало кто отвечает. Все пишут по примеру, язык понимают единицы.
Всем с кем работаю, для кого курсы провожу советую изучать спецификацию, ну или по крайней мере когда что то новое встречать заглядывать туда за объяснением.
www.ecma-international.org/ecma-262/5.1/index.html