JavaScript 2


  1. ダイアログ
  2. ダイアログを使用したデバッグ
  3. ダイアログの使用例
  4. 関数
  5. 課題


解答例

前回の課題に対する解答例

ダイアログ

上のHTMLファイルで表示されるページ

ダイアログ

prompt

alert

confirm

close


Window オブジェクト


ダイアログを使用したデバッグ

alertメソッドを用いれば変数の値などを表示することができるので, デバッグに利用することができる.

[例題]

HTML

デバッグ

alert文を利用した,デバッグの方法を説明する.

次の内容の HTMLファイルを作成したとする.

<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html;charset=Shit-JIS">
      <meta http-equiv="Content-Script-Type" content="text/javascript">
      <title>ex1-2</title>
   </head>
   <body>
       <script type="text/javascript">
          var now = new Date();
          var size = now.getSeconds() % 7 + 1;
          documentwrite("<h",size,">",
                         now.getFullYear(),"年",
                         now.getMonth(),"月",
                         now.getDate(),"日"
                         now.getHours(),"時",
                         now.getMinutes(),"分",
                         now.getSeconds(),"秒",
                         "</h",size,">");
       </script>
   </body>
</html>

上のページをブラウザに表示しようとしても正しく実行されない.

以下,原因を追求し,正しく動作させるまでのデバッグの過程を例示する.

  1. ファイル中に alert 文を入れ,どこで動作しなくなるか調べる

  2. 文法上で疑わしい箇所をコメントアウトする

  3. コメントアウトする範囲を変更し,誤りを探す範囲を狭めて行く

  4. これを繰り返すと,文法上の誤りが

                             now.getDate(),"日"
    

    にあることがわかる.
          "日""日",
    
    と修正する.

  5. 再び,ブラウザに表示してみる.

    このページの実行

  6. 再度,ブラウザに表示してみると,今度は, 「月」に表示される数値が誤っていることわかるので,これを修正する.
              now.getMonth()   →   now.getMonth()+1
    	  


ダイアログの使用例

上のHTMLファイルで表示されるページ

Mathクラス

      var mynumber = Math.floor(Math.random()*10);


関数

上のHTMLファイルで表示されるページ

関数

       //  関数: 現在の時刻を文字列で返す
       function getTime() {
          var time, date;
	  date = new Date();   // 現在の日時を取得
	  // 時、分、秒を文字列に変換し連結
	  time = date.getHours().toString() + "時"
	         + date.getMinutes().toString() + "分"
		 + date.getSeconds().toString() + "秒";
	  return time;
       }

メソッド

	  time = date.getHours().toString() + "時"
	                  getTime().fontsize(i),
	                  getTime().fontsize(i).fontcolor("red"),


課題2

以下の処理を行う Web ページを JavaScript を使用して作成しなさい.

作成する Webページは指定された名前のファイルに保存し,ブラウザにより, 正常に動作することを確認すること.

  1. JavaScriptでは文字列を評価する関数 eval(st) が用意されている.
    eval関数に数式を文字列として与えれば,
          eval("3+4+2")  → 9
    
    のように,数式の計算値を得ることができる.
    関数機能
    eval(st) stを評価した値を戻り値として返す

    promptダイアログを使用して計算式を入力すると, 入力式は,定数ではないので,文字列として受け取られてしまう. 上で述べた eval を利用すると文字列として受け取った計算式を 計算(評価)することができる.

    promptダイアログを使用して,計算式を受け取り, それを評価した結果を表示するページをファイル ex2-1.html に作成せよ.

  2. 時間に余裕がある場合には,次の問題にも取り組んで下さい.

    ダイアログボックスより,生年月日を受け取り, 今日がその誕生日から数えて何日目であるかを表示するページを作成せよ.
    作成するファイル名は, ex2-2.html とする.
    [ヒント] Dateクラスの持つ getTime メソッドを使用する.


学部> 学科> 研究室> 授業