面试题答案
一键面试- 结果:
true
- 对象转换步骤和依据:
- 在JavaScript中,当使用
>
关系操作符比较两个对象时,会尝试将对象转换为原始值进行比较。 - 首先会调用对象的
valueOf
方法,如果valueOf
方法返回的不是原始值,再调用toString
方法。 - 对于
obj1
,它有自定义的valueOf
方法,返回5
(一个原始值)。 - 对于
obj2
,调用valueOf
方法时,由于没有自定义valueOf
,默认的valueOf
方法返回obj2
对象本身(不是原始值),于是会调用toString
方法,obj2
有自定义的toString
方法,返回'3'
。 - 然后进行比较,
'3'
会被隐式转换为数字3
,最后比较5 > 3
,结果为true
。
- 在JavaScript中,当使用