JavaScript

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

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

  • объекты, с возможностью интроспекции;
  • функции как объекты первого класса;
  • автоматическое приведение типов;
  • автоматическая сборка мусора;
  • анонимные функции.

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

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

Семантика и синтаксис

Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже Лиспу.

В JavaScript:

  • все идентификаторы регистрозависимы,
  • в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры,
  • названия переменных не могут начинаться с цифры,
  • для оформления однострочных комментариев используются
     //
    многострочные и внутристрочные комментарии начинаются с 
     /*
    и заканчиваются
     */.

Структура языка

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM (en)),
  • объектная модель документа (Document Object Model или DOM).

ECMAScript не является браузерным языком и в нём не определяются методы ввода и вывода информации. Это, скорее, основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в расширении их новыми составляющими.

Уроки по теме: