js如何判斷一個變數是陣列還是其他物件

admin發表於2017-03-28

在實際應用中,可能需要明確的知道一個變數是陣列還是其他物件,下面就介紹一下如何實現判斷功能。

可能很多朋友認為typeof能夠實現判斷,其實這個運算子是很廢柴的,看下面程式碼:

[JavaScript] 純文字檢視 複製程式碼
var arr=["螞蟻部落",2,"分享互助"];
var obj={
  webName:"螞蟻部落",
  age:2
}
console.log(typeof arr);
console.log(typeof obj);

上面你的程式碼很明顯不能夠完成判斷功能,因為返回值都是"object"。

下面就介紹一種能夠比較完美判斷的程式碼,如下:

[JavaScript] 純文字檢視 複製程式碼
var arr=["螞蟻部落",2,"分享互助"];
function is(type,obj){
  var clas=Object.prototype.toString.call(obj).slice(8,-1);
  return obj!==undefined&&obj!==null&&clas===type;
}
console.log(is("Array",arr));

上面的程式碼實現了判斷功能,不多介紹,判斷原理可以自行輸出一下相關函式的值進行一下測試。

相關文章