JavaScript入門 (4)
オブジェクト
JavaScriptではオブジェクトはPerlのhashに似ており,属性名と属性値のペアから構成される.
js> obj = {name:"Tom", sex:"male"}
[object Object]
js> obj
[object Object]
js> obj.name
Tom
js> obj.sex
male
js> obj.age = 20
20
js> obj.age
20後から属性を追加するすることもできる
js> obj.age = 20 20 js> obj.age 20
オブジェクトの属性値にオブジェクトを入れることもできる.
js> obj.name = {first:"John", last:"Lennon"}
[object Object]
js> obj.name.first
John
配列
配列は"[]"かArrayを用いて生成される.
js> var ary = new Array() js> var ary2 = [1, 3, 5] js> ary2 1,3,5
インデクシングは[]を用いて行う
js> ary2[0] 1 js> ary2[1] 3 js> ary2[2] 5
配列の大きさを超えたインデックスに値を代入することも出来る
js> ary2[4] = 9; 9 js> ary2 1,3,5,,9
空要素の",,"は配列を生成するときにも利用できる.
js> ary3 = [2,4,,8] 2,4,,8 js> ary3[2] js> typeof ary3[2] undefined ||< 配列はオブジェクトの一種であり属性名が数値であるとみなすことができる.逆にオブジェクトも "[]"でその属性にアクセスすることができる. >|| js> typeof ary object js> obj.name.first John js> obj["name"]["first"] John
配列に関する操作は以下のようなものがある.多くの物が直感的な名前がつけられている.
js> ary = [1,2,3]
1,2,3
js> ary.length
3
js> ary.pop()
3
js> ary
1,2
js> ary.push(3)
3
js> ary
1,2,3
js> ary.shift()
1
js> ary
2,3
js> ary.unshift(1)
3
js> ary
1,2,3
js> ary.reverse()
3,2,1
js> ary
3,2,1
js> ary.join("\t")
3 2 1
js> ary.concat([1,2,3])
3,2,1,1,2,3
js> ary = ["this", "will", "be", "sorted"]
this,will,be,sorted
js> ary.sort()
be,sorted,this,will
オブジェクトの操作
オブジェクトにある属性を列挙したい場合はforを用いる
obj = {name:"John", age:25, sex:"male"};
for (var k in obj) {
print(k + ": " + obj[k]);
}$ js sample.js name: John age: 25 sex: male
for eachを用いると値の方を列挙できるのだが,これは配列向けかな
ary = [1,3,5,7,9];
for each (var e in ary) {
print(e);
}$ js sample.js 1 3 5 7 9
deleteを用いると属性を消すことができる
js> delete obj.sex true js> typeof obj.sex undefined
inは属性名があるかどうかを調べることができる
js> "name" in obj true
withは<オブジェクト名>.<属性名>のオブジェクト名部分を省略して参照することができる
js> with (obj) {
print(name);
print(age);
print(sex);
}
John
25
male
js>