判断数据类型toString()

2021-01-07  本文已影响0人  理想休想幻想

在coding时,经常会遇到对数据进行类型的判断,常用的typeof并不能满足需求,因为使用typeof时,在引用类型中,除了function返回function类型外,其他均返回object,在搜寻其他人怎么做的时候,发现toString是比较完美的方法

es10后不止5种基本数据类型,es6后添加Symbol,es10后又添加了BigInt
现在的数据类型共有8种: Number、String、Boolean、Null、undefined、Object、Symbol、BigInt
基本类型:Number、String、Boolean、Null、Undefined
引用类型:Object,其中包含了Array、Date、Function等

typeof() 方法

基本类型里除了null,其他4中基本类型都能返回对应的类型,但是null时返回的是object,并不是我们想要的结果。
typeof (null )// 返回object

引用类型中,除了function返回function类型外,其他都是返回Object。
typeof([]) // 返回array

对于以上的两种🌰

Object.prototype.toString 方法

toString方法

toString() 是 Object 的原型方法,当使用toString()时,默认返回当前对象的 [[Class]] ——内部属性,格式为 [object Type] ,其中 Type就是对象的类型且为大写开头的数据类型。
通过Object原型上的toString()方法,且让方法中的this指向value——我们要判断数据类型的值

需要注意的是:
对于数据类型为Object的对象,直接调用 toString() 就能返回 [object Object] 。其他对象,则需要通过 call / apply 来指定this指向,才能返回我们想要的结果。

使用方法总结

有些数据类型未使用到,在该方法中未定义,可根据具体需求进行定义。


carbon.png

]

上一篇 下一篇

猜你喜欢

热点阅读