JS у кучи народа воспринимается, как чисто браузерный язык. Но, учитывая, что требования к фронту обычно на уровне "что бы работало", как следствие - говнарей многовато((. Много людей считают себя тру js-прогерами, при этом знают не js, а jQuery и пару плагинов. По опыту проведения многих собеседований могу сказать, что человек даже с притензией на мидла js может не иметь представления о том, как создать DOM элемент без jQuery, увы это очень печально.
Сам язык вообще-то сложный. Не в плане синтаксиса (синтаксис действительно учится пару недель), а в плане подходов. Они очень отличаются от классических просто потому, что JS - событийный язык. Например задачи с последовательным выполнением на JS пишутся на много сложнее (callback hell - очень частая ошибка), чем на других языках, однако задачи, заточенные под event-loop - на порядки легче. Как пример - чат на nodeJS на порядки проще написать, чем на любом другом серверном ЯП. Очень частой проблемой (в основном backend) являются утечки памяти, их проворонить довольно легко, а отследить - наоборот.