JavaScript
2022.10.13
JavaScriptのalertの使い方!アラートが出ない場合の対処法
2023.11.19


今回は、ブラウザ上にポップアップメッセージを表示するalertメソッドについて紹介していきます。

本記事では、

「alertメソッドの使い道」や「alertメソッドの基本的な使い方」

といった基本的な内容から、

「alertメソッドを使ってデバッグする方法」、「アラートが出ない原因」

といった内容まで、初級者エンジニア向けに詳しく解説していきます。


1.     JavaScriptのalertメソッドとは?

alertはJavaScriptの標準機能のメソッドです。

任意のテキストメッセージとOKボタンをブラウザ上にポップアップで表示します。

ユーザーが意図的にブラウザでJavaScriptを停止しない限り、すべてのユーザーにメッセージを表示できるので、重要な通知や注意を促す目的で使用されます。



2.alertメソッドの使い道


alertメソッドは、フォーム入力のミスや未入力に対する通知など、注意を促すメッセージとして使われていました。

しかし近年では、ブラウザのセキュリティ制限やWebデザインの進化に伴い、あまり使用されなくなっています。

最近では、alertメソッドは主にJavaScriptプログラムのデバッグ作業で使用されています。

デバッグ作業とは、プログラムが仕様通りに動作しているかチェックするために、変数の値はどうなっているか、
プログラムのどこを実行しているかを調査し、プログラムの誤り(バグ)を見つけ修正する作業のことです。

デバッグ作業でのalertメソッドの利用方法については後ほど説明します。



3.alertメソッドの基本的な使い方


ここからは、alertメソッドの基本的な使い方を実際のプログラムコードで確認していきましょう。

①基本構文

alertメソッドの基本構文は次の通りです。

alert(画面に表示するメッセージ);

括弧内の引数には、文字列や数値、計算式などを指定できます。

②文字列のメッセージを出力

まずは文字列のメッセージを出力しポップアップを表示させてみましょう。

alert("ポップアップに表示するメッセージ");

実行結果:

ポップアップに表示するメッセージ

このように、alertメソッドの引数へ値を指定するだけで、ポップアップ表示できます。

③数値のメッセージを出力

数値を表示したい場合は、引数に数値をそのまま指定します。

alert(123456789);

実行結果:

数値の表示

引数をシングルクォーテーション等で囲むと、文字列として認識されてしまうので、数値を出力するときは半角数字のみ指定してください。

④文字列と数値を結合してメッセージを出力

文字列と数値を結合するには、”+”(プラス記号)を使います。

alert("今月は" + 9 + "月です。");

実行結果:

数字と文字列の結合

このサンプルコードは、文字列の”今月は”に数値の”9”を結合し、さらに”月です。”を結合しているので、”今月は9月です。”と表示されます。

⑤特殊記号を含むメッセージを出力

文字列の中には、ダブルクォテーションやタブなど文字として認識できないものがあります。

このような特殊な文字を文字列の中で表現する場合、エスケープシーケンスを使いましょう。

alert("文字列にダブルクォーテーション\"を表示します。");

実行結果:

特殊記号を含むメッセージの出力

エスケープシーケンスは、特殊文字の前に“\”(バックスラッシュ)を付けることで文字列として表現できます。

⑥変数を使ってメッセージを出力

alertメソッドの引数に変数を指定し、メッセージを出力してみましょう。

let today;
let formatdate;
today = new Date();
formatdate = today.getFullYear() + "/" + (today.getMonth()+1) + "/" + today.getDate();
alert("今日は" + formatdate + "です。");

実行結果:

変数を用いた日付の表示

サンプルコードは、システム日付を取得後”yyyy/mm/dd”形式に整形し、alertメソッドの引数に指定しています。

⑦アラート内で改行させる

アラート内で改行するには、”\n”を入力します。

alert("現在の気温は、35°Cです。\n熱中症に注意しましょう。");

実行結果:

アラート内の改行

実行結果から、アラート内でメッセージが改行されているのがわかりますね。



4.アラートの外観はカスタマイズできない


これまで見てきたように、alertメソッドの外観は少々味気ないものになっているので、
カスタマイズしたいと考える方もいるのではないでしょうか。

残念ですが、alertメソッドの標準機能ではカスタマイズができません。

理由としてalertメソッドは、特定のメッセージをユーザーに確認する用途に特化しているためです。

それでもカスタマイズしたい場合は、CSS・HTMLを利用し独自に一からダイアログを作成する必要があります。



5.alertメソッドを使ってデバッグする方法


先ほども述べましたが、最近ではalertメソッドは主にデバッグ作業で使われています。

ここではデバッグ作業でどのようにalertメソッドが使われているか、サンプルコードで確認していきましょう。

このサンプルコードは、システム日付から2ヶ月後の日付を”yyyy-mm-dd”形式で取得する仕様です。

/システム日付を取得
let date = new Date();
// yyyy/mm/dd形式で表示
let formatdate1 = date.toLocaleDateString();
alert(formatdate1);

//システム日付から2ヶ月後の日付をセット
date.setMonth(date.getMonth() + 2);
//yyyy-mm-dd形式で表示
let formatdate2 = date.getFullYear() + "-" + (date.getMonth()) + "-" + date.getDate();
alert(formatdate2

実行結果:

現在の日付の取得
2か月後の日付の取得(間違い)

サンプルコードは、最初のalertメソッドでシステム日付が正しく取得しているか確認し、その次のalertメソッドで2ヶ月後の日付が正しく取得しているかを確認しています。

システム日付は正しく取得できていますが、2ヶ月後の日付は正しく取得できていませんね。

これはgetMonthメソッドの戻り値が0〜11となり、実際の月よりひと月ずれてしまうのが原因です。


正しいコードに修正し、再度確認してみましょう。

//2ヶ月後を計算
date.setMonth(date.getMonth() + 2);
// yyyy-mm-dd形式で表示
// 月を取得する場合getMonth()+1
let formatdate2 = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
alert(formatdate2);

実行結果:

2か月後の日付の取得

システム日付から2ヶ月後の日付が、正しく表示されているのがわかりますね。

このように、処理の前後や必要な箇所にalertメソッドを差し込んで使用し、効率よくデバッグ作業をしましょう。



6.アラートが出ない原因

ここでは、アラートダイアログが出ない原因を確認していきましょう。

①スペルミス

アラートダイアログが出ない原因のひとつに、コードのスペルミスがあります。

//システム日付を取得
let date = new Date();

//システム日付の2ヶ月後を計算
date.setMonth(date.getMonth() + 2);

//yyyy-mm-dd形式で表示
let formatdate = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
alert(formatdata);

このサンプルコードを実行しても、アラートダイアログは表示されません。

alertメソッドの引数に、宣言していない変数”formatdata”を指定しているのが理由です。


”formatdate”と正しい変数を指定すると、アラートダイアログが表示されます。

このようなスペルミスは、高機能IDEの入力補完機能で防止できます。

開発効率や品質向上のためにも、積極的にIDEを利用しましょう。

②ブラウザのセキュリティ設定

ブラウザのセキュリティ設定で、ポップアップがブロックされていたり、JavaScriptの実行がブロックされていたりすると、アラートダイアログが表示されません。


プログラムコードを見直しても問題を発見できないときは、ブラウザの設定を確認しましょう。



7.alertに似たメソッド


alertに似たメソッドに、confirmメソッドとpromptメソッドがあります。

それぞれ詳しく解説していきます。

①confirmメソッド:「OK」「キャンセル」で分岐

alertメソッドで表示されるダイアログのボタンは”OK”だけですが、confirmメソッドは”OK”と”キャンセル”の2択があります。

confirmメソッドもalertメソッドと同様に、任意のメッセージを表示できます。


またconfirmメソッドは、”OK”(true)、”キャンセル”(false)のどちらかが選択されたかを示す真偽値の取得が可能です。

サンプルコードで確認してみましょう。

let result = confirm("OKとキャンセル、どちらを選びますか?");

alert(result + "が選ばれました。");

実行結果:

confirmメソッド

“OK”をクリックした場合の結果:

“OK”をクリックした場合の結果

“キャンセル”をクリックした場合の結果:

“キャンセル”をクリックした場合の結果

サンプルコードでは、confirmメソッドの真偽値を変数resultに格納し、alertメソッドで表示しています。

②promptメソッド:入力ボックスを出す

promptメソッドは、ユーザーにテキスト入力可能なダイアログを表示します。

confirmメソッド同様に”OK”、”キャンセル”の2択が可能です。

また、必要に応じてテキスト入力フィールドにデフォルト値を表示できます。

let msg = "郵便番号を入力してください";

//デフォルト値
let defmsg = "000-0000";

let result = prompt(msg,defmsg);

alert(result);

実行結果:

入力ボックス

入力フィールドに”123-4567”を入力し、”OK”ボタンをクリックした結果です。

ユーザーが入力した内容を変数resultで取得できます。

入力フィールドに入力し”OK”ボタンをクリック

“キャンセル”ボタンをクリックした結果は以下の通りです。

キャンセルボタンをクリックすると、変数resultにはnullが格納されます。

入力フィールドでキャンセルをクリック




※掲載された社名、製品名は、各社の商標及び登録商標です。

この記事をシェア