Menu
Русский

Что такое JavaScript: язык веба простыми словами

Разбираемся, что такое JavaScript, где он работает, для чего нужен и чем отличается от Java и TypeScript. Понятное введение для новичков.

JavaScript — язык веба

JavaScript — это язык программирования, который работает прямо в браузере. Когда страница реагирует на клик, проверяет форму, анимирует меню или подгружает новый контент без перезагрузки — за этим стоит именно JavaScript. Движок этого языка встроен в любой браузер на любом устройстве, и поэтому JavaScript — единственный язык, который выполняется в вебе «из коробки».

Но браузером дело давно не ограничивается. Node.js, Deno и Bun позволяют писать на JavaScript серверы, консольные утилиты, сборочные скрипты и API. Один и тот же язык крутится и на фронтенде, и на бэкенде — во многом поэтому он так широко распространён.

Немного покажу, как выглядит код на JavaScript:

index.js
Output
Click Run to see the output here.

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

Где выполняется JavaScript

Сам по себе JavaScript — это всего лишь спецификация языка (она называется ECMAScript). Чтобы код реально заработал, нужен движок — программа, которая читает ваш код и исполняет его. На практике вы столкнётесь с двумя сценариями:

  • Браузеры. В Chrome и Edge работает V8. В Firefox — SpiderMonkey. В Safari — JavaScriptCore. Откройте любую страницу, нажмите F12, вставьте JavaScript во вкладку Console — и код тут же выполнится.
  • Node.js. Вытаскивает V8 из браузера и даёт ему доступ к файловой системе, сети и операционной системе. Именно благодаря этому JavaScript работает и на сервере.
// Запустите в консоли браузера:
document.title = "Новый заголовок вкладки";

// Запустите с помощью Node.js:
// $ node script.js

JavaScript в браузере умеет работать со страницей (DOM), но к файловой системе его не подпустят. А JavaScript в Node.js читает файлы и открывает сокеты, зато никакой страницы у него нет. Язык один и тот же — суперспособности разные.

Для чего нужен JavaScript

Если коротко — почти для всего, что так или иначе связано с вебом. Если чуть подробнее, вот примерно в том порядке, в котором вы с этим столкнётесь:

  • Интерактивные веб-страницы. Валидация форм, выпадающие меню, модальные окна, живой поиск, drag-and-drop.
  • Одностраничные приложения (SPA). Gmail, Figma, Notion, Linear — целые приложения, которые рендерятся и обновляются средствами JavaScript, обычно через фреймворк вроде React, Vue или Svelte.
  • Серверная разработка. REST API, GraphQL-эндпоинты и realtime-сервисы на Node.js, Express, Fastify или NestJS.
  • Инструменты сборки и разработки. Бандлеры (Vite, esbuild, webpack), линтеры (ESLint), тест-раннеры (Vitest, Jest).
  • Кроссплатформенные приложения. Десктоп через Electron (VS Code, Slack, Discord) и мобильные приложения через React Native.

Всё это знать с первого дня не нужно. Но полезно держать в голове сам факт — тогда формулировка «это всего лишь JavaScript» перестаёт звучать как ограничение.

Как работает JavaScript на самом деле

Упрощённая модель примерно такая: вы пишете исходный код, движок парсит его во внутреннее представление и выполняет. Современные движки используют JIT-компиляцию (just-in-time) — сначала они быстро интерпретируют код, а по ходу выполнения оптимизируют «горячие» участки, превращая их в машинный код.

JavaScript не компилируется в бинарник заранее. Вы просто отдаёте исходник браузеру (или Node), а всё остальное движок берёт на себя:

index.js
Output
Click Run to see the output here.

Вставьте этот код в консоль браузера или сохраните в файл greet.js и запустите node greet.js — результат будет один и тот же. Никакой компиляции, никаких конфигов сборки, ничего устанавливать не нужно — по крайней мере для такого простого примера.

JavaScript и Java: в чём разница

Названия похожи, а языки — нет. Имя «JavaScript» появилось в 1995 году, чтобы поймать волну популярности Java — чисто маркетинговое решение, которое с тех пор регулярно сбивает с толку новичков.

JavaScriptJava
ТипизацияДинамическаяСтатическая
Где выполняетсяБраузеры, Node.jsJVM
ПарадигмаМультипарадигменный, на основе прототиповКлассическое ООП на классах
КомпиляцияJIT, сборка не требуетсяСначала компиляция в байт-код

Если кто-то говорит «я выучил Java, значит, знаю JavaScript» — не верьте. Это два разных языка, у которых случайно совпали четыре буквы в названии.

JavaScript vs TypeScript

TypeScript — это JavaScript с прикрученной сверху системой типов. Вы пишете код с аннотациями типов, компилятор TypeScript их проверяет, а на выходе получается обычный JavaScript, который запустится везде, где работает JS.

// JavaScript — типы неявные:
function add(a, b) {
    return a + b;
}

// TypeScript — типы явные:
function add(a: number, b: number): number {
    return a + b;
}

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

Немного истории — чтобы странности языка стали понятнее

JavaScript был написан за десять дней в 1995 году Бренданом Айком в компании Netscape. Эта история важна: часть шероховатостей языка (нестрогое равенство, автоматическая вставка точек с запятой, typeof null === "object") — прямое следствие решений, принятых в жёстком цейтноте и затем навсегда зафиксированных ради обратной совместимости веба.

Стандарт языка называется ECMAScript, и новая версия выходит каждый год. Ключевой релиз — ES2015: он принёс let, const, стрелочные функции, классы и модули. Когда говорят «ES6» или «современный JavaScript», обычно имеют в виду именно набор возможностей от 2015 года и позже — сейчас он поддерживается повсеместно.

Писать на современном JavaScript — реально приятно. Старые странности никуда не делись, но их почти всегда можно обойти — привычкам для этого мы научимся по ходу курса.

Что стоит запомнить

  • JavaScript работает в любом браузере, а благодаря Node.js — ещё и на сервере.
  • На нём пишут почти всё, что связано с вебом: интерфейсы, бэкенд, инструментарий, а также десктопные и мобильные приложения.
  • JavaScript — это не Java. TypeScript — надмножество JavaScript, добавляющее статическую типизацию.
  • У языка есть исторические странности, но на практике вы будете писать на современном JavaScript (ES2015+).

Дальше: как запустить JavaScript

Теории достаточно — пора запустить настоящий код. В следующей статье разберём три способа запуска JavaScript для новичка: консоль браузера, HTML-файл и Node.js в командной строке.

Часто задаваемые вопросы

Что такое JavaScript простыми словами?

JavaScript — это язык программирования, который работает прямо в браузере, а ещё на сервере через Node.js. Именно он делает страницы живыми: реагирует на клики, обновляет контент без перезагрузки, ходит за данными в API. И это единственный язык, который изначально понимает любой браузер.

Для чего используют JavaScript?

Да буквально для всего в вебе: от мелочей вроде выпадашек и валидации форм до полноценных веб-приложений (Gmail, Figma, Notion), серверов (Node.js, Deno), мобильных приложений (React Native), десктопа (VS Code работает на Electron) и инструментов сборки. Если что-то крутится в браузере или связано с вебом — скорее всего, там есть JavaScript.

JavaScript и Java — это одно и то же?

Нет, это вообще разные языки. Похожие названия — чистый маркетинг 90-х. Java — статически типизированный язык с классами, работает на JVM. JavaScript — динамически типизированный, живёт в браузере и Node, устроен совершенно иначе. Общие у них только первые четыре буквы.

Чем JavaScript отличается от TypeScript?

TypeScript — это, по сути, JavaScript плюс система типов. Вы пишете код с аннотациями типов, компилятор их проверяет, а на выходе получается обычный JavaScript. Любой валидный .js-файл одновременно является и валидным TypeScript. Чтобы учить JavaScript, TypeScript не нужен, но в больших проектах сегодня почти всегда используют именно его.

Учитесь программировать с Coddy

НАЧАТЬ