私と同じ悩みを持つ方のために、共有させていただきます。
以下のQAにてご指導頂いた内容ですので、経緯等は以下のページを参照ください。
動作
実行すると数字1を聞かれます(今回は10を入力)。
入力すると数字2を聞かれます(今回は20を入力)。
コンソールに入力した数字と、その和を出力してくれます。
つまり、Python
のinput()
のように使えます。
サンプルコード
const readline = require('readline/promises');
const input = async (name) => {
const readInterface = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let string = await readInterface.question(name)
readInterface.close();
return string
}
(async () => {
let a = Number(await input('数値1>'));
let b = Number(await input('数値2>'));
console.log(a);
console.log(b);
console.log(a + b);
})();
// ※何も書かない方が良い
*以降は何も書かない方が良いです。async以下実行されてしまいます。
動作環境
Node.js v18.1.0
'readline/promises' モジュールを仕様しているのでNode.jsのバージョンは17.0以上が必要かと思います。
version 16 以下の場合はこちら
Promise を利用したコード
const readline = require('readline');
const input = prompt =>{
const readInterface = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
return new Promise( resolive =>readInterface.question(prompt,
input=>{
readInterface.close();
resolive(input);
}));
};
(async () => {
let a = Number(await input('数値1>'));
let b = Number(await input('数値2>'));
console.log(a);
console.log(b);
console.log(a + b);
})();
最後に
Pythonで書くとこうなります。
a = int(input('数字1>'))
b = int(input('数字2>'))
print(a)
print(b)
print(a + b)
Python流行る理由がなんとなくわかりました。
ですが、JavaScriptも魅力的な言語なので、引き続き勉強していきます。