Node.js REPL (интерактивный интерпретатор)
Node.js предоставляет встроенный REPL (Read-Eval-Print Loop) — интерактивную среду программирования, которая может выполнять код JavaScript в терминале.
Название REPL происходит от его основных операций: Read, Eval, Print и Loop.
Node поставляется с интерактивным интерпретатором, который может выполнять следующие задачи:
Чтение— чтение пользовательского ввода, разбор входной структуры данных JavaScript и сохранение её в памяти.
Eval— выполнение входной структуры данных
Print— вывод результата
Loop— повторение вышеуказанных шагов, пока пользователь дважды не нажмётctrl-cдля выхода.
REPL позволяет напрямую вводить и немедленно выполнять код JavaScript, быстро проверяя фрагменты кода.
REPL подходит для тестирования простой логики, отладки и проверки нового синтаксиса или API Node.js.
Начните изучать REPL
Мы можем ввести следующую команду, чтобы запустить терминал Node:
node
После выполнения появляется следующее содержимое:
# node Welcome to Node.js v20.1.0. Type ".help" for more information. >
На этом этапе мы можем>ввести простые выражения после приглашения и нажать клавишу Enter, чтобы вычислить результат.
Вычисление простых выражений
Далее давайте выполним несколько простых математических операций в окне командной строки REPL Node.js:
$ node > 1 +4 5 > 5 / 2 2.5 > 3 * 6 18 > 4 - 1 3 > 1 + ( 2 * 3 ) - 4 3 >
Использование переменных
Вы можете хранить данные в переменных и использовать их, когда это необходимо.
Объявление переменной требует ключевого словаvar. Если ключевое слово var не используется, переменная будет выведена напрямую.
Используя ключевое словоvar, вы можете использовать console.log() для вывода переменной.
$ node
> x = 10
10
> var y = 10
undefined
> x + y
20
> console.log("Hello World")
Hello World
undefined
> console.log("www.example.com")
www.example.com
undefined
Многострочные выражения
Node REPL поддерживает ввод многострочных выражений, что несколько похоже на JavaScript. Далее давайте выполним цикл do-while:
$ node
> var x = 0
undefined
> do {
... x++;
... console.log("x: " + x);
... } while ( x < 5 );
x: 1
x: 2
x: 3
x: 4
x: 5
undefined
>
...Символ из трёх точек автоматически генерируется системой; вы просто нажимаете Enter, чтобы начать новую строку. Node автоматически определит, является ли это продолжающимся выражением.
Переменная подчёркивания (_)
Вы можете использовать символ подчёркивания (_), чтобы получить результат предыдущего выражения:
$ node > var x = 10 undefined > var y = 20 undefined > x + y 30 > var sum = _ undefined > console.log(sum) 30 undefined >
Команды REPL
Сводная таблица распространённых команд и сочетаний клавиш в Node.js REPL:
| Команда/Сочетание клавиш | Описание |
|---|---|
.help | Отображает все доступные команды в REPL и их описания. |
.exit | Выходит из сеанса REPL, эквивалентно нажатиюCtrl + D。 |
.save <filename> | Сохраняет текущий сеанс REPL в указанный файл. |
.load <filename> | Загружает и выполняет код из указанного файла в REPL. |
.break | Выходит из режима ввода многострочных выражений и возвращается в режим однострочного ввода. |
.clear | Сбрасывает контекст REPL, что эквивалентно очистке всех переменных и состояния. |
Ctrl + C | Принудительно завершает текущий ввод или прерывает команду. При двойном нажатии выходит из сеанса REPL. |
Ctrl + D | Завершает сеанс REPL, эквивалентно.exit。 |
Ctrl + L | Очищает экран, аналогично вводуclear。 |
Arrow keys (↑/↓) | Просмотр истории ввода, просмотр и повторное выполнение ранее введённых команд. |
Tab | Автодополнение ввода, отображение возможных вариантов или завершение команд. |
_ | Используется для доступа к результату предыдущего выражения. |
Ctrl + R | Вход в обратный поиск по истории для поиска ранее введённых команд. |
Ctrl + U | Удалить всё содержимое от курсора до начала текущей строки. |
Ctrl + K | Удалить всё содержимое от курсора до конца текущей строки. |
Ctrl + A | Переместить курсор в начало строки. |
Ctrl + E | Переместить курсор в конец строки. |
Ctrl + B | Переместить курсор на один символ назад. |
Ctrl + F | Переместить курсор на один символ вперёд. |
Ctrl + N | Показать следующую запись истории (то же, что и клавиша «Стрелка вниз»). |
Ctrl + P | Показать предыдущую запись истории (то же, что и клавиша «Стрелка вверх»). |
Ctrl + Z | Приостановить сеанс REPL и перевести его в фоновый режим (доступно в некоторых системах). |
Остановить REPL
Ранее мы упоминали, что двукратное нажатие сочетания клавишctrl + cзавершит работу REPL:
$ node > (^C again to quit) >
Расширенные возможности REPL
- Автодополнение: Введите часть кода и нажмите
Tab, и REPL попытается завершить его или показать возможные варианты. - Кэширование результатов: REPL автоматически сохраняет результат последнего выполнения в специальную переменную
_. Например:> 5 + 5 10 > _ * 2 20
Демонстрация примера GIF
Далее мы продемонстрируем примеры операций с помощью GIF-изображения:
Другие расширения