JavaScript勉強中

2ヶ月くらい前からJavaScriptの勉強を始めました.とりあえずJavaScript: The Good Partsを読んで「JavaScriptの良い部分」だけを使ったコードを書く練習をしているところです.

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

それにしても,他の言語にはないような落とし穴が結構あってアレですね.特にブラウザによって挙動が変わるタイプの落とし穴は本当にやめて欲しいです.

例えば,以下のコードの場合,

var foo = [1, 2, 3,];   // 末尾に余分なカンマが付いている
document.writeln(foo.length);

IE9,Firefox,Google Chromeの場合はfoo.lengthの値は3,IE8以前の場合は4になります.配列リテラルがカンマで終わっていた場合,IE9,Firefox,Google Chromeでは最後のカンマは無視されますが,IE8以前ではカンマの後にundefinedが要素として追加されて[1, 2, 3, undefined]となるみたいです.これはひどい.

JavaScriptのこういう落とし穴をまとめた本ってないのかしらん.