JavaScript – объектно-ориентированный скриптовый язык программирования. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты:
динамическая типизация – прием, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной, таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов;
слабая типизация – компилятор генерирует код, обеспечивающий преобразование типов, а логическая корректность такого преобразования контролируется программистом, т.е. фактически значение переменной одного типа можно присвоить значению переменной другого почти без ограничений;
автоматическое управление памятью – специальный код, называемый сборщиком мусора (garbage collector), периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложением – то есть производит сборку мусора;
прототипное программирование – стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а повторное использование (наследование) производится путем клонирования существующего экземпляра объекта – прототипа;
функции как объекты первого класса – функции в JavaScript могут использоваться без существенных ограничений, их можно передавать как параметры, использовать как переменные, у них могут быть свои функции (например, invoke(), delay() ).
На JavaScript оказали влияние многие языки программирования. При разработке была цель сделать язык похожим на Java, но при этом легким для использования непрограммистами.