И да и нет. Довольно просто начать писать на JavaScript, но чем дальше начинаешь углубляться в детали, тем больше всплывает загадок и неопределённостей. Немного об этом я уже писал здесь.
Одна из сложностей связана с тем, что за свою 25-летнюю историю JavaScript дорабатывался с учётом обязательной обратной совместимости. То есть, любой код, написанный на JS двадцать лет назад, должен точно так же работать на современных JS-движках.
Это привело к тому, что в языке по историческим причинам существует некоторое количество нелогичностей, сохранённых из соображений совместимости. Похожая проблема есть и в других веб-технологиях, например в CSS.
Вторая сложность вызвана тем, что JavaScript — это язык с динамической слабой типизацией. Динамическая типизация облегчает вхождение, но может усложнить отладку и разработку крупных проектов, а неявное приведение типов может запутать даже опытных разработчиков. Этим объясняется огромная популярность TypeScript, добавляющего статическую проверку типов, при этом оставаясь в пределах синтаксиса JS.
Наконец, JS сам по себе не навязывает определённой парадигмы программирования, из-за чего код на JS в разных проектах может выглядеть очень по-разному. Вообще, само понимание парадигм и умение их применять — отдельное важное качество разработчика, не связанное с конкретным языком.
Резюмируя, освоить JavaScript — несложная задача для новичка, но научиться грамотно применять его в промышленном программировании, стать хорошим высокооплачиваемым разработчиком так же сложно, как и в случае с большинством других языков.
Сложность или простота – понятия субъективные, смотря с чем сравнивать.
Если брать JavaScript в качестве стартового языка для обучения программированию, то он достаточно прост, хорошо документирован, имеется масса обучающих курсов и пособий. Но, как и для изучения любого языка, нужно сначала «въехать» в саму парадигму программирования.
Сказать что JS простой или сложный нельзя. Если Вы занимаетесь web- разработкой, то он просто необходим. Если это не web, то выбирайте язык исходя из задач проекта.