typeof 和 instanceof 都能判斷資料型別,但是它們之間有什麼區別呢,淺談如下

typeof

用於判斷資料型別,返回值為以下6種類型

1.string

2.boolean

3.number

4.function

5..object (注意:typeof 在判斷 null、array、object以及函式例項(new + 函式)時,都是返回 object)

6.undefined

instanceof

官方解釋:用於檢測建構函式的 prototype 屬性是否出現在某個例項物件的原型鏈上。

通俗地講:用來檢測某個物件是誰的例項

所以我們就知道instanceof 是物件運算子。這裡的例項就牽扯到了物件的繼承,它的判斷就是根據原型鏈進行搜尋,如果物件 obj1 的原型鏈上存在另一個物件obj2的原型屬性,

那麼,表示式(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)判斷更加細緻清晰!!!