建议9:正确检测数组类型
由于数组和对象的数据同源性,导致在JavaScript编程中经常会出现:在必须数组时用了对象,在必须用对象时用了数组.
typeof检测数组的类型时object,没有意义,所以这里可以通过自定义一个is_array函数来你部缺陷
var is_array = function(value){ return value && typeof(value) === 'object' && value.constructor === Array; }
但是,上面函数在识别从不同的窗口(window)或帧(frame)中构造的数组时会失败,要想准确地检测外部数组类型,还要进一步完善
var is_array = function(value){ return Object.prototype.toString.apply(value) ==='[Object Array]' }