JavaScriptのprompt()メソッドは、ユーザーからの入力を受け付けるためのダイアログを表示する機能です。基本的な使い方から実践的な例まで、詳しく解説します。

prompt()メソッドの基本的な使い方

prompt()メソッドの基本的な構文は以下の通りです:

let 変数 = prompt("メッセージ", "デフォルト値");

引数は2つあり、1つ目は表示するメッセージ、2つ目はテキストボックスに最初から表示される値(省略可能)です。

使用例と戻り値

// 基本的な使用例
let name = prompt("お名前を入力してください");
console.log("こんにちは、" + name + "さん");

// デフォルト値を設定する場合
let age = prompt("年齢を入力してください", "20");

prompt()メソッドの戻り値は以下の2種類です:

  • 入力された文字列
  • キャンセルボタンが押された場合は`null`

入力値の型変換

prompt()メソッドは常に文字列を返すため、数値として使用する場合は型変換が必要です:

// 数値への変換例
let number = prompt("数字を入力してください");
let convertedNumber = Number(number);

// 条件分岐での使用例
if (!isNaN(convertedNumber)) {
    console.log("入力された数値は " + convertedNumber + " です");
} else {
    console.log("有効な数値を入力してください");
}

エラー処理とバリデーション

入力値の検証は重要です。以下は基本的なバリデーションの例です:

let input = prompt("1から10までの数字を入力してください");

if (input === null) {
    console.log("キャンセルされました");
} else if (input === "") {
    console.log("何も入力されていません");
} else if (isNaN(input)) {
    console.log("数値を入力してください");
} else if (input < 1 || input > 10) {
    console.log("1から10の範囲で入力してください");
} else {
    console.log("正しい入力です:" + input);
}

ブラウザ対応状況

prompt()メソッドは主要なWebブラウザで広くサポートされています。ただし、以下の点に注意が必要です:

  • モバイルブラウザでの表示が異なる場合がある
  • モダンなWeb開発では、カスタムダイアログの使用が推奨される

プロの開発者向けTips

1. 入力値のトリム処理:

let input = prompt("メッセージ").trim();

2. デフォルト値の設定:

let input = prompt("メッセージ", "") || "デフォルト値";

3. 数値の範囲チェック:

let number = Number(prompt("数値を入力"));
if (number >= 1 && number <= 100) {
    // 有効な範囲の処理
}

まとめ

prompt()メソッドは簡単に使えるユーザー入力機能ですが、本番環境では以下の点を考慮することをお勧めします:

  • 適切なバリデーション処理の実装
  • ユーザー体験を考慮したカスタムダイアログの検討
  • 入力値の型変換とエラーハンドリング

これらの基本を押さえることで、より堅牢なアプリケーション開発が可能になります。