1. 程式人生 > >關於typeof的用法以及和instanceof的區別

關於typeof的用法以及和instanceof的區別

今天在這裡給大家說一下在js的使用中typeof的用法 , typeof運算子判斷資訊以字串形式返回的.
typeof返回的型別有六種: ‘number’ , ‘string’ , ‘boolean’ , ‘object’ 以及 ‘function’ 和 ‘undefined’.
大家可能覺得返回的型別是不是不夠啊!!! 對的 , typeof 有一定的侷限性, Array 和 Null 的返回型別都是object
以下就是各個對應的返回的資料型別:

在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

由此可見 , typeof的侷限性 . 那麼 , 如果想判斷是Array 和 Null 格式該怎麼辦 ?
當然了, 我們不會罷休 , 所以 instanceof 就成為了我們解決這個問題的武器 .
在上面我們看到Array 和 Null 返回的型別都是object , 因為那些基本型別都是object 的子類 , 所以能返回object , 但是 instanceof 返回的結果如下 :

在這裡插入圖片描述

在這裡插入圖片描述

instanceof 是有效果的 , 但是 這裡並不是因為上面所說的Array是object的子類 , 這裡 Array的prototype 屬性構造於object , 而 Array 的父級是Function .

在這裡插入圖片描述

在這裡插入圖片描述

以上便是我對typeof和 instanceof 的理解 .
總結 :
typeof 是一元運算子,用來返回運算元型別的字串。
instanceof 只有一個實際應用場景,就是用來檢測一個物件是否已經定義或者是否已經賦值。而這個應用卻不是來檢查物件的型別。(返回的都是 true 和 false)

如有不同見解或發現什麼錯誤 , 歡迎各位留言批評 !!!