初心者のためのホームページ作り 第30号

Web作成支援

今週のおさらいバックナンバーはこちらから
第1号  第2号  第3号  第4号  第5号  第6号  第7号  第8号
第9号  第10号  第11号  第12号  第13号  第14号  第15号  第16号
第17号  第18号  第19号  第20号   第21号  第22号  第23号  第24号
第25号  第26号  第27号  第28号  第29号  目次

プレーンテキスト版バックナンバー

今週<第30号>マガジンのおさらい

                   毎週金曜日配信 What's New 2002/12/6
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
 今週の課題 ■ JavaScript講座 第3回

■ 構文

今まで紹介してきたJavaScriptでは、非常に単純なものだけでした。どんなにオブジェクトやメソッド、プロパティを覚えても実用的なスクリプトを組むのは困難です。そのためにも、「構文」を生かすことが不可欠です。これからが、本格的なスクリプトのプログラミングになります。

for構文 -- ループ命令

同じスクリプトを繰り返しを行う構文が、for構文です。
for (n = 1; n <= 20; n++) {
    document.writeln(n);
   }
構文の分解
for繰り返しの命令
(n = 1; n <= 20; n++)論理式
{ 〜 }ブロック

n が20になるまでの繰り返しを行います。下記がその実行結果です。

論理式 (初期化式; 条件式; 増減式)

セミコロンで区切られた3つのオプションのステートメントを指定することにより、任意の回数だけブロックをループさせることができます。

初期化式

一般にループカウンタを初期化するために使用し、この式に書かれたステートメントは、ループを回る前に1回だけ実行されます。

条件式

現在の状態を評価するためのステートメントをこの式で書きます。ループを回るたびにこの式は評価され、この式が真(true)である間、ループブロックを繰り返し実行します。評価の結果が偽(false)になった場合は、ループブロックの次の行に制御を移します。

増減式

ループを1度回るたびに実行され、ループカウンタを増加、または減少させます。この値が、条件式で評価されます。

while構文 -- ループ命令

for構文と同じ動作をします。この構文も評価を行ってループブロックを繰り返し実行します。
 n = 1;
  while(n < 21 ) {
     document.writeln(n);
     n = n + 1;
  }
初期値が1の n の値が、20になるまで、ブロックを繰り返します。for構文と異なるのは、論理式を用いずに評価を行います。n < 21 としたのは、n の値が20になったらループを止めてしまいます。また、n の値を増加させるために、ブロック内で n = n + 1 と記述する必要があります。

下記に実行結果を示します。

if構文 -- 条件分岐命令

JavaScript には条件つき命令が1つあります。それが if構文です。

この構文は、実に多くのスクリプトで使用されており、ある意味では必須の習得構文といえるでしょう。値の条件によって異なるプログラムを実行します。早い話が、もし〜ならば〜であり、さもなくば〜である、という構文です。

  var today = new Date();
  var h = today.getHours();
  if((h > 5) && (h <= 10)) {
	  document.write("おはよう!");
      } 
        else if((h > 10) && (h < =17)) {
  	    document.write("こんにちは!");
          }
  else {
  	document.write("こんばんは!");
  }
  document.write("ただいま", h , "時です。");

var によって変数を宣言すると、その変数はグローバル変数と呼ばれます。通常、変数はブロックの外で設定されますが、var宣言なしのローカル変数ではブロック内では違うものと解釈されますので、この宣言が必要になってきます。

new Date() は時間や日付などを扱う Dateオブジェクトを利用する場合に用いられます。なお、Dateオブジェクトはこのページの巻末に示しましたので参考までにお読みください。

getHours(); Dateオブジェクトのメソッドの1部で、今の時間を取得するものです。時間を取得して、h という変数に取り込まれます。

if((h > 5) && (h <= 10)) もし、h の値が5以上で10以下ならばブロックを実行します。&& は論理積を示し、「and」という意味を持っています。

else if((h > 10) && (h < =17)) 上記の h の値が5以上で10以下という条件に当てはまらない場合には、ここの構文を参照します。それでも当てはまらない場合には、次の構文に移動します。

if構文サンプル

Dateオブジェクト

Dateオブジェクトには、日付や時間などを扱うためのメソッドが定義されており、これらを使用することで、時間の計算や日付の換算などを簡単に行うことができます。

Dateオブジェクトの値の範囲

パラメータ範囲
分、秒0 〜 59
時間0 〜 23
曜日0 〜 6 (セット不可)
1 〜 31
0(1月) 〜 11(12月)
西暦の下2桁

Dateオブジェクトのメソッド一覧

メソッド内容
getDate()日にち
getDay()今日の日付
getHours()時間
getMinutes()
getSeconds()
getTimes()1970年1月1日 00:00:00 からのms
getTimezoneOffset()タイムゾーン・オフセット(分単位)
getYear()
parse(dateString)日時を表した dateString をTimesに変換
setDate(dayValue)オブジェクトの日にちを dayValue に変換
setHours(hoursValue)オブジェクトの時間を hoursValue に変換
setMinutes(minutesValue)オブジェクトの分を minutesValue に変換
setMonth(monthValue)オブジェクトの月を monthValue に変換
setSeconds(secondsValue)オブジェクトの秒を secondsValue に変換
setTime(timevalue)オブジェクトの日時を timeValue に変換
setYear(yearValue)オブジェクトの年を yearValue に変換
toGTMstring()GTM時間に変換
toLocalstring()ブラウザの規則に従い、日付の表記フォーマットに変換


Copyright(C) 2002-2003 banban@scollabo.com