+运算符中的ToPrimitive

时间:2018-06-26 01:04:06

标签: javascript coercion

var a = [1,2];
var b = [3,4];

console.log(a + b); // "1,23,4"

this的段落中出现,试图解释发生的情况

  

根据ES5规范第11.6.1节,如果一个操作数已经是字符串,或者如果以下步骤产生了字符串表示形式,则+算法(当对象值是操作数时)将串联在一起。因此,当+接收到任一操作数的对象(包括数组)时,它首先对该值调用ToPrimitive抽象操作(第9.1节),然后使用上下文提示调用[[DefaultValue]]算法(第8.12.8节)的数量。

在上述情况下,我不太理解ToPrimitive。将上述规则应用于上述情况,JS引擎将尝试检查ab是否为typeof String,并且由于它们都不是,因此将执行ToPrimitive操作应用于a

试图了解ToPrimitive()是什么,如果我错了,请纠正我,explanationToPrimitive也可以理解为toString()toNumber()等等?如果是这样,为什么引用的上下文没有直接说toString而不是ToPrimitive()

0 个答案:

没有答案