1. 程式人生 > >typeof和 instanceof 如何結合使用判斷型別和具體物件Array或

typeof和 instanceof 如何結合使用判斷型別和具體物件Array或

A物件 instanceof B物件

instanceof最恰當的解釋:判斷A物件原型鏈上 是否有B物件原型 !!!

由於typeof無法判斷物件具體是哪種型別,instanceof可以判斷A物件原型鏈上 是否有B物件原型 !!!

注意:typeof要注意了,null和物件返回的字串都是“object”,做判斷的時候要處理特殊情況!

判斷物件[]或{} 是物件還是陣列的三種方法:

第一種:函式名.constructor 是Array 還是 Object

第二種: A物件  instanceof  Array   如果A物件是{}型別,肯定就是fasle,如果是[]型別,肯定是true;

第三種:利用Object.prototype.toString() 函式的call方法,幫call第一個屬性物件返回toString值!

Object.prototype.toString() == Object.prototype.toString.call() //"[object Object]"
Object.prototype.toString.call([]) //輸出結果"[object Array]"
Object.prototype.toString.call({}) //輸出結果"[object Object]"
Object.prototype.toString.call(123) //輸出結果"[object Number]"