■7.2.2 プロパティの存在確認
オブジェクトのプロパティの存在を確認するには for inを使って行う事ができる。o.xというプロパティが未定義でない場合という条件を見分けるために!==演算子を指定してる。
!==演算子ではnullとundefinedが見分けることができる。
var obj = { a : 1 , b:2 , c:3 ,x:0};
if("a" in obj) console.log(obj.a); // 1
if(obj.x !== undefined) obj.x = 3;// !==で比較している
console.log(obj.x);
■連想配列としてのオブジェクト
objのプロパティにアクセスするにはobj.xとする方法と、obj["x"]と連想配列の形式を取ってアクセスする方法がある。
javascriptでは型がゆるいのでこのように[]演算子を使ってアクセスすることも可能になっている。
これを使うとより柔軟なプロパティのアクセスができる。
var obj = {};
obj.map1 = 1;
obj.map2 = 2;
obj.map3 = 3;
for(var i=1;i<=3;i++){
console.log(obj["map" + i]);
}
// map1-3までアクセスする
■Objectのプロパティとメソッド
■constructorプロパティ
初期化に使われたコンストラクタの関数を参照できるvar o = new Object(); console.log(o.constructor);// object() var d = new Date(); console.log(d.constructor);//Date()
■7.4.5 hasOwnProperty()メソッド
引数で指定したプロパティを持っているかの真偽値を返してくれる。継承したプロパティの場合はfalseを返す
下の例ではtoString()は継承したプロパティであることが分かる。
var o = new Object();
o.mess = "プロパティ";
o.hasOwnProperty("toString");// false
o.hasOwnProperty("mess");// true
■7.5配列の要素追加
Arrayコンストラクタで数字を指定すると、その個数分の要素を持つ配列を生成する。先に配列の大きさが決まっている場合はこちらを使う。
var ary = new Array(10); console.log(ary.length);//10
