js中的型別判斷

juddy同學發表於2019-02-12

一: typeof (推薦)

實用性: 可以檢測出來undefined、object、boolean、number、string、object、function, Null 和 Object 型別都返回了 object 字串;

侷限性: Object 下還有很多細分的型別吶,如 Array、Function、Date、RegExp、Error 等無法檢測出來。

       e.g.   typeof {} // "object"      typeof null // "object"
複製程式碼

二:constructor

原型上的 constructor被遺傳到了新建立的物件上,使得新物件誕生後具有可追溯的資料型別。 e.g. [].constructor == Array // true

三: instanceof

用來判斷 A 是否為 B 的例項對 注意:instanceof檢測的是原型,只能用來判斷兩個物件是否屬於原型鏈的關係, 而不能獲取物件的具體型別。

四: Object.prototype.toString (推薦)

優勢:可以識別至少 14 種型別(number, string, boolean, und, nul, obj, array, date, error, reg, func,Math,JSON,Arguments

 e.g. console.log(Object.prototype.toString.call(Math)); // [object Math]
複製程式碼

參考文章:

1,JavaScript專題之型別判斷(上) github.com/mqyqingfeng…

2,判斷JS資料型別的四種方法 www.cnblogs.com/onepixel/p/…

相關文章