gpt4 book ai didi

javascript - 为什么是 `Number(new Boolean(false)) === 0`

转载 作者:行者123 更新时间:2023-12-01 16:04:33 24 4
gpt4 key购买 nike

Boolean(new Boolean(...)) === true 因为 new Boolean(...) 是一个对象。

但为什么 Number(new Boolean(false)) === 0 (+new Boolean(false) === 0) 和 Number(new bool 值(真))=== 1?为什么不是 NaN*?

为什么第一个例子没有拆箱,而第二个例子有?


*isNaN(Number({})) === true

最佳答案

正如@ASDFGerte 提到的。这是因为 Number() constructor 调用的 ToNumber() 方法会调用.ToPrimitive() on the argument if an object is passed .这就是为什么它被视为 bool 基元而不是对象的原因。

关于javascript - 为什么是 `Number(new Boolean(false)) === 0`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59595145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com