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

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

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

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

Первый способ — классика Windows. Нужно зайти на официальный сайт и скачать версию установщика, подходящую по битности к вашей операционной системе. Далее скачиваете файл, запускаете и ждете конца установки.

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

Ubuntu

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

В примере для скачивания файла используется популярная и полезная утилита командной строки curl. Если она не установлена в вашей операционной системой, то сделайте это командой:

$ sudo apt install curl

macOS

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

Windows

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

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

Проверяем:

$ node -v
v12.0.0

Версия, которую вы увидите, должна быть не ниже 8.

Если все прошло удачно, самое время повыполнять код на js. Node.js поставляется со встроенным REPL (Read Eval Print Loop). REPL – это программа, которая работает как командная оболочка. Она ожидает ввод от пользователя (Read), выполняет введенный код (Eval) и печатает на экран результат (Print), затем снова входит в режим ожидания (Loop). Для ее запуска достаточно набрать node:

$ node
>

Если все прошло успешно, то REPL выведет приглашение для ввода инструкций: >. Попробуйте поиграться с ним. Наберите любое арифметическое выражение, например, 1 + 3 и нажмите Enter. Обратите внимание на то, что нет необходимости использовать console.log. REPL автоматически распечатывает последний вычисленный результат.

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

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

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

$ node
> cd ~
cd ~
   ^

SyntaxError: Unexpected token ~

Чтобы выйти из REPL, нужно либо набрать .exit и нажать Enter, либо два раза нажать CTRL + C

Для успешного обучения крайне важно, чтобы весь код, который мы демонстрируем в дальнейшем, вы набирали и запускали локально. Только тогда будет приходить настоящее понимание того, что происходит. В тех случаях когда репла недостаточно, код можно и нужно запускать в виде файлов. Для этого нужно создать файл с любым именем и расширением js, например, index.js, а затем запустить:

// index.js
console.log('hello!');
$ node index.js
hello!

Обратите внимание, что запускать код нужно из той же директории, в которой лежит файл index.js.

Если в вашем коде содержатся импорты, то код упадет с ошибкой SyntaxError, даже если он работает на Хекслете. В одном из следующих уроков я объясню, почему так происходит и как это починить.

NVM

Совсем другой способ установки Node.js — утилита nvm. Кроме установки любых версий Node.js, она позволяет удобно переключаться между версиями. Это может понадобиться, когда вы одновременно работаете над двумя проектами, требующими разные версии Node.js.

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

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

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

  1. Разные способы загрузки и установки Node.js
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →