gpt4 book ai didi

javascript - Chai Library 中 equal 和 eql 有什么区别

转载 作者:可可西里 更新时间:2023-11-01 01:40:46 25 4
gpt4 key购买 nike

我有一个关于用于单元测试的 Chai 库的问题。我注意到一条声明说:

  • equal : 断言目标严格 (===) 等于给定值。
  • eql : 断言目标深度等于值。

我对strictlydeeply 之间的区别感到困惑。

最佳答案

严格相等(或===)意味着您正在将完全相同对象与其自身进行比较:

var myObj = {
testProperty: 'testValue'
};
var anotherReference = myObj;

expect(myObj).to.equal(anotherReference); // The same object, only referenced by another variable
expect(myObj).to.not.equal({testProperty: 'testValue'}); // Even though it has the same property and value, it is not exactly the same object

Deeply Equal 另一方面意味着比较对象(以及可能的深层链接对象)的每个属性 都具有相同的值。所以:

var myObject = {
testProperty: 'testValue',
deepObj: {
deepTestProperty: 'deepTestValue'
}
}
var anotherObject = {
testProperty: 'testValue',
deepObj: {
deepTestProperty: 'deepTestValue'
}
}
var myOtherReference = myObject;

expect(myObject).to.eql(anotherObject); // is true as all properties are the same, even the inner object (deep) one
expect(myObject).to.eql(myOtherReference) // is still also true for the same reason

关于javascript - Chai Library 中 equal 和 eql 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36798993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com