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でビット演算するようなこともあまりないと思うけど……フラグをビットでもつとかしないだろうし。
こんなところかなー。書いたところはだいたい使ったことない機能が多いかな。
まあ、まだまだ初級者ってところだしね。