/javascript-notes

My notes on JavaScript.

Primary LanguageJavaScript

JavaScript

JavaScript-заметки

  • JavaScript - мультипарадигменный язык программирования с динамической и слабой типизацией, автоматическим управлением памятью. Выполняется специальным движком (программа, обрабатывающая код на JavaScript). Поддерживает объектно-ориентированный, императивный и функциональный стили. ECMAScript - спецификация, LiveScript - первое название языка, JavaScript - название, зарегистрированный товарный знак, но не язык, компании Oracle Corporation в США.

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

  • Слабая типизация - наличие нескольких операций сравнения «==», «!=» (с приведением к одному типу, при необходимости и возможности, для сравнения значений) и «===», «!==» (сначала сравнение типов, а после - значений).

Алгоритм работы JavaScript-движков:

  • движок читает ("парсит") текст скрипта;
  • преобразует ("компилирует") скрипт в машинный язык;
  • машинный код запускается.

Движок применяет оптимизации на каждом этапе. Он даже просматривает скомпилированный скрипт во время его работы, анализируя проходящие через него данные и применяет оптимизации к машинному коду, полагаясь на полученные знания. В результате скрипты работают очень быстро.

Возможности JavaScript:

  • разработка веб-приложений;
  • разработка мобильных приложений;
  • разработка десктоп-приложений;
  • разработка веб-серверов и не только.

JavaScript поддерживается всеми основными веб-браузерами и включён по умолчанию.

Возможности JavaScript ограничиваются только средой исполнения, будь то веб-браузер, Node.js или любая другая среда, в которой есть движок исполнения кода JavaScript. Только среда исполнения накладывает ограничения на возможности JavaScript.