Object.prototype.toString 獲取某個對象屬於哪一種內置類型javascript
typeof 獲得某個對象的類型java
差異:瀏覽器
舉個樣例:this
var arr = new Array(); typeof(arr); //object Object.prototype.toString.call(arr); //[Object Array]
推斷某個對象值屬於哪一種內置類型spa
Object.prototype.toStringprototype
1.獲取this對象的[[Class]]屬性的值code
2.拼接字符串:」[object 」 + 第1步獲得的值 + 「]」對象
3.返回第2步的操做結果blog
[[Class]]是一個內部屬性,所有的對象(原生對象和宿主對象)都擁有該屬性ip
一個字符串值,代表了該對象的類型
1.假設this的值爲undefined。則返回 [object Undefined]
2.假設this的值爲null,則返回 [object Null]
3.得到[[Class]]屬性的值
4.拼接字符串」[object 」 + 第3步獲得的值 + 「]」
5.返回第4步的操做結果
[[Class]]的值:"Arguments", "Array", "Boolean", "Date", "Error", "Function", "JSON", "Math", "Number", "Object", "RegExp", "String"
6中比較複雜,固然也是嚴謹的表現,臨時6尚未盛行的瀏覽器,這是尚在研究