Пошук уроків, статей та іншого контенту
Попрактикуємо інтерактивне виконання JavaScript у REPL та використання його команд для швидкої перевірки коду.
REPL — це інтерактивне середовище виконання коду. Назва походить від чотирьох операцій:
Read — прочитати введений код;
Eval — виконати його;
Print — показати результат;
Loop — повторити процес.
У Node.js REPL дає змогу виконувати JavaScript невеликими фрагментами без створення окремого файлу. Це зручно, щоб:
швидко перевірити синтаксис;
протестувати метод масиву або рядка;
обчислити значення;
перевірити роботу вбудованого модуля;
дослідити поведінку JavaScript.
Відкрийте термінал і виконайте команду:
nodeПісля запуску з’явиться запрошення >:
Welcome to Node.js v22.0.0.
Type ".help" for more information.
>Тепер можна вводити JavaScript:
> 2 + 3
5
> "Node.js".toUpperCase()
'NODE.JS'
> [1, 2, 3].map(number => number * 2)
[ 2, 4, 6 ]Node.js одразу виконує кожен завершений вираз і виводить його результат.
Щоб завершити REPL, виконайте команду:
.exitТакож REPL можна завершити комбінацією клавіш:
Ctrl + D — завершити поточний сеанс;
Ctrl + C двічі — вийти з REPL.
У REPL можна створювати змінні та використовувати їх у наступних командах:
> const price = 120
> const quantity = 3
> price * quantity
360Змінні, оголошені через const або let, залишаються доступними протягом поточного сеансу:
> const name = "Олена"
> `Привіт, ${name}!`
'Привіт, Олена!'Так само можна створювати функції:
> function isEven(number) {
... return number % 2 === 0
... }
undefined
> isEven(8)
true
> isEven(5)
falseПісля введення першого рядка функції Node.js показує .... Це означає, що ви перебуваєте всередині багаторядкового виразу та можете продовжити введення.
REPL розуміє, що вираз ще не завершений, якщо не закрито фігурну дужку, круглу дужку або іншу конструкцію:
> const numbers = [1, 2, 3, 4]
> numbers
[ 1, 2, 3, 4 ]Для зручного введення кількох рядків можна скористатися командою .editor:
> .editor
// Режим редактора: натисніть Ctrl+D для виконання кодуУ цьому режимі введіть код:
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(number => number * 2);
doubled;Після натискання Ctrl + D Node.js виконає весь фрагмент:
[ 2, 4, 6, 8, 10 ]Вийти з режиму редактора без виконання коду можна за допомогою Ctrl + C.
Команди REPL починаються з крапки. Вони не є JavaScript-кодом.
.helpПоказує список доступних команд:
> .help
.break Sometimes you need to stop a multi-line expression.
.clear Alias for .break
.editor Enter editor mode
.exit Exit the REPL
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a fileТочний список може відрізнятися залежно від версії Node.js.
.clearПерериває незавершений багаторядковий вираз і повертає звичайне запрошення >:
> function test() {
...
... .clear
>Команда .break виконує подібну дію:
> .breakЦе корисно, якщо ви випадково відкрили блок коду й більше не хочете його продовжувати.
.exitЗавершує поточний сеанс REPL:
> .exit.saveЗберігає введені команди у файл. Наприклад:
> .save session.jsПісля цього команди поточного сеансу буде записано у файл session.js.
Це зручно, якщо під час експерименту ви створили корисний код і хочете зберегти його для подальшого використання.
.loadЗавантажує та виконує JavaScript-файл у поточному REPL:
> .load session.jsНаприклад, створіть файл calculations.js з таким вмістом:
const firstNumber = 10;
const secondNumber = 4;
function multiply(a, b) {
return a * b;
}
console.log(multiply(firstNumber, secondNumber));Запустіть REPL:
nodeЗавантажте файл:
> .load calculations.js
40Після завантаження змінні та функція з файлу доступні в поточному сеансі:
> multiply(6, 7)
42_Node.js REPL зберігає результат останнього виразу у змінній _:
> 10 + 5
15
> _ * 2
30
> _ - 10
20Це зручно для послідовних обчислень.
Змінна _ містить саме останній результат, тому після іншої команди її значення зміниться:
> 2 + 2
4
> "hello"
'hello'
> _
'hello'Не варто покладатися на _ у звичайному коді програми. Це спеціальна можливість саме інтерактивного REPL.
У цьому прикладі перевіримо функцію, яка обчислює середнє значення масиву.
Запустіть REPL:
nodeВведіть функцію:
> function average(numbers) {
... if (numbers.length === 0) {
... return 0;
... }
...
... const total = numbers.reduce((sum, number) => sum + number, 0);
... return total / numbers.length;
... }
undefinedПеревірте її на різних даних:
> average([10, 20, 30])
20
> average([5, 10])
7.5
> average([])
0Можна окремо перевірити проміжні операції:
> [10, 20, 30].reduce((sum, number) => sum + number, 0)
60
> 60 / 3
20Такий підхід допомагає швидко дослідити частини функції ще до написання тестів або підключення її до основної програми.
У REPL можна використовувати звичні клавіші термінала:
клавіші зі стрілками — переміщення по введеному коду;
Up і Down — перегляд попередніх команд;
Tab — автодоповнення доступних властивостей і методів;
Ctrl + C — скасувати поточний рядок або незавершений вираз.
Наприклад, введіть:
> "JavaScript".Після натискання Tab Node.js може показати доступні методи рядка, зокрема toUpperCase, toLowerCase, includes та інші.
Під час швидкої перевірки коду можна діяти так:
Запустити REPL командою node.
Виконати невеликий вираз.
Зберегти результат у змінну.
Перевірити кілька варіантів даних.
За потреби використати .editor для багаторядкового коду.
Зберегти вдалий експеримент командою .save.
Завершити сеанс командою .exit.
Приклад:
> const text = " Node.js REPL "
> text.trim().toUpperCase()
'NODE.JS REPL'
> text.includes("REPL")
trueКоманди .help, .exit, .clear і .editor потрібно вводити саме як команди REPL:
> .helpНе потрібно брати їх у лапки або додавати крапку з комою.
Якщо після введення з’явилося ..., Node.js очікує продовження коду:
> function greet(name) {
... return `Привіт, ${name}!`;
... }Якщо ви випадково почали незавершений вираз, натисніть Ctrl + C або виконайте .break.
У межах одного сеансу не можна повторно оголосити змінну через const або let:
> const count = 1
> const count = 2
Uncaught SyntaxError: Identifier 'count' has already been declaredДля нового експерименту можна:
використати інше ім’я;
змінити значення через змінну, оголошену за допомогою let;
перезапустити REPL.
Команда .load calculations.js шукає файл у поточній робочій папці. Якщо Node.js не знаходить файл, перевірте:
назву файлу;
розширення .js;
папку, з якої запущено команду node.
REPL виводить результат виразу, але оголошення змінної або функції зазвичай повертає undefined:
> const value = 10
undefinedЦе не означає, що оголошення не спрацювало. Значення можна перевірити окремо:
> value
10Node.js REPL — інтерактивне середовище для швидкого виконання JavaScript.
Запуск REPL виконується командою node.
Кожен завершений вираз виконується одразу.
Команди, що починаються з крапки, керують самим REPL.
.help показує доступні команди.
.editor допомагає вводити багаторядковий код.
.clear і .break скасовують незавершений вираз.
.save зберігає команди сеансу у файл.
.load завантажує JavaScript-файл.
Змінна _ містить результат останнього виразу.
Для завершення роботи використовуйте .exit, Ctrl + D або двічі Ctrl + C.