熊本大学大学院教授システム学専攻
目次:
【第12回】JavaScript 2 (基本構文、制御構造(if, for, etc.))
第1章
--第12回タスクチェッカー
※公開科目にはありません
第3章
第4章
第5章
現在の場所: ホームページ > [3]JavaScriptによる動的Webページ > 【第12回】JavaScript 2 (基本構文、制御構造(if, for, etc.)) > 第2章 > JavaScript プログラミング を自分で書き込む

JavaScript プログラミング を自分で書き込む

【本節の目的】
JavaScriptプログラミングを、HTMLの中に直接書き込んで利用する方法を学びます。

第11回では「HTMLの中にJavaScriptファイルを読込んで利用する方法」を学びました。 今回は、HTMLの該当部分に直接JavaScriptプログラムを書き込んで利用する方法を学びます。

最初に、JavaScriptプログラムを書き込む際の注意事項等を挙げておきます。 「プログラムが動かないなぁ」と困ったときには、こちらをご覧ください。

プログラムが動かないで困っている人へのヒント→【よくある間違いの例や、注意事項】


ここからは、いくつかの例を挙げて説明していきます。練習問題にもトライしながら、進めてください。

ブラウザに文字を表示させましょう

まずは "Hello! World." を作ってみましょう。

"Hello! World." というのは,非常に簡単なプログラムのことです。 これは、実行させると,画面やウィンドウに "Hello! World."と表示するだけの機能を持ったプログラムで、 プログラミング言語の使い方の基礎を説明する例題として良く使われます。

次のような内容のファイルを作成し,デスクトップにhello.html という名前で保存します。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>

<script type="text/javascript">
  document.write("Hello! World.");
</script>

</body>
</html>

ファイルが作成できたら,ダブルクリックして開いてみましょう。

のように,Webブラウザに文字が表示されたらOKです。

【練習1】 Hello! World ではなくて, 「こんにちは,みなさん!」と表示させてください。

→練習1: 【ブラウザで結果を見る】 【HTMLタグを見る】

変数のあるJavaScript

次に,hello.html の<body>~</body>中身を次のように変更してください。
(文字の色が青色なのは,変更部分を強調しているだけで,入力の際には関係ありません。)

<script type="text/javascript">
  a = 7;
  b = a + 5;
  document.write(b);
</script>

→ 【ブラウザで結果を見る】 【HTMLタグを見る】

変更した結果をブラウザで見ると、「12」という答えが表示されます。
このプログラムで使っている a や b を「変数」と呼びます。 末尾に付いている「;」は,文の区切りを示す記号です。

  a = 7;

という文は, 「a という変数の値を 7 にする」という意味です。

  b = a + 5;

という文は「a の今の値に 5 を足した結果を,b の値とする」 という意味です。
なお,「=」は,代入を表す記号(演算子)と呼ばれます。

【注】以下のような文は,あり得ません。なぜでしょう。

  a + 5 = b;

→ 「=」は,代入を表す記号(演算子)です。左辺が「a + 5」だと、なんの値にbを代入すればよいのか分からなくなってしまいます。

【練習2】 以下のプログラムの実行結果はどうなるか予想してください。
予想は当たっていましたか?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>

<script type="text/javascript">
  k = 7;
  k = k + 1;
  k = k + k;
  document.write(k);
</script>

</body>
</html>

→ 【ブラウザで結果を見る】

ちょっとだけ複雑な変数のJavaScript

では,新たに forloop.html という名前で次のようなファイルを作りましょう。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>

<script type="text/javascript">
  for(k = 1;  k < 26;  k = k + 1){
    document.write(k);
  }
</script>

</body>
</html>

ちょっと難しそうな感じですが,意味は後で説明します。とりあえず上のような forloop.html を作成し, ダブルクリックしてみてください。

のように数字がつながって表示されましたか?

ちょっと見にくいので,数字の1個1個を改行して表示しましょうか。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>

<script type="text/javascript">
  for(k = 1;  k < 26;  k = k + 1){
    document.write(k);
    document.write("<br>");
  }
</script>

</body>
</html>

のように青字で示した1行を追加すればいいです。 以下のように表示されるはずです。

なぜこの様な表示結果になるかを簡単に説明します。ここで用いているのは,

for(最初に実行する事;  継続の条件;  毎回実行する事){
    実行する事1;
    実行する事2;
    ....
}

のような繰り返し構造です。 こう書くと,「継続の条件」 が満たされている間は,

    実行する事1;
    実行する事2;
    ....
    毎回実行する事

が繰り返し行われます。
また,「最初に実行する事」は,この繰り返しが始まる前に1回だけ実行されます。

上のプログラムは,

for(k = 1;  k < 26;  k = k + 1){
    document.write(k);
    document.write("<br>");
}

ということですから, 最初に一度だけ k = 1 が実行されて、k が 26よりも小さい間は、

    document.write(k);
    document.write("<br>");

を実行しながらk を 1 ずつ増やしていきます。 (繰り返し構造を使わずに書くとこのようになります。)
なお,k = k + 1 の部分は, k++ と書いても同じ意味です。

【練習3】 2 から 40 までの偶数を表示するプログラムを作ってください。

→ 【ブラウザで結果を見る】 【HTMLタグを見る】


ここまでの知識だけでは、 初級課題(1から1000までの整数で3で割り切れない数を表示するプログラムを作る) は解けません。
次の2.2 JavaScript プログラミングを自分で書き込む(その2)へ進んでください。

Copyright (c) Toshihiro Kita, Hideki Matsuda, Chisato Noguchi and Yuriko Shimizu 2002-2006, All Rights Reserved