JavaScript第5版(74p〜122p)

JavaScript 第5版

JavaScript 第5版

まずは復習していて気になった部分から

&&の結果(p71)

と同じく、論理値にはならないらしい。
console.log(undefined && 10); // undefined
console.log(null && 10); // null
console.log(false && 10); // false
console.log(true && 10); // 10

覚えておこう。

配列?オブジェクト?(p79)

配列の番号を指定した場合と、オブジェクトのプロパティのアクセスは
両方[]でできる。
じゃあ[1]と['1']は違うのだろうか

var arr = ['zero', '1st', '2nd', '3rd'];
console.log(arr[1]); // 1st
console.log(arr['1']); // 1st
arr['1'] = 'ichi';
console.log(arr[1]); // ichi
console.log(arr['1']); // ichi

var obj = {};
obj[1] = '1st';
console.log(obj[1]); // 1st
console.log(obj['1']); // 1st
obj['1'] = 'ichi';
console.log(obj[1]); // ichi
console.log(obj['1']); // ichi
obj[new String('1')] = 'one';
console.log(obj[1]); // one
console.log(obj['1']); // one

同じだった。一安心。

ここからは今日の部分

5.10.3 delete演算子(p77)

プロパティにのみ使える、shのunsetだ。

6.5 switch文(p86)

case句には変数が入れられる。
知ってはいたが、これでは最適化ができないため、結局else ifと同じ速度になるのかな。
比較対象が決まっている分少しは早いだろうけど、
うーん。可読性が高まるくらい?

6.18 with文(p101)

with文。
Javaのstatic importのようなものか。
shのchrootのようなものか。
使わないけど、読めるように頭にだけはいれておこう。

7.6.5 配列の長さの変更(p116)

lengthを変更すると配列の長さがかわる!?
lengthが書き込み可能というのに驚き。

var arr = ['one', 'two', 'three'];
console.log(arr.length); // 3
console.log(arr.join()); // one,two,three
arr.length = 2;
console.log(arr.length); // 2
console.log(arr.join()); // one,two
arr.length = 3;
console.log(arr.join()); // one,two,

ほんとだー。ちゃんと値がきえてるーーー
変数の変更をイベントとしてJavaScriptが反応してる?
これはArrayだけの特殊な実装なのだろうか。
それともこういった実装が可能なのだろうか。
変数の変更をイベントのキックにできるのであれば、、、、すごい!!

7.7.1 join()メソッド(p117)

これがJavaAPIにもあったらなぁー

今日は以上。
早くオブジェクトを作れるようになりたい!