本日は、いつもとは違う本で基礎を学ぼうと思い、同じ出版社から出ている「10日で覚えるjavascript入門教室」(カラフルではない方)で勉強しました。この本で、変数、配列、オブジェクト、関数を理解できたらなと思い勉強したのですが。。。結果、この本との相性がよくなかったせいか、余計に頭が混乱するはめに。そこでこの本でよく理解できたポイントを書きたいと思います。
配列にはlengthプロパティが自動的に作られ、配列の長さ(要素の数)を値に持ちます。下記の例では変数dは2個の要素を持つため、d.lengthの値は2となります。また、d[0].lengthおよび、d[1].lengthは、それぞれ3個の要素を持つため、3の値を持ちます。lengthプロパティは配列の長さが変われば自動的にそれに合わせて値が更新されますが、外から変更することもできます。lengthプロパティの数値を小さくした場合、その長さよりも後にあった要素は削除されます。逆に大きくした場合は、新しく空の要素(undefindedという値を持つ)が付け加えられます。
var b = [123,456,789]; //b.lengthの値は3
b.length = 2; //bの値は[123,456]
b.length = 4; //bの値は[123,456,undefinded,undefinded]
push()は、配列の最後尾に新しく要素を付け加えるためのメソッドで、()内に新しい要素の値を与えることができる。また、戻り値として要素を付け加えた後のlengthの値を返す。
pop()は逆に、最後尾の要素を削除するためのメソッド。戻り値として、削除した要素を返す。
var hairetsu = []; //hairetu.lengthの値は0
hairetsu.push(2008); //hairetsu[0]に2008という数値を代入。hairetsu.lengthの値である1を返す。
hairetsu.push(2009); //hairetsu[1]に2009という数値を代入。hairetsu.lengthの値は2
hairetsu.pop(); //hairetsu[1]を削除。削除した値である2009を返す。hairetsu.lengthの値は1
toString()
var a =new Number(200); //200という数値を値に持つ
Numberオブジェクトを生成
a.toString(); "200*という文字列を返す。
valueOf()
var a=new Date(2008,0,1); //2008年1月1日を値に持つ。
Dateオブジェクト作成
a.valueOf(); //1970年1月1日から2008年1月1日までのミリ秒数である1199174400000を返す
javascriptが実行されるとき、javascriptインタープリタはグローバルオブジェクトという物を生成し、すべてのグローバル変数はこのグローバルオブジェクトのプロパティとして定義されます。HTMLを読み込んだブラウザで実行された場合、グローバルオブジェクト=windowオブジェクトとなります。したがって、関数内でグローバル変数と同じ識別子でローカル変数が使われる場合でも、windowを前に付ければそのグローバル変数にアクセスできます。
11月7日 宮本 勇