目前對(duì)于JavaScript而言有如下幾種基本數(shù)據(jù)格式,分別為
Boolean
String
Number
undefined
null
Symbol
還有一種復(fù)雜的數(shù)據(jù)格式,為Object,一般在進(jìn)行數(shù)據(jù)類型的判斷時(shí)候,我之前一般采用的都是typeof的方法,這種方法對(duì)于string,boolean, number,undefined, 都可以非常準(zhǔn)確獲取類型,如下
typeof 32
"number"
typeof 'helloworld'
"string"
typeof true
"boolean"
typeof null
"object"
但是問題也來了,如何分辨出null和一般的JS對(duì)象呢,因?yàn)槿绻加?code>typeof的話,就無法準(zhǔn)確識(shí)別出null和一般的JS對(duì)象,為了準(zhǔn)確分別出每個(gè)數(shù)據(jù)類型,也就引出了如下的方式
Object.prototype.toString()
toString() 方法返回一個(gè)表示該對(duì)象的字符串,如果此方法在自定義對(duì)象中未被覆蓋,toString() 返回 "[object type]",其中type是對(duì)象的類型,為了每個(gè)對(duì)象都能通過 Object.prototype.toString()來檢測(cè),需要以 Function.prototype.call()或者 Function.prototype.apply() 的形式來調(diào)用