Что такое JavaScript: движок, браузер, Node.js
Прежде чем писать первый код, давайте разберёмся: что вообще такое JavaScript, откуда он взялся, как работает внутри браузера и почему он стал единственным языком, который понимает каждый браузер на планете.
🕰️ История: рождение за 10 дней
Чтобы понять JavaScript, нужно знать историю его появления. Это не просто любопытный факт — это объясняет многие особенности языка, которые поначалу кажутся странными.
Дело было в 1995 году. Интернет только набирал популярность. Сайты были статическими — просто текст и картинки, без какой-либо интерактивности. Нажатие на кнопку просто перезагружало всю страницу. Браузеры были немногим умнее книжки.
Компания Netscape (тогдашний лидер браузерного рынка) решила это изменить. Они наняли программиста по имени Брендан Айк (Brendan Eich) с задачей: создать язык программирования для браузера. Срок — десять дней.
⚡ 10 дней! Брендан Айк создал первую версию JavaScript за 10 дней в мае 1995 года. Это объясняет, почему в языке есть некоторые странные вещи — не было времени всё продумать идеально. Но несмотря на это, он оказался настолько гибким, что выжил и стал доминирующим языком веба.
Изначально язык назывался Mocha, потом LiveScript, и наконец получил имя JavaScript. Это маркетинговый ход — в 1995 году язык Java был очень популярен, и Netscape решила воспользоваться этой модой. По сути же JavaScript и Java — абсолютно разные языки, у них почти ничего общего. Это примерно как «Индия» и «Индиана» — созвучно, но одна это страна, другая — штат США.
В 1996 году Microsoft, видя успех Netscape, создала собственную версию — JScript для Internet Explorer. Началась так называемая «война браузеров» — каждый браузер имел свою несовместимую версию языка, и разработчики страдали. В 1997 году была принята стандартизация под названием ECMAScript (ECMA — европейская организация по стандартизации). С тех пор JavaScript развивается по этому стандарту. Версии ECMAScript — ES5 (2009), ES6/ES2015, ES2020 и далее — это и есть новые версии JavaScript.
Создан за 10 дней Бренданом Айком в Netscape
Стандартизация как ECMAScript — единый стандарт для всех браузеров
Создан Node.js — JS вышел за пределы браузера на сервер
Самый популярный язык программирования в мире по данным GitHub
🌐 Зачем нужен JavaScript: единственный язык браузера
Вот ключевой факт, который нужно запомнить раз и навсегда:
Браузер понимает ровно три языка:
- HTML — структура страницы (что на ней есть: заголовки, кнопки, параграфы)
- CSS — оформление (как это выглядит: цвета, размеры, шрифты)
- JavaScript — поведение (что происходит при взаимодействии: клики, анимации, запросы)
Если хотите сделать что-то интерактивное в браузере — JavaScript нет альтернативы. Нет такого варианта: «я не буду учить JS, я возьму другой язык для браузера». Все фреймворки (React, Vue, Angular) и все инструменты для фронтенда в итоге компилируются в JavaScript — потому что браузер понимает только его.
Что конкретно делает JavaScript на страницах, которые вы используете каждый день?
- Когда вы лайкаете пост — кнопка меняется без перезагрузки страницы
- Когда вводите текст в поиске — появляются подсказки в реальном времени
- Когда форма предупреждает «поле обязательно» до отправки — это JS проверяет данные
- Когда чат обновляется без перезагрузки — JS получает новые сообщения в фоне
- Когда анимация плавно разворачивается — JS или CSS-анимации, запущенные через JS
- Когда интерфейс Google Maps перетаскивается мышью — чистый JS
💡 Простая аналогия: HTML — это кости и скелет человека (структура). CSS — это кожа и одежда (внешность). JavaScript — это мышцы и нервная система (движение и реакция). Без JS сайт — это просто красиво оформленный документ, как книга. С JS — это живое приложение.
⚙️ Как JavaScript работает в браузере
Когда вы открываете страницу в браузере, происходит следующее:
Он читает HTML сверху вниз и строит DOM — «дерево объектов документа» (Document Object Model). DOM — это внутреннее представление страницы, с которым JavaScript и работает.
Когда парсер HTML встречает тег <script>, он передаёт управление движку JavaScript. Обычная загрузка HTML приостанавливается.
Движок читает ваш JavaScript-код, компилирует его в машинный код и выполняет. Всё это происходит настолько быстро, что пользователь не замечает задержки.
После загрузки JS продолжает жить на странице и слушать события: клики, нажатия клавиш, движения мыши. Когда пользователь что-то делает — выполняется соответствующая функция.
JavaScript — это интерпретируемый язык. Это значит, что браузер не требует от вас предварительной компиляции (в отличие от Java или C++). Вы написали код — браузер тут же его выполнил. Именно это делает разработку для веба такой быстрой и удобной: написал, открыл в браузере, увидел результат.
🔥 Что такое движок V8
Движок (engine) — это программа внутри браузера, которая читает ваш JavaScript-код и превращает его в инструкции, понятные процессору компьютера. Без движка код остался бы просто текстом.
У каждого браузера есть свой движок:
Движок V8 — разработан Google. Самый быстрый и распространённый.
Движок SpiderMonkey — разработан Mozilla. Один из старейших.
Движок JavaScriptCore (Nitro) — разработан Apple для iOS и macOS.
Самый известный из них — V8, созданный Google в 2008 году для Chrome. Он написан на языке C++ и отличается тем, что использует технологию JIT-компиляции (Just-In-Time, «точно в срок»).
🔑 Как работает JIT: Обычный интерпретатор читает и выполняет код построчно — медленно. V8 анализирует код, находит «горячие» (часто выполняемые) части и компилирует их прямо в машинный код на лету. Код выполняется практически с той же скоростью, что и написанный на C++. Именно поэтому современный JavaScript — невероятно быстрый.
Если хотите проверить это прямо сейчас — нажмите F12 в Chrome, перейдите на вкладку Console и напечатайте:
console.log("Привет из V8!")
Нажмите Enter. V8 прямо сейчас выполнит этот код и выведет текст. Добро пожаловать в JavaScript!
🟢 Node.js: JavaScript вне браузера
В 2009 году произошло нечто революционное. Программист Райан Даль (Ryan Dahl) взял движок V8, вырвал его из браузера и встроил в отдельную программу, которая могла запускать JavaScript на сервере и на компьютере напрямую. Эта программа называется Node.js.
- Управляет страницей (DOM)
- Реагирует на действия пользователя
- Делает запросы к серверу
- Не имеет доступа к файлам на компьютере
- Ограничен sandbox-ом браузера
- Запускается напрямую на компьютере
- Имеет доступ к файлам и базам данных
- Может создавать серверы
- Может работать в терминале
- Нет ограничений браузерного sandbox-а
Благодаря Node.js одним языком — JavaScript — можно писать и фронтенд (то, что видит пользователь в браузере), и бэкенд (серверную логику). Это огромное преимущество: не нужно переключаться между Python/PHP для сервера и JS для браузера. Один язык — везде.
🛠️ Что работает на Node.js в реальности: серверная часть Discord, Netflix, LinkedIn, PayPal. Инструменты командной строки. Пакетные менеджеры npm и yarn. Сборщики Webpack и Vite. Фреймворки Next.js и Nest.js. В нашем курсе мы будем использовать Node.js для запуска скриптов прямо в терминале, не открывая браузер.
Вот как выглядит запуск JavaScript через Node.js. Создаёте файл hello.js и пишете:
console.log("Привет из Node.js!")
Открываете терминал и запускаете:
node hello.js
В терминале появляется: Привет из Node.js!. Без браузера, без HTML — просто JavaScript и Node.js. В следующих уроках мы установим всё необходимое и сделаем это вместе.
📊 JavaScript сегодня: почему это важно знать
Зачем знать историю и устройство языка, который вы только начинаете учить? Потому что это помогает понять, почему JS такой, какой он есть, и не удивляться некоторым его особенностям.
По данным Stack Overflow и GitHub — JavaScript 11 лет подряд занимает первое место по популярности среди разработчиков
Фронтенд, бэкенд (Node.js), мобильные приложения (React Native), десктоп (Electron), умные устройства — JS проник повсюду
npm (пакетный менеджер для JS) содержит более 2 миллионов пакетов — готовых решений для любых задач
🎯 Итого: JavaScript создан в 1995 году за 10 дней, был стандартизирован как ECMAScript в 1997-м, в 2009-м вышел за пределы браузера через Node.js, и сегодня это единственный язык, который понимает браузер, и один из самых востребованных языков мира. Хорошее начало для изучения!
✅ Итоги урока
- JavaScript создан в 1995 году Бренданом Айком за 10 дней в компании Netscape
- Название «JavaScript» — маркетинг; к языку Java он не имеет отношения
- Браузер понимает три языка: HTML (структура), CSS (стиль), JavaScript (поведение)
- Движок V8 (Chrome/Node.js) — программа, которая превращает JS-код в машинный код с помощью JIT-компиляции
- Все браузеры имеют встроенный JS-движок: V8 (Chrome/Edge), SpiderMonkey (Firefox), Nitro (Safari)
- Node.js — это V8 вне браузера. Позволяет запускать JavaScript на сервере и в терминале
- Один язык — для фронтенда и бэкенда. JavaScript — самый популярный язык мира уже больше 10 лет
В следующем уроке — установим инструменты: VS Code, Node.js и откроем консоль браузера. Это будет первая рабочая среда разработчика. 🛠️
История и устройство JavaScript
6 вопросов