typeof 和 instanceof 都能判斷數據類型,可是它們之間有什麼區別呢,淺談以下函數
1.stringspa
2.booleanprototype
3.number對象
4.function繼承
5..object (注意:typeof 在判斷 null、array、object以及函數實例(new + 函數)時,都是返回 object)原型鏈
6.undefined原型
官方解釋:用於檢測構造函數的 prototype 屬性是否出如今某個實例對象的原型鏈上。string
通俗地講:用來檢測某個對象是誰的實例io
因此咱們就知道instanceof 是對象運算符。這裏的實例就牽扯到了對象的繼承,它的判斷就是根據原型鏈進行搜尋,若是對象 obj1 的原型鏈上存在另外一個對象obj2的原型屬性,function
那麼,表達式(obj1 instanceof obj2)返回值爲 true,不然返回 false。
因此 instanceof 的返回值 爲 true 或者 false
1. typeof 能判斷的類型有: number,boolean,string,undefined,object,function。
可是不能判斷 null,array,object和函數實例(new + 函數),都是返回object
2.instanceof 可以對不一樣的對象實例進行判斷,如null,array等,返回值爲布爾值,
因此 instanceof 對對象(null、array、object)判斷更加細緻清晰!!!