我有一个非常简单的问题。现在在控制台我训练一些"算术",如:
false + true // 1
所以,问题是,为什么:
[] - {} // NaN
和
{} - [] // -0
任何人都可以解释这个,因为它们都是对象。而且我知道javascript具有真实和虚假的价值观。所以,如果我们采取
Boolean({}) // true
Boolean([]) // true
我们都有true
,我认为结果会像:
true + true // 2
或
true - true // 0
答案 0 :(得分:2)
在此上下文中(在控制台中),{}是一个不执行任何操作的空块,因此结果与
相同- []
并且[]将强制为0,如下所示:
+[]
如果您希望将{}视为空对象,请尝试以下操作:
({}) - []
您现在将获得NaN,因为空对象不会强制转换为数字。
更新:这也可以在控制台中使用(返回NaN):
({} - [])