JavaScript: The Good Parts 付録A〜付録E

付録の気になったところの記録とかとか。

A.5 ユニコード

JavaScriptは16bitしか保持しない頃のUnicodeの仕様の時にデザインされたらしい。(初期のUTF-16のことだよねえ?)
なので65,536文字以外の100万文字は2つの独立した文字として扱うらしい。

A.7 parseInt

parseInt('5');      // 5
parseInt('5 aaa');  // 5 なんでやねん

parseInt('08');  // 0 8進数扱いされるため
parseInt('08', 10);  // 8 10進数扱いする

変換できない文字列があってもそこまでは変換してしまうこと、それを知る術がないこと、
あと第二引数で基数を必ず指定したほうがいいよ、ってお話。

A.9 不動小数点

0.1 + 0.2  // 0.30000000000000004 なんでやねん

((0.1 * 10) + (0.2 * 10)) / 10  // 0.3

A.10 NaN

Nan === NaN  // false をゐをゐ
Nan !== NaN  // true  をゐをゐ

isNaN(NaN)  // true

B.8 ビット演算子

JavaScriptには倍精度浮動小数型しかないのでビット演算はC言語などと違ってとても遅いらしい。
まあ、JavaScriptでビット演算するようなこともあまりないと思うけど……フラグをビットでもつとかしないだろうし。


こんなところかなー。書いたところはだいたい使ったことない機能が多いかな。
まあ、まだまだ初級者ってところだしね。