如何让 (a == 1 && a == 2 && a == 3) 的值为 true
Object 转换为原始类型
如果部署了
[Symbol.toPrimitive]
接口,那么调用此接口,若返回的不是基本数据类型,抛出错误。如果没有部署
[Symbol.toPrimitive]
接口,那么根据要转换的类型,先调用valueOf / toString
非Date类型对象,
hint
是default
时,调用顺序为:valueOf >>> toString
,即valueOf
返回的不是基本数据类型,才会继续调用valueOf
,如果toString
返回的还不是基本数据类型,那么抛出错误。如果
hint
是string
(Date对象的hint
默认是string
) ,调用顺序为:toString >>> valueOf
,即toString
返回的不是基本数据类型,才会继续调用valueOf
,如果valueOf
返回的还不是基本数据类型,那么抛出错误。如果
hint
是number
,调用顺序为:valueOf >>> toString
题解
隐式转换
数据劫持
数组的
toString
接口默认调用数组的join
方法,重写join
方法
Last updated