Первоначально JavaScript разрабатывался как функциональный язык, но потом было принято решение (совсем не разработчиками языка) переделать его под императивный С-подобный синтаксис. Но при этом функциональные возможности из языка никуда не делись. Так что это функциональный язык, успешно притворяющийся императивным.