#4 JavaScriptで学ぶ標準入力の基本
JavaScriptで利用者からの入力を受け取る方法は、動かす場所(ブラウザかNode.jsか)によって書き方が大きく変わるという特徴があります。この記事では、それぞれの環境での入力の受け取り方を解説します。
ブラウザ上でのシンプルな方法
ブラウザ上で動くJavaScriptには、prompt()という関数が用意されています。
const name = prompt("名前を入力してください");
alert("こんにちは、" + name + "さん");
ポップアップの入力欄が表示され、手軽に入力を試せます。ただし、prompt()は簡易的な確認用の機能で、実際のWebサービスの入力フォームとしてはあまり使われません。
Node.js環境での入力の受け取り方
ターミナル上で動かすNode.jsの場合、標準入力を扱うには、readlineという専用のモジュールを使うのが一般的です。
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('名前を入力してください: ', (name) => {
console.log(`こんにちは、${name}さん`);
rl.close();
});
ブラウザのprompt()のような1行で完結する手軽さはなく、コールバック関数を使った少し準備が必要な書き方になります。
実際のWebページでの入力欄
実際のWebサービスでは、<input>タグとイベントリスナーを組み合わせて入力を受け取るのが一般的です。
document.querySelector('#nameInput').addEventListener('change', (e) => {
console.log(e.target.value);
});
JavaScriptならではの注意点
JavaScriptには、Pythonのinput()のように、あらゆる環境で共通して使える標準入力の仕組みが存在しません。「ブラウザ向けのコード」と「Node.js向けのコード」を混同すると、prompt is not definedのようなエラーが出てしまいます。今どちらの環境で動かそうとしているのかを、常に意識しておくことが大切です。
まとめ
JavaScriptの標準入力は、動かす環境によって書き方が異なります。ブラウザならprompt()や<input>、Node.jsならreadlineモジュールというように、まずは自分がどちらの環境で学習しているのかを明確にしましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
JavaScriptをもっと学びたい方には「改訂新版JavaScript本格入門」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿