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

问题描述 投票:0回答:1

为什么输出是

console.log(Object +1)

function Object() {
    [native code]
}1

我试过了,并将一个数值作为+描述:

  • 如果一侧是字符串,则另一操作数也转换为字符串并将它们连接起来。
  • 如果都是BigInt,则进行BigInt加法。如果一侧是 BigInt 而另一侧不是,则会抛出 TypeError。
  • 否则两边都转为数字,进行数字加法
javascript concatenation operator-overloading addition
1个回答
0
投票

在这种情况下,JS调用了

toString
Object
方法,得到如下字符串:

function Object() {
    [native code]
}

在下一步中,JS 将

1
(number) 转换为
"1"
(string),因为第一个操作数是一个字符串,之后它只是两个字符串的连接,结果是:

function Object() {
    [native code]
}1
© www.soinside.com 2019 - 2024. All rights reserved.