REPL в Node.js: интерактивная консоль для экспериментов

Содержание

О проверке кода. Примеры не запускались в этой сессии (по договорённости — фокус на контенте, а не прогонах). Говорим прямо, а не ставим бейдж «проверено».

REPL — самый быстрый способ что-то проверить в Node.js: не нужно создавать файл, писать и запускать. Ввёл выражение — увидел результат. Разберём этот недооценённый инструмент.

Что это и как запустить

REPL (Read-Eval-Print-Loop) — интерактивная консоль, которая по кругу читает строку кода, выполняет, печатает результат и ждёт следующую. Запуск — просто node без имени файла:

$ node
Welcome to Node.js v22.
> 2 + 3
5
> const name = 'Аня'
undefined
> `Привет, ${name}`
'Привет, Аня'
> [1, 2, 3].map(x => x * 2)
[ 2, 4, 6 ]

Приглашение > ждёт ввода. Каждое выражение сразу вычисляется и печатается. Объявление переменной возвращает undefined (само объявление не имеет значения), а выражение — свой результат. Выход — .exit или дважды Ctrl+C.

Цикл REPL: Read-Eval-Print-Loop
  1. 1 ReadЧитает введённую строку кода
  2. 2 EvalВыполняет её в контексте Node
  3. 3 PrintПечатает результат выражения
  4. 4 LoopЖдёт следующую строку — и по кругу

Переменная _ и история

> 10 * 5
50
> _ + 100        // _ хранит прошлый результат
150
> _              // теперь _ равно 150
150

Подчёркивание _ хранит результат последнего выражения — удобно для цепочки расчётов без переменных. Стрелки вверх/вниз листают историю введённых команд, Tab — автодополнение (имена, свойства объекта, методы). Наберите []. и Tab — увидите все методы массива.

Команды с точкой

REPL понимает служебные команды, начинающиеся с точки:

> .help          # список всех команд
> .editor        # многострочный режим (пишем функцию, Ctrl+D — выполнить)
> .load app.js   # загрузить и выполнить файл в сессии
> .save session.js  # сохранить введённые команды в файл
> .clear         # сбросить контекст
> .exit          # выход
  • .editor — многострочный режим для функций и блоков (обычный ввод выполняет построчно);
  • .load файл — загрузить содержимое файла в сессию: продолжить эксперимент с готовым кодом;
  • .save файл — сохранить всё введённое в файл: превратить удачный эксперимент в скрипт.

Многострочный код

> function greet(name) {
... return `Привет, ${name}`;   // ... = REPL ждёт продолжения
... }
undefined
> greet('Аня')
'Привет, Аня'

Когда выражение не завершено (открытая скобка, function), REPL показывает ... и ждёт продолжения. Для больших блоков удобнее .editor. Модули подключают как обычно:

> const fs = require('node:fs')
> fs.readdirSync('.')            // сразу видим содержимое папки

Когда REPL удобнее скрипта

  • проверить поведение функции — как ведёт себя parseInt('08') или [1,2,3].flat();
  • изучить незнакомый API — набрать объект и Tab, посмотреть методы, попробовать вызовы;
  • быстрый расчёт — разовое вычисление без создания файла;
  • отладить кусок логики — вставить выражение и посмотреть результат.

Для одноразовых экспериментов REPL быстрее цикла «создать файл → написать → запустить → удалить». А вот для повторяемого кода лучше обычный скрипт — его можно сохранить, версионировать, запускать снова. REPL — для проб и изучения, файл — для работы. Похожий инструмент есть в браузере (консоль DevTools) — идея та же.


Смежные темы: уроки Node.js — основы среды; отладка Node.js — глубже проб; методы массива — что пробовать в REPL. Полный список — в уроках Node.js.

Частые вопросы

Что такое REPL в Node.js?
Интерактивная консоль, которая читает введённую строку кода, выполняет её, печатает результат и ждёт следующую. Название расшифровывается как Read-Eval-Print-Loop. Запускается командой node без имени файла.
Как запустить REPL?
Ввести в терминале node без аргументов и нажать Enter. Появится приглашение с угловыми скобками, куда можно вводить любые выражения JavaScript и сразу видеть результат. Выход — дважды Ctrl+C или команда .exit.
Что означает переменная _ в REPL?
Подчёркивание хранит результат последнего вычисленного выражения. Например, после 2+3 переменная _ равна 5, и её можно использовать в следующей команде. Это удобно для цепочки быстрых расчётов.
Чем REPL полезен на практике?
Для быстрой проверки поведения функции, тестирования куска кода, изучения незнакомого API без создания файла. Ввёл выражение — сразу увидел результат. Для одноразовых экспериментов это быстрее, чем писать и запускать скрипт.
Можно ли загрузить свой файл в REPL?
Да, командой .load путь загружает содержимое файла в сессию, а require подключает модуль как обычно. Также .save сохраняет введённые команды в файл. Это позволяет продолжить эксперимент с уже написанным кодом.