Возможности языка

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

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

  1. объекты с возможностью интроспекции;
  2. автоматическое приведение типов;
  3. автоматическая сборка мусора;

В языке отсутствуют такие полезные вещи, как:

  1. модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;
  2. стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода-вывода, базовых типов для бинарных данных;
  3. система управления пакетами,которая бы отслеживала зависимости и автоматически устанавливала их.