面试题答案
一键面试- 类型转换分析:
- 首先执行
1 + obj
,在加法运算中,当一个操作数是对象时,会尝试将对象转换为原始值。- 按照ECMAScript规范,对象转换为原始值的过程首先会调用
valueOf
方法,如果valueOf
方法返回的不是原始值,再调用toString
方法。 - 这里
obj
的valueOf
方法返回'4'
,是一个字符串,所以1 + obj
就相当于1 + '4'
。 - 根据JavaScript的类型转换规则,当一个数字和一个字符串进行加法运算时,数字会被转换为字符串,所以
1 + '4'
结果为'14'
。
- 按照ECMAScript规范,对象转换为原始值的过程首先会调用
- 然后执行
'14' + 2
,同样,数字2
会被转换为字符串'2'
,然后进行字符串拼接。
- 首先执行
- 最终输出结果:
'142'