为什么
console.log(Object +1)
function Object() {
[native code]
}1
我尝试了一下,并期望一个数值作为+描述:
- 如果一侧为字符串,另一侧也转换为字符串,并将它们连接在一起。
- 如果它们都是BigInt,则执行BigInt加法。如果一方是BigInt而另一方不是,则抛出TypeError。
- 否则,两边都转换为数字,进行数字加法。
在这种情况下,JS调用Object
的toPrimitive
方法,该方法给出以下字符串:
function Object() {
[native code]
}
在下一步中,JS将1
(数字)转换为"1"
(字符串),因为第一个操作数是字符串,之后它只是两个字符串的连接,结果是:
function Object() {
[native code]
}1
这里是详细说明的链接。