Знанием фреймворка ты решишь общие вопросы и напишешь типовой код. Как бы ты ни знал фреймворк - он закрывает только определенную часть задач, даже если он закрывает их очень много.
Язык знать надо.
Только так ты сможешь полноценно что-то писать сам.
И править / дописывать фреймворк.
Или писать свое решение в случае необходимости.
Без языка далеко не уедешь.
Те кто пишут только на фреймворках без знания языка, дай им сложную задачу, не связанную с фреймворком, они ее не сделают.
Знать язык - это не только синтаксис.
Например, знать что в JS (как и в других языка) сложность for зависит от шагов и сделав не i++, i+=2 ты уменьшиш нагрузку (осторожнее с нечетным количеством элементов) или что динамическое добавление поля к объекту - под капотом пересоздаст скрытый класс в V8.
Или что Promise и их then => Promise ожидаются рекурсивно и можно писать вложенные конструкции.