JavaScript
Язык программирования веб-страниц: делает их интерактивными в браузере, а на сервере работает в Node.js.
JavaScript — язык программирования, который выполняет каждый браузер. Если HTML описывает содержимое страницы, а CSS — ее вид, то JavaScript отвечает за поведение: меню раскрывается, форма проверяет поля, данные подгружаются без перезагрузки страницы. С Java у него общего только часть названия.
Немного истории
Язык создал Брендан Эйк в компании Netscape в 1995 году. Его стандартизованная версия называется ECMAScript и обновляется ежегодно. В 2009 году появилась среда Node.js, которая позволила запускать JavaScript на серверах, — с тех пор на нем пишут и интерфейс, и серверную часть.
Пример
const response = await fetch("/api/orders?status=paid");
const orders = await response.json();
document.querySelector("#count").textContent = orders.length;
Код запрашивает у сервера оплаченные заказы, дожидается ответа и выводит их число на страницу. Слово await позволяет ждать ответа сети, не «замораживая» страницу: пока идет запрос, интерфейс продолжает реагировать на действия пользователя.
Где работает JavaScript
- В браузере — интерактивность страниц и полноценные веб-приложения: почта, банковские кабинеты, редакторы документов.
- На сервере — Node.js и более новые среды Deno и Bun: API, чат-боты, сервисы уведомлений.
- В мобильных приложениях — через React Native.
- В настольных программах — через Electron; так сделаны, например, Visual Studio Code и Slack.
Особенности языка
- Динамическая типизация. Тип переменной определяется во время работы. Это ускоряет старт, но в больших проектах приводит к ошибкам, поэтому их часто пишут на TypeScript — JavaScript с проверкой типов.
- Асинхронность. В браузере JavaScript выполняется в одном потоке и не ждет медленные операции, а подписывается на их завершение. Отсюда обещания (promises) и
async/await. - Функции как значения. Их передают как аргументы — отсюда удобная обработка событий и элементы функционального стиля.
Экосистема
Интерфейсы чаще всего строят на библиотеках и фреймворках: React, Vue, Angular, а для сайтов с серверной отрисовкой — Next.js. Готовые пакеты устанавливают из реестра npm — это одно из крупнейших хранилищ библиотек в мире. Обратная сторона — зависимостей становится много, и их нужно регулярно обновлять и проверять на уязвимости.