javascript - 空对象减/加空对象,以及反转值

标签 javascript

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

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/

相关文章:

javascript - .attr ("value") 总是返回未定义?

javascript - 清除 WinJS 绑定(bind) JavaScript 数组

javascript - 使用 OpenID、社交登录和 Amazon Cognito 管理我网站上的用户

javascript - 将一张图片翻转成另一张图片

javascript - Sequelize - 从父实例中删除关联记录

javascript - 文本字段中仅允许整数和浮点值

javascript - 在内部创建对象实例

javascript - 阻止 CckEditor 添加样式

javascript - 使用 Javascript/jQuery 在表格中随机播放 <td>

javascript - api 返回一个带有编号和命名键的数组