特異なfor文の記述
JavaScript

for文は次の様に定義されていると考えられがちです。
一般的なfor文に対する認識
for([カウンタの開始値(初期化)];[カウンタの終了値];[カウンタの増減値]){
    [実行文]
}
ここで一旦VBScriptの記述を見てみましょう。
VBScriptのfor文(Step以降は省略可。省略時は[Step 1]と見なされる。)
For [カウンタの開始値(初期化)] To [カウンタの終了値] Step [カウンタの増減値]
    [実行文]
Next
0から9までループする処理をそれぞれの方法で記述してみます。
0から9までループ(JavaScript)
for(i=0;i<10;i++){
    [実行文]
}
0から9までループ(VBScript)
For i=0 To 9
    [実行文]
Next
JavaScriptはなぜ変数[i]を複数回記述しなければならないのでしょう。
次の様に記述させてもよさそうに思えます。
JavaScript似の仮想言語によるfor文
for(i=0;10;1){              //もしくは[for(i=0;9;1){]
    [実行文]
}
実はfor文の定義は次のようになっています。
JavaScriptのfor文
for([ループ初回に実行される処理];[ループを抜ける為の条件(真偽値)];[ループ2回目以降に実行される処理]){
    [実行文]
}
処理を詳細に追ってみます。
for文の処理を詳細に追う
for(i=0;i<10;i++){
    alert(i.toString(10));
}

i=0                             [ループ初回に実行される処理]
i<10                            [真偽値判定]                        (0<10=true)
alert(i.toString(10));          [実行文]                            ("0"を表示)
i++                             [ループ2回目以降に実行される処理]   (i=1)
i<10                            [真偽値判定]                        (1<10=true)
alert(i.toString(10));          [実行文]                            ("1"を表示)
i++                             [ループ2回目以降に実行される処理]   (i=2)
i<10                            [真偽値判定]                        (2<10=true)
alert(i.toString(10));          [実行文]                            ("2"を表示)



i++                             [ループ2回目以降に実行される処理]   (i=9)
i<10                            [真偽値判定]                        (9<10=true)
alert(i.toString(10));          [実行文]                            ("9"を表示)
i++                             [ループ2回目以降に実行される処理]   (i=10)
i<10                            [真偽値判定]                        (10<10=false)
                                [ループを抜ける]
この様な動作になっている為、次の様な変わった記述も可能なのです。
特異なfor文の例
for(var str="";str.length<50;str+=prompt("入力して下さい。\nstr=\""+str+"\"","")){}
これを一般的な記述方法に書き換えてみましょう。
一般的な記述に書き換えた例
var str="";
while(str.length<50){
    str+=prompt("入力して下さい。\nstr=\""+str+"\"","");
}
これらの特異なfor文は推奨しません。
一般的なPGはfor文を見ると[カウンタ付のループ]と判断します。
[カウンタ付のループ]の定義部分で文字列の操作が行なわれているとは夢にも思いません。

投稿者 Kanasansoft : 2005/09/20 | コメント (0) | トラックバック (926)
Ajax(Asynchronous JavaScript + XML)
JavaScript

業務アプリケーションは新しい技術よりも安定した技術を好むから、この業界にいつ頃普及するのかわからないですけど、VBっぽい画面も好むので案外早いかもしれません。
ユーザの立場にたったWebアプリケーションの開発が加速する事を期待します。

投稿者 Kanasansoft : 2005/09/11 | コメント (0) | トラックバック (61)
JavaScriptを勉強する上でお薦めの書籍
JavaScript

JavaScriptをある程度使えるようになった人にお薦めの本、JavaScript 第3版(Amazonへリンク)です。
文字や画像の色や位置の変更、つまり見た目の派手さ重視の書籍が多い中で、珍しくJavaScriptを体系的に学べる数少ない本です。
国内で発行されているJavaScript関連の書籍にはかなり目を通していますが、この本のレベルは抜きん出ています。
これ以上詳しく書いた日本語で読めるものを、私は知りません。

投稿者 Kanasansoft : 2005/07/25 | コメント (0) | トラックバック (5)