檢測陣列的方法

藍色熾夢發表於2017-09-24
  • typeof
    var arr=[];
    var json={};
    typeof(arr) or typeof(json) 無論怎麼樣返回值都是Obeject

  • Object instanceof Array

ES3 針對這個問題做出了處理的方式
var arr = [];
if(arr instanceof Array){
console.log("這是一個陣列 ")
}

instancesof操作符的問題在於,他假定只有一個全域性環境,如果存在包含多個框架的話,那實際就存在兩個不同以上的執行環境了,也就是說存在了兩個不同的版本的Array建構函式,如果一個頁面從一個頁面傳入陣列,那麼不同頁面就會存在不同建構函式

ES5針對這個問題做出了處理
if(Array.isArray(arr)){
console.log('這是一個陣列')
}

相容方面有些問題、目前相容的有 IE9 、fireFpx、Safari5+、Oprea 10.5+、Chrome

相關文章