typeof和 instanceof 如何結合使用判斷型別和具體物件Array或
阿新 • • 發佈:2018-12-20
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]"