とほほのJavaScript入門(構文)

とほほのWWW入門 > とほほのJavaScript入門 > 構文
2000年3月25日版

構文

// ... (e3/N2)
C++言語と同様、// から行末まではコメントとして無視される。
    xx = 5;    // この部分はコメント

/* ... */ (e3/N2)
C言語と同様、/* と */ で囲まれた部分はコメントとして無視される。 複数行にわたるコメントも記述できる。
    /*
    この行はコメント
    */

{ statement1; statement2; ... } (e3/N2)
複数の文を { } で囲み複文を構成する。 複文は if文や while文の statementsとして使用できる。

with (obj) statements (e3/N2)
objで指定したオブジェクトについて処理を行う。 スクリプトの記述を短くするのに役立つ。 次の例は、document.write(...) と記述するのと同等。
    with (document) {
        write("AAA");
        write("BBB");
    }

this (e3/N3)
現在参照しているオブジェクトを示す。
    <INPUT TYPE=button onClick="this.form.submit()">

if (expression) statements1 else statements2 (e3/N2)
expressionがtrueであればstatements1を、さもなくばstatements2を実行する。
    if (i < 10) {
        document.write("SMALL");
    } else {
        document.write("BIG");
    }
else以降は記述しない場合もある。
    if (i < 10) {
        document.write("SMALL");
    }
次のような書き方もできる。
    if (i < 10) {
        document.write("SMALL");
    } else if (i > 20) {
        document.write("BIG");
    } else {
        document.write("NORMAL");
    }
NNでは、if (xx = yy) のようにif文の中に代入演算子を用いると警告ダイアログを表示した後、勝手に xx == yy と解釈する仕様だったが、JavaScript1.3からは、if ((xx = yy)) のように括弧を余分に記述することで「代入した結果が真であれば」を実現できるようになった。

switch (expression) { case label1: satements; ... } (e4/N4)
expressionの値に応じて処理を振り分ける。
    switch (xx) {
    case 1:
        document.write("xx is 1.");
        break;
    case 2:
        document.write("xx is 2.");
        break;
    default:
        document.write("xx is not 1 nor  2.");
        break;
    }

while (expression) statements (e3/N2)
expressionがtrueの間statementsを繰り返す。 次の例では 0123456789 と表示される。
    i = 0;
    while (i < 10) {
        document.write(i);
        i++;
    }

do statements while (expression); (e4/N4)
expressionがtrueの間statementsを繰り返す。 次の例では 0123456789 と表示される。 最初からexpressionがfalseであっても、statementsが少なくとも1回は実行される点が while (...) {...} と異なる。 NN4.0から使用可能。
    i = 0;
    do {
        document.write(i);
        i++;
    } while (i < 10);

for (expression1; expression2; expression3) statements (e3/N2)
最初にexpression1を実行し、次に、statementsexpression3expression2がtrueの間繰り返す。 次の例は処理を10回繰り返す典型的な例で、0123456789 と表示される。
    for (i = 0; i < 10; i++) {
        document.write(i);
    }

for (variable in array) statements (e3/N2)
配列のすべての要素に関する処理を行う。
    xx = new Array(3);
    xx[0] = "A"; xx[1] = "B"; xx[2] = "C";
    for (i in xx) {
        document.write(xx[i]);
    }
オブジェクトが持つ属性の一覧を調べることもできる。これで調べられない属性(DontEnum属性を持つ属性)もあるので注意。
    for (i in navigator) {
        document.write(i, "<BR>");
    }

break [label] (e3/N2)
もっとも内側(もしくはlabelで指定した)の for, while, do ループや、switch分のcase節を抜ける。 次の例では 01234 と表示される。
    for (i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        document.write(i);
    }

continue [label] (e3/N2)
ループ内の残りの処理をスキップし、もっとも内側(もしくはlabelで指定した)の for, while, do ループの次のループを実行する。 次の例では 012346789 と表示される。
    for (i = 0; i < 10; i++) {
        if (i == 5) {
            continue;
        }
        document.write(i);
    }

label: (e4/N4)
スクリプト中の位置にラベルをつける。 break文やcontinue文でラベルを指定することが可能。
    label1:
    for (i = 0; i < 10; i++) {
        for (j = 0; j < 10; j++) {
            if (func(i, j) {
                break label1;
            }
        }
    }

function (e3/N2)
関数を定義する。(→ 関数)

return (e3/N2)
関数から戻る。(→ 関数)

var (e3/N2)
未稿。

import (N4)
未稿。

export (N4)
未稿。

Copyright (C) 1996-1999 とほほ
http://wakusei.cplaza.ne.jp/twn/wwwjssta.htm