サイ本
今までずっとtypeof()を使い、以下の様にチェックしていた。 function hoge(a) { if( "undefined" == typeof(a) ) { alert("引数省略"); } else { alert("引数あり"); } } しかし以下の様に書ける。 function hoge(a) { if(!a) { alert("引数省略"); } else …
object.property object["property"] この2文は等価。 ただし後者はプロパティ名を文字列で指定しているので、例えばループ文で生成した文字列でのアクセスが可能になる。 for(y = 0, cnt = 5; y < cnt; y++) { obj["property" + y] = y; } このような使い方…
配列要素にdelete()を掛けると要素が削除されるのではなく、未定義になるだけ。 var array = new Array("A", "B", "C"); alert(array); //A,B,C alert(array.length); //3 delete(array[1]); alert(array); //A,,C alert(array.length); //3 alert(array[0])…
中括弧({})で囲われた範囲が複合文。 複合文末尾にはセミコロンを付けない。 { a = 0; b = 0; c = 0; } 複合文内は1つの文として扱われるが、実行は通常通り1行ずつ行われる。 うーん、今一使い所が分からない。
function hoge() { for(var y = 0; y < 3; y++) { alert(y); //0,1,2 } alert(y); //3 } for文の中で宣言された変数yは、for文を抜けても有効。 for文の中でしか有効じゃないと思い込んでいたので目から鱗でした。
function hoge() { var array = new Array("A", "B", "C"); var pnt = array; alert(pnt); //A,B,C array[0] = "a"; alert(pnt); //a,B,C } あまりこういう書き方はしないんだけれど、しっかり覚えておかないとバグの温床になる予感。