1、0x00引言
很多時候我們需要對JavaScript中數據類型(Function、String、Number、Undefined、Boolean和Object)做判斷。在JavaScript中提供了**typeof
**操作符可以對這些常用的數據類型做判斷。
可是當我們使用typeof來判斷數據是不是一個數組,就不起作用了。那在實際生產中需要怎么樣來檢測數據是不是一個數組呢?
這里使用**typeof**檢測的數組是一個對象(數組本身也為對象嘛)
0x02、檢測數組的方法
我們知道數組并不屬于JavaScript中的數據類型,在上面的檢測出數組是一個對象,下面將列舉一些常見的數組檢測方法
ECMAScript 5的isArray函數
console測試結果
對象自身的constructor屬性
檢測構造函數時使用對象自身的constructor屬性,此時constructor屬性返回一個指向了該對象原型的函數引用,使用該屬性也可以檢測數組的類型
instanceof操作符
instanceof操作符用來判斷某個構造函數的prototype屬性是否在另一個檢測對象的原型鏈上
instanceof操作符判斷
0x03、總結
其實目前大多生產環境對ES5都有比較好的支持,故使用isArray方法和常見的instanceof對于我們判斷一個對象是否為數組比較便捷