toString()方法来识别数据类型
2018-03-15 本文已影响8人
losspm
目前对于JavaScript而言有如下几种基本数据格式,分别为
Boolean
String
Number
undefined
null
Symbol
还有一种复杂的数据格式,为Object
,一般在进行数据类型的判断时候,我之前一般采用的都是typeof
的方法,这种方法对于string
,boolean
, number
,undefined
, 都可以非常准确获取类型,如下
typeof 32
"number"
typeof 'helloworld'
"string"
typeof true
"boolean"
typeof null
"object"
但是问题也来了,如何分辨出null
和一般的JS对象呢,因为如果都用typeof
的话,就无法准确识别出null
和一般的JS对象,为了准确分别出每个数据类型,也就引出了如下的方式
Object.prototype.toString()
toString()
方法返回一个表示该对象的字符串,如果此方法在自定义对象中未被覆盖,toString()
返回 "[object type]"
,其中type是对象的类型,为了每个对象都能通过 Object.prototype.toString()
来检测,需要以 Function.prototype.call()
或者 Function.prototype.apply()
的形式来调用