为什么 Jasmine toEqual 在比较空数组和空对象时返回 true
Why does Jasmine toEqual return true when comparing empty array with empty object?
我明白为什么下面返回错误...
expect({}).toBe({});
我明白为什么以下内容返回 true...
expect({}).toEqual({});
但是为什么以下true
?
expect([]).toEqual({});
> 看起来toEqual()
将这两个项目都视为对象,并迭代每个项目的可枚举属性 - 检查它们的值是否相等。
换句话说,它似乎将数组视为常规 JS 对象,使用索引作为具有相应值的"属性"。只要数组中的索引/值对与对象中的属性/值对匹配,Jasmine 显然会将它们视为相等。
例如,以下内容(令人惊讶地)成功...
var myArray = ['a', 'b'];
var myObj = {
1: 'b',
0: 'a'
};
expect(myArray).toEqual(myObj);
相关文章:
- Javascript:firstChild对象返回undefined
- Javascript对象返回垃圾值
- 从js中的对象返回一个值
- 从Javascript类对象返回函数
- 从具有最高值的对象返回属性
- 为什么我的Date对象返回当前日期
- NodeJS fs.readdr-将回调内部作为对象返回
- Leadfoot会话对象返回promise
- 如何从对象返回可读字符串
- 日期对象和ISO日期对象返回不同的日期
- 使用JavaScript's FormData对象返回整个html
- 节点.js请求对象 - 返回响应正文以供进一步操作
- 使用 Restangular 使用 RESTful API - RESTful API 将数组作为顶级对象返回是否安全
- 带有方法的 Javascript 对象返回“没有方法'我的方法名称'”错误
- 从 Date() 对象返回 dd-mm-yyyyy
- JSON 中的日期对象返回的数据被视为字符串
- Javascript - 如何获取字符串,打印单词,字符,空格,平均单词长度的#并作为对象返回
- 如何从新对象返回值,同时保留其方法
- 如何从对象返回某些键
- 从 Javascript 中的对象返回值