Языки программирования часто классифицируют по их структуре. На сегодняшний день существует множество типов, включая (но не ограничено!): Процедурный, Структурированный, Объектно-ориентированный, Одновременный, Функциональный, Событийный, Скомпилировано и Истолкованный (Источник). Некоторые языки программирования представляют собой смесь этих конструкций, тогда как другие могут подпадать только под один из перечисленных выше заголовков.
У меня вопрос:
К какому типу языка можно отнести JavaScript?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Запись Javascript в Википедии сообщает вам.
JavaScript (/ˈdʒɑːvəˌskrɪpt/), often abbreviated as JS, is a programming language that conforms to the ECMAScript specification. JavaScript is high-level, often just-in-time compiled, and multi-paradigm. It has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions.
В третьем абзаце говорится:
As a multi-paradigm language, JavaScript supports event-driven, functional, and imperative programming styles (emphasis added). It has application programming interfaces (APIs) for working with text, dates, regular expressions, standard data structures, and the Document Object Model (DOM).
Что касается вашего выбора Процедурный, Структурированный, Объектно-ориентированный, Одновременный, Функциональный, Событийный, Скомпилировано и Истолкованный в качестве «типов» компьютерного языка, Javascript довольно мощный; это по меньшей мере (или может быть) Процедурный, Структурированный, Объектно-ориентированный, Функциональный, Событийный и Истолкованный.
Однако, как говорится в вашем источнике, многие языки не попадают только в одну категорию, но могут использоваться по-разному. Даже, например, Java может использоваться довольно строго процедурно.
И хотя Javascript поддерживает функциональное программирование, это не лингва франка функциональных программистов, но они могли бы его использовать, если бы захотели.
Javascript настолько универсален, потому что он основан на прототипах и потому, что вы можете передавать функции в качестве параметров другим функциям, что действительно позволяет использовать некоторые безумные методы программирования (читай: HACKS) в сочетании с динамическим созданием Javascript, это может быть действительно мощным и запутанным, поскольку хорошо :)
Возможно, вы захотите посмотреть http://en.wikipedia.org/wiki/Prototype-based_programming для получения дополнительных объяснений.
Ага, я не вижу проблем со своим ответом.
JavaScript FTW!
JavaScript является реализацией стандарта языка ECMAScript и в основном используется в форме клиентского JavaScript, реализованного как часть веб-браузера для обеспечения расширенных пользовательских интерфейсов и динамических веб-сайтов. Это обеспечивает программный доступ к вычислительным объектам в среде хоста.
...
JavaScript - это многопарадигмальный динамический язык с типами и операторами, стандартными встроенными объектами и методами. Его синтаксис основан на языках Java и C - многие структуры этих языков применимы и к JavaScript. JavaScript поддерживает объектно-ориентированное программирование с использованием прототипов объектов вместо классов (см. Дополнительные сведения о прототипном наследовании и классах ES2015). JavaScript также поддерживает функциональное программирование - функции - это объекты, которые дают функциям возможность хранить исполняемый код и передаваться, как любой другой объект.
...
Это должно было быть «примером». Я добавил эту правку, я также добавил эту строку, которую, я думаю, вы пропустили: некоторые языки программирования представляют собой смесь этих конструкций, в то время как другие могут подпадать только под один из заголовков, перечисленных выше.