Добро пожаловать в JavaScript!
Что такое JavaScript, где он работает (браузер и Node.js), что он умеет и почему его стоит изучить — дружелюбное введение для начинающих с примерами.
JavaScript (часто сокращается до JS) — язык программирования для веба. Он появился как инструмент создания интерактивных веб-страниц, а сегодня используется для всего: от кнопок и анимаций в браузере до полноценных серверных приложений на Node.js. Это один из немногих языков, который можно применять как на стороне клиента, так и на стороне сервера, — во многом именно поэтому он столь популярен.
На этой странице рассказывается, что такое JavaScript, в каких двух средах он работает (браузер и сервер), что он умеет делать и почему его стоит изучить. К концу вы поймёте, какое место JavaScript занимает в разработке и что изучать дальше.
Что такое JavaScript?
JavaScript был создан в 1995 году Бренданом Эйхом в компании Netscape. Он был разработан для того, чтобы веб-страницы реагировали на действия пользователя — нажатие кнопок, заполнение форм или отображение контента без перезагрузки страницы.
Язык стандартизирован под спецификацией ECMAScript. Каждый ежегодный выпуск добавляет новые возможности; издание 2015 года (широко известное как ES6) стало важным скачком: в нём появились стрелочные функции, шаблонные строки, классы и модули. Когда говорят «современный JavaScript», обычно имеют в виду ES6 и более поздние версии.
Несколько терминов, которые характеризуют JavaScript и часто встречаются:
- Высокоуровневый — вы не управляете памятью или аппаратным обеспечением напрямую.
- Динамически типизированный — переменная может содержать значение любого типа, а проверка типов происходит во время выполнения программы, а не до него.
- Интерпретируемый (с JIT-компиляцией) — код выполняется без отдельного шага компиляции; движок (например, V8 в Chrome) компилирует его на лету.
Несмотря на название, JavaScript не имеет ничего общего с Java. Это было маркетинговое решение; два языка принципиально разные.
Вот небольшая программа, которая выводит сообщение — такой код одинаково работает и в консоли браузера, и в Node.js:
const language = "JavaScript";
console.log(`Hello from ${language}!`);
// Output: Hello from JavaScript!Что умеет JavaScript?
- Обновлять страницу на лету. JavaScript может изменять содержимое веб-страницы без её перезагрузки. Это делается через DOM (Document Object Model) — живое представление страницы в браузере.
- Реагировать на события. Он выполняет код в ответ на клики, нажатия клавиш, прокрутку, отправку форм и многое другое.
- Асинхронно обращаться к серверам. Он может получать данные в фоновом режиме (например, проверять имя пользователя во время набора) без блокировки страницы.
- Хранить и обрабатывать данные. Он имеет встроенную поддержку массивов (array), объектов (object), дат, математических вычислений и обработки текста.
Например, этот код изменяет главный заголовок страницы при запуске в браузере:
// Runs in the browser: replace the text of the first <h1>
document.querySelector('h1').textContent = 'Hello, JavaScript!';Где работает JavaScript
JavaScript требует движка для выполнения. Две наиболее распространённые среды — это браузер и Node.js.
В браузере
Каждый современный браузер (Chrome, Firefox, Safari, Edge) имеет встроенный движок JavaScript. Именно здесь JavaScript зародился, и именно он делает веб-страницы интерактивными. JavaScript подключается к HTML-странице с помощью тега <script>:
<!-- Load an external file -->
<script src="app.js"></script>
<!-- Or write code inline -->
<script>
console.log('This runs in the browser.');
</script>Вы можете попробовать JavaScript прямо сейчас, не написав ни строчки HTML: откройте инструменты разработчика в браузере (нажмите F12 или Ctrl+Shift+I / Cmd+Option+I на Mac), перейдите на вкладку Console и вводите код напрямую.
На сервере с Node.js
Node.js позволяет запускать JavaScript вне браузера — на сервере, на вашем компьютере или в инструментах сборки. Сервер — это компьютер, который отвечает на запросы, например отправляя обратно веб-страницу или данные.
- Один язык — и клиент, и сервер. Вы можете писать и то, что видит пользователь, и серверную логику на одном языке, что упрощает разработку.
- Хорошо подходит для задач с большим количеством I/O. Node.js эффективно обрабатывает множество одновременных соединений, что отлично подходит для API и приложений реального времени, таких как чаты.
- Огромная экосистема пакетов. Node.js поставляется с npm — крупнейшим реестром программного обеспечения в мире, так что вы можете использовать готовые инструменты вместо того, чтобы писать всё с нуля.
Ключевое различие: код в браузере может взаимодействовать со страницей и пользователем (document, window), тогда как код Node.js может взаимодействовать с системой (файлы, сетевые серверы), но не имеет страницы. Основной язык одинаков в обоих случаях.
Почему стоит изучать JavaScript?
- Он повсюду. Практически каждый сайт использует JavaScript, поэтому это фундаментальный навык для веб-разработки.
- Он открывает доступ к фреймворкам. Знание JavaScript позволяет использовать популярные инструменты, такие как React, Angular, Vue.js и Node.js для создания более крупных приложений.
- Он работает почти везде. Помимо веба, на JavaScript создаются мобильные приложения (React Native) и настольные приложения (Electron).
- У него большое сообщество. Доступно множество учебников, библиотек и помощи, когда вы заходите в тупик.
- Он востребован. Многие работодатели ищут специалистов со знанием JavaScript.
- Он даёт быструю обратную связь. Вы сразу видите, как работает ваш код в браузере, что делает обучение приятным.
Следующие шаги
Теперь, когда вы знаете, что такое JavaScript и где он работает, лучший способ научиться — это писать код. Рекомендуем следующие главы:
- Переменные JavaScript — как хранить и именовать данные.
- Типы данных JavaScript — виды значений, с которыми работает JavaScript.
- Функции JavaScript — как группировать повторно используемый код.
- Комментарии JavaScript — как аннотировать свой код.
Хотите ли вы создать сайт, писать серверные приложения или просто научиться программировать — JavaScript отличное место для старта. Продолжайте учиться вместе с нами на W3Docs.