arr+'' 隐式转换
来源:7-4 flat函数设计

深山小童
2019-05-11
老师,对象转换成字符串,不是先调用toString()方法吗,为什么是题中先调用的是valueOf()方法呢。难道说 arr + ‘’ 是将arr隐式转换成数字?谢谢
写回答
2回答
-
weixin_慕UI1016465
2019-07-29
arr + ""
加号一侧 是 string 类型 ,那么另一侧也得转换为 string 类型
数组得先转换为原始类型
- 先调用 ToPrimitive(input,hint) (Date 对象特殊,hint 为 string),hint 默认为 number
- 所以先调用 valueOf 方法,如果返回的是基础类型,返回之
- 否则调用 toString,如果返回的是基础类型,返回之
- 抛出 TypeError 错误
参见标准
https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive
10 -
快乐动起来呀
2019-05-13
关于toString和valueof哪个先被调用,课程已经讲的很清楚了,根据不同的情况选择调用,其实不用理解为什么,引擎就是这么定义的
012019-05-13
相似问题