Возможности языка
JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.
Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:
-
функции как объекты первого класса;
-
автоматическое приведение типов;
-
автоматическая сборка мусора;
В языке отсутствуют такие полезные вещи, как:
-
модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;
-
стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода-вывода, базовых типов для бинарных данных;
-
система управления пакетами,которая бы отслеживала зависимости и автоматически устанавливала их.