为什么console.log(Object +1)的输出结果是这样的?



为什么

console.log(Object +1)

function Object() {
[native code]
}1

我尝试了一下,并期望一个数值作为+描述:

  • 如果一侧为字符串,另一侧也转换为字符串,并将它们连接在一起。
  • 如果它们都是BigInt,则执行BigInt加法。如果一方是BigInt而另一方不是,则抛出TypeError。
  • 否则,两边都转换为数字,进行数字加法。

在这种情况下,JS调用ObjecttoPrimitive方法,该方法给出以下字符串:

function Object() {
[native code]
}

在下一步中,JS将1(数字)转换为"1"(字符串),因为第一个操作数是字符串,之后它只是两个字符串的连接,结果是:

function Object() {
[native code]
}1

这里是详细说明的链接。

相关内容

  • 没有找到相关文章

最新更新