为什么不能将Symbol值转换为字符串

Sky*_*yAo 11 javascript

为什么Symbol('test').toString()运作良好,但我不能使用'' + Symbol('test')

它会抛出错误:

无法将Symbol值转换为字符串

为什么隐式类型转换不起作用?为什么代码不相等'' + Symbol('test').toString()

Rob*_*obG 23

根据ECMA-262,在Symbol类型的值上使用加法运算符并结合字符串值首先调用内部ToPrimitive,它返回符号.然后它调用内部ToString,对于Symbols,它将抛出TypeError异常.

因此调用内部ToString与调用Symbol.prototype.toString不同.

所以我想答案是:

为什么隐式类型转换不起作用?

是" 因为规范这么说 ".