一: 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/…