Object.prototype.toString & typeof

Object.prototype.toString & typeof 

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

 

ECMAScript 3

1.獲取this對象的[[Class]]屬性的值code

2.拼接字符串:[object  + 1步獲得的值 ]對象

3.返回第2步的操做結果blog

 

[[Class]]是一個內部屬性,所有的對象(原生對象和宿主對象)都擁有該屬性ip

一個字符串值,代表了該對象的類型

 

ECMAScript 5

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"

 

ECMAScript 6

6中比較複雜,固然也是嚴謹的表現,臨時6尚未盛行的瀏覽器,這是尚在研究

相關文章
相關標籤/搜索