如何使用属性值为NaN的should.js检查对象相等性

时间:2013-09-02 23:06:39

标签: javascript node.js nan should.js

我认为这是由于特殊值NaN导致的should.js中的一个错误,因为NaN不等于它自己。

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

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

有关如何处理此测试用例的任何建议?

1 个答案:

答案 0 :(得分:2)

NaN的特殊之处在于它与自身不相同。

> NaN == NaN
false

这不是错误。 NaN不等于任何东西。有关详细信息,请参阅MDN