Введение

В этом курсе, вы узнаете что из себя представляет язык JavaScript, чем он отличается от Node.js, что такое REPL, как установить и настроить необходимое окружение и подружиться с транспайлингом.

Перед тем как начать, убедитесь, что:

  • Вы используете операционную систему, удобную для разработки (например Ubuntu, macOS), или настроили Windows согласно инструкции.
  • Вы знаете как запустить терминал и можете выполнить команды в нем (курс по основам командной строки).

Окружение

Об этом мало говорят, но работа с командной строкой, настройка окружения (установка языка, библиотек), взаимодействие с операционной системой – это значительная часть работы любого программиста на любом языке, на бекенде и даже на фронтенде. От этого зависит эффективность отладки, способность самостоятельно справляться с проблемами и даже качество кода.

Когда программист только приходит на свою первую работу, то первое время он пытается запустить проект у себя локально на компьютере. Чем больше и сложнее проект, тем больше разных знаний для этого может понадобится. Начиная от сетей (порты, ip-адреса) и виртуализации (докер), заканчивая сборщиками (webpack). В некоторых компаниях подобная настройка может занимать дни, а в особо запущенных случаях и всю неделю. И это при условии достаточной квалификации программиста.

Изучение экосистемы своего языка процесс непрерывный и очень непредсказуемый. Постоянно возникающие непонятные ошибки это норма. Постоянное часовое гугление это тоже норма. Через это проходили все и это необходимое зло. Почему такое происходит? В отличие от языков программирования, где все подчиняется определенным правилам, экосистема это зоопарк из огромного количества программ, операционных систем и особенностей железа, которые очень хитрым образом переплетаются друг с другом. Настолько индивидуально, что практически у каждого программиста своя собственная уникальная ситуация.

Именно поэтому существуют тысячи статей по установке Node.js и постоянно появляются новые. А по комментариям к этим статьям можно заметить, что далеко не всем они помогли и пользователи сталкиваются с ошибками на каждом шагу.

Со временем, когда вы разберетесь, все это окажется не таким уж и страшным. Единственное важное условие – не пытайтесь решать проблемы методом тыка, старайтесь разобраться в их причинах. Только так вы вырастете как разработчик.

Установка Node.js

Для запуска кода на JavaScript необходимо скачать и установить Node.js. Сделать это можно разными способами.

Первый способ — классика Windows. Нужно зайти на официальный сайт, скачать и установить Node.js в систему.

Второй способ — использовать пакетный менеджер. Откройте терминал и выполните команду установки, соответствующую вашей операционной системе:

Ubuntu

$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install -y nodejs

macOS

# https://brew.sh/index_ru.html
$ brew install nodejs

Windows

# https://chocolatey.org/
$ cinst nodejs

Интерактивный запуск кода

Теперь убедимся в том, что Node.js поставлена и работает. Вероятно, в некоторых операционных системах понадобится перезапустить терминал или даже перезагрузиться.

Откройте терминал и наберите в нем следующую команду:

# Версия, которую вы увидите, должна быть не ниже чем показана здесь.
# Иначе возможно появление ошибок.

$ node --version
v14.1.0

Если все прошло удачно, самое время запустить код на JavaScript.

$ node
>

Запуск программы node запустит репл (REPL). Это среда похожая на обычный терминал, только вместо Bash-команд в нее вводится код на JavaScript. С его помощью можно набрать строчку кода и тут же выполнить ее нажав Enter.

$ node
> 1 + 5
6 # результат выполнения сразу отображается на экране
> 7 % 2
1

Такой способ работы очень хорошо подходит для быстрой проверки гипотез "а как работает эта штука?", а также для отладки и простых вычислений. Репл позволяет использовать переменные и запоминает предыдущий ввод:

$ node
> a = 5
5
> b = 10
10
> a + b
15

Чтобы выйти из репла, нужно либо набрать .exit и нажать Enter, либо два раза нажать CTRL + C. После этого мы окажемся внутри обычной командной оболочки.

$ node
Welcome to Node.js v14.1.0.
Type ".help" for more information.
> 1 + 5
6
>
(To exit, press ^C again or ^D or type .exit)
>
$

Разделяйте понятие репл nodejs и командная оболочка (например bash). Когда мы набираем node, то запускается программа, которая не имеет никакого отношения к оболочке, в которой она запустилась. Любая попытка пользоваться этим реплом как обычной оболочкой приведет к разным синтаксическим ошибкам:

$ node
> cd ~
cd ~
   ^

SyntaxError: Unexpected token ~

Запуск кода из файлов

Для постоянного кода репл уже не подходит, в этом случае его записывают в обычные текстовые файлы. Какой для этого использовать редактор? На сегодняшний день, самым распространенным и удобным редактором для кода считается Vscode. Скачайте его, установите и поизучайте интерфейс. У него много встроенных возможностей, которые расширяются плагинами.

Откройте редактор, создайте в нем файл с именем index.js и следующим содержимым:

console.log('Hello, Hexlet!');

Vscode имеет встроенные механизмы для запуска кода, но прямо сейчас, когда вы только учитесь, нужно уметь запускать код самостоятельно. Откройте терминал в той директории где вы создали файл в редакторе и выполните команду:

# Сначала перейдите в директорию с файлом index.js
$ node index.js
'Hello, Hexlet!'

Самостоятельная работа

  • Вычислите в репле значение выражения Math.sqrt(256) + 100

Дополнительные материалы

  1. Менеджер версий языков

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

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

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

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