『JavaScript:The Good Parts』にツッコミ

『JavaScript:The Good Parts』にツッコミ (Kanasansoft Web Lab.)へのレスも兼ねて。
Good Parts読んでない方は、A Life in Shinjuku.: JavaScript: The Good Partsを見れば大体書いてある。

かんそう

良書だと思うのだけど、初心者には説明不足なのが惜しい。ある程度わかってる人が「あるある/いやそれは…」と相槌を打つ感じで、対象読者が狭い印象。詳しく知りたい人はこちら的な情報があれば文句なしだった。

==と===

==じゃなくて===を使おうって話。無駄な型変換もなくなるから===を使うことには異論はないのだけど、そもそもfalsyな値との比較に危うさを感じ取るべきだし、いろんな型の値が入っている状況は設計を疑うべきだよね。

配列かどうかの判定

JavaScriptのオブジェクト判定tips - Ci.nsIZIGOROu - Mozilla 拡張機能勉強会を使おう。こっちのほうがシンプルで正確。
Good Partsの方法でも実質は問題ないだろうけど、強引に配列を偽装することは可能。

function isArray(a){
return a &&
 typeof a === 'object' &&
 typeof a.length === 'number' &&
 typeof a.splice === 'function' &&
 !(a.propertyIsEnumerable('length'));
}
var s = new String("a");
s.splice = function(){};
alert(isArray(s));