我有一个非常简单的问题。现在在控制台中我正在训练一些“算术”,例如:
false + true // 1
所以,问题是,为什么:
[] - {} // NaN
和
{} - [] // -0
任何人都可以解释一下这一点,因为这两种类型都是对象。我知道 javascript 有 true 和 false 值。所以,如果我们采取
Boolean({}) // true
Boolean([]) // true
两者都有true
,我认为结果会是这样的:
true + true // 2
或
true - true // 0
最佳答案
在此上下文中(在控制台中),{} 是一个不执行任何操作的空 block ,因此结果与
- []
并且 [] 将强制为 0,如下所示:
+[]
如果您希望将 {} 视为空对象,请尝试以下操作:
({}) - []
现在您将得到 NaN,因为空对象不会强制转换为数字。
更新:这也将按照您在控制台中所期望的方式工作(返回 NaN):
({} - [])
关于javascript - 空对象减/加空对象,以及反转值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917253/