Что такое JavaScript и зачем он нужен

знакомство≈ 6 минут

Здесь будет встроен видео-разбор темы (5–7 минут, YouTube / RuTube / VK Видео) — тем, кто лучше воспринимает на слух, текст ниже не обязателен.

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

Разделы темы:·

Прежде чем копаться в истории, посмотрите, как мало нужно, чтобы написать первую программу на JavaScript:

js
Tab добавляет отступ. Чтобы выйти из редактора, нажмите Escape — фокус перейдёт на кнопку запуска.

В 1995 году компания Netscape выпускала самый популярный браузер того времени — Navigator. Страницы тогда были неподвижными, как журнальный разворот: текст, картинки и ни одной живой детали. Netscape захотела встроить в браузер язык, на котором смогут писать не только профессионалы, и поручила задачу инженеру Брендану Айку. Первую версию он собрал примерно за десять дней — рекордный срок для языка, который потом захватит весь веб.

С названием вышла забавная история. Язык не имеет почти ничего общего с Java, но Java в тот момент была самой модной технологией — и имя JavaScript выбрали ради шумихи в прессе. Маркетинговый трюк сработал слишком хорошо: путаница живёт до сих пор.

Java и JavaScript — родня не больше, чем гвоздь и гвоздика

Рабочее имя языка было Mocha, к первой бета-версии его переименовали в LiveScript, и только к релизу — в JavaScript. Само слово «Java» было товарным знаком компании Sun Microsystems (сейчас права у Oracle), поэтому официальный стандарт языка носит нейтральное имя — ECMAScript. О нём поговорим чуть ниже.

JavaScript выполняется везде, где установлен его движок — специальная программа-исполнитель. Сначала движки жили только внутри браузеров. В 2009 году появился Node.js: движок вынесли из браузера, и JavaScript научился работать на серверах. Дальше язык добрался до телефонов и настольных программ.

ПлатформаТехнологияКто так делает
Браузервстроен в каждыйлюбой сайт: от блога до Google Docs
СерверNode.jsNetflix, PayPal
Мобильные приложенияReact NativeInstagram, Discord
Настольные программыElectronVS Code, Slack, Figma

Получается редкая ситуация: один язык покрывает все основные платформы. Выучив JavaScript, вы сможете собрать и сайт, и сервер к нему, и мобильное приложение — не переучиваясь.

У JavaScript на странице три суперспособности. Первая — реагировать на действия пользователя: клики, нажатия клавиш, движение мыши. Вот упрощённая модель того, что происходит, когда вы жмёте кнопку «Нравится»:

js
Tab добавляет отступ. Чтобы выйти из редактора, нажмите Escape — фокус перейдёт на кнопку запуска.

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

Саму страницу, с которой работает скрипт, описывают два других языка: разметка HTML говорит, что на ней есть, а стили CSS — как это выглядит. JavaScript — третий слой поверх них, и учебник опирается на первые два. Если слова HTML и CSS вам пока ничего не говорят, начните с пролога о разметке и стилях.

Движок — это программа, которая читает ваш код и выполняет его. Самый известный — V8: он работает в Chrome, Edge и Node.js. В Firefox трудится SpiderMonkey, в Safari — JavaScriptCore. Современные движки на лету превращают JavaScript в машинные инструкции, поэтому даже тяжёлые вычисления пролетают незаметно:

js
Tab добавляет отступ. Чтобы выйти из редактора, нажмите Escape — фокус перейдёт на кнопку запуска.

Чтобы все движки понимали код одинаково, язык описан стандартом ECMAScript. За него отвечает комитет TC39, и с 2015 года новая версия стандарта выходит каждый год: ES2015, ES2016 и так далее. Браузеры подтягивают свежие возможности с небольшим отставанием.

Раньше версии нумеровали по порядку: ES3, ES5. Крупное обновление 2015 года должно было стать ES6, но комитет перешёл на годовую схему имён — так родился дубль «ES6 = ES2015». В статьях и вакансиях встречаются оба варианта, пугаться не нужно.

Первая причина — монополия. Управлять страницей браузер из коробки позволяет только одному языку — JavaScript. Другие языки попадают на страницу компиляцией — в JavaScript или в WebAssembly, второй формат, который браузеры исполняют нативно; но и WebAssembly сам не слушает клики и не меняет страницу — для этого ему нужен JavaScript. Хотите делать интерактивные сайты — обойти его не получится.

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

js
Tab добавляет отступ. Чтобы выйти из редактора, нажмите Escape — фокус перейдёт на кнопку запуска.

  • JavaScript создан в 1995 году Бренданом Айком в Netscape — первая версия за десять дней; имя, похожее на Java, — маркетинговый ход, языки не родственники.
  • Работает везде, где есть движок: в браузере, на сервере (Node.js), в мобильных и настольных приложениях.
  • На странице умеет три вещи: реагировать на действия пользователя, менять содержимое на лету и обмениваться данными с сервером без перезагрузки.
  • Код выполняют движки (V8, SpiderMonkey, JavaScriptCore), а сам язык описан стандартом ECMAScript — новая версия выходит каждый год.
  • Учить его стоит потому, что страницей браузер управляет только через него, и это крупнейшая экосистема в программировании.

1/3Как связаны Java и JavaScript?

2/3Что такое ECMAScript?

3/3Где может выполняться JavaScript-код?

Представьтесь консоли

Допишите программу так, чтобы она вывела две строки: ваше имя и фразу «Я изучаю JavaScript». Каждая строка — отдельный вызов console.log.

js
Tab добавляет отступ. Чтобы выйти из редактора, нажмите Escape — фокус перейдёт на кнопку запуска.

Добавьте ещё один вызов: console.log("Я изучаю JavaScript"); — каждый вызов console.log печатает свой текст с новой строки.

Возраст языка

JavaScript создан в 1995 году. Выведите в консоль, сколько лет исполнится языку в 2030 году. Подсказка: арифметику можно писать прямо внутри скобок console.log.

console.log(2030 - 1995); // 35 — выражение вычисляется до вывода, поэтому в консоли появится готовый результат.