【问题标题】:How to check object equality using should.js with a property value as NaN如何使用属性值为 NaN 的 should.js 检查对象是否相等
【发布时间】:2013-09-06 01:45:35
【问题描述】:

我认为这是 should.js 中的一个错误,因为 NaN 不等于自身。

({
    a: 1,
    c: 3,
    b: 2,
    d: NaN
}).should.eql({
    a: 1,
    c: 3,
    b: 2,
    d: NaN
});

这个测试用例失败了,但它似乎很明显应该通过。

关于如何处理这个测试用例有什么建议吗?

【问题讨论】:

标签: javascript node.js nan should.js


【解决方案1】:

NaN 的特殊之处在于它不等于自身。

> NaN == NaN
false

这不是错误。 NaN 不等于任何东西。请参阅MDN 了解更多信息。

【讨论】:

  • 我在我的问题中说过。我没有问为什么。我问如何处理这个错误。
  • @Juno 这不是错误。
  • should.js 应该对此很聪明,并单独检查 NaN。这显然是 should.js 中的一个错误。
  • @Juno 不,那么按照这个逻辑,这是 JavaScript 中的一个错误。 NaN !== NaN.
  • @Juno 你为什么要这么做?不要。
猜你喜欢
  • 1970-01-01
  • 2013-10-20
  • 1970-01-01
  • 2023-04-06
  • 2022-08-22
  • 2019-02-23
  • 1970-01-01
  • 2014-08-22
  • 2017-12-11
相关资源
最近更新 更多