空对象减去/加上空对象,并反转值

时间:2015-10-02 23:27:37

标签: javascript

我有一个非常简单的问题。现在在控制台我训练一些"算术",如:

false + true // 1 

所以,问题是,为什么:

[] - {} // NaN

{} - [] // -0

任何人都可以解释这个,因为它们都是对象。而且我知道javascript具有真实和虚假的价值观。所以,如果我们采取

Boolean({}) // true
Boolean([]) // true

我们都有true,我认为结果会像:

true + true // 2

true - true // 0

1 个答案:

答案 0 :(得分:2)

在此上下文中(在控制台中),{}是一个不执行任何操作的空块,因此结果与

相同
- []

并且[]将强制为0,如下所示:

+[]

如果您希望将{}视为空对象,请尝试以下操作:

({}) - []

您现在将获得NaN,因为空对象不会强制转换为数字。

更新:这也可以在控制台中使用(返回NaN):

({} - [])