Что такое JavaScript и зачем он нужен
Здесь будет встроен видео-разбор темы (5–7 минут, YouTube / RuTube / VK Видео) — тем, кто лучше воспринимает на слух, текст ниже не обязателен.
Сайты умеют реагировать на клики, подгружать ленту без перезагрузки и подсказывать, что пароль слишком короткий, — всё это делает JavaScript. Разберёмся, откуда взялся этот язык, где он работает и почему именно с него удобно начинать путь в программирование.
Прежде чем копаться в истории, посмотрите, как мало нужно, чтобы написать первую программу на JavaScript:
В 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.js | Netflix, PayPal |
| Мобильные приложения | React Native | Instagram, Discord |
| Настольные программы | Electron | VS Code, Slack, Figma |
Получается редкая ситуация: один язык покрывает все основные платформы. Выучив JavaScript, вы сможете собрать и сайт, и сервер к нему, и мобильное приложение — не переучиваясь.
У JavaScript на странице три суперспособности. Первая — реагировать на действия пользователя: клики, нажатия клавиш, движение мыши. Вот упрощённая модель того, что происходит, когда вы жмёте кнопку «Нравится»:
Вторая способность — менять содержимое страницы на лету: добавлять и убирать элементы, переписывать текст, перекрашивать блоки. Третья — обмениваться данными с сервером без перезагрузки: именно так лента соцсети подгружает новые посты, пока вы её листаете. Каждую из этих способностей мы подробно разберём в следующих главах.
Саму страницу, с которой работает скрипт, описывают два других языка: разметка HTML говорит, что на ней есть, а стили CSS — как это выглядит. JavaScript — третий слой поверх них, и учебник опирается на первые два. Если слова HTML и CSS вам пока ничего не говорят, начните с пролога о разметке и стилях.
Движок — это программа, которая читает ваш код и выполняет его. Самый известный — V8: он работает в Chrome, Edge и Node.js. В Firefox трудится SpiderMonkey, в Safari — JavaScriptCore. Современные движки на лету превращают JavaScript в машинные инструкции, поэтому даже тяжёлые вычисления пролетают незаметно:
Чтобы все движки понимали код одинаково, язык описан стандартом ECMAScript. За него отвечает комитет TC39, и с 2015 года новая версия стандарта выходит каждый год: ES2015, ES2016 и так далее. Браузеры подтягивают свежие возможности с небольшим отставанием.
Раньше версии нумеровали по порядку: ES3, ES5. Крупное обновление 2015 года должно было стать ES6, но комитет перешёл на годовую схему имён — так родился дубль «ES6 = ES2015». В статьях и вакансиях встречаются оба варианта, пугаться не нужно.
Первая причина — монополия. Управлять страницей браузер из коробки позволяет только одному языку — JavaScript. Другие языки попадают на страницу компиляцией — в JavaScript или в WebAssembly, второй формат, который браузеры исполняют нативно; но и WebAssembly сам не слушает клики и не меняет страницу — для этого ему нужен JavaScript. Хотите делать интерактивные сайты — обойти его не получится.
Вторая причина — экосистема, крупнейшая в мире программирования: миллионы готовых пакетов в npm, огромное сообщество и ответ почти на любой вопрос уже где-то написан. А порог входа минимальный: не нужно ничего устанавливать, редактор кода и браузер уже у вас есть.
- JavaScript создан в 1995 году Бренданом Айком в Netscape — первая версия за десять дней; имя, похожее на Java, — маркетинговый ход, языки не родственники.
- Работает везде, где есть движок: в браузере, на сервере (
Node.js), в мобильных и настольных приложениях. - На странице умеет три вещи: реагировать на действия пользователя, менять содержимое на лету и обмениваться данными с сервером без перезагрузки.
- Код выполняют движки (
V8, SpiderMonkey, JavaScriptCore), а сам язык описан стандартомECMAScript— новая версия выходит каждый год. - Учить его стоит потому, что страницей браузер управляет только через него, и это крупнейшая экосистема в программировании.
1/3Как связаны Java и JavaScript?
2/3Что такое ECMAScript?
3/3Где может выполняться JavaScript-код?
Представьтесь консоли
Допишите программу так, чтобы она вывела две строки: ваше имя и фразу «Я изучаю JavaScript». Каждая строка — отдельный вызов console.log.
Добавьте ещё один вызов: console.log("Я изучаю JavaScript"); — каждый вызов console.log печатает свой текст с новой строки.
Возраст языка
JavaScript создан в 1995 году. Выведите в консоль, сколько лет исполнится языку в 2030 году. Подсказка: арифметику можно писать прямо внутри скобок console.log.
console.log(2030 - 1995); // 35 — выражение вычисляется до вывода, поэтому в консоли появится готовый результат.