数组属性的数组和对象在javascript中是否相等?

时间:2018-01-31 16:16:08

标签: javascript arrays deepequals

有人可以向我解释为什么以下情况属实:

let foo = { 
    A: [ 1, 2 ] 
}
let bar = {
   "A": {
      "0": "1",
      "1": "2"
   }
}
assert.deepEqual(foo, bar);

1 个答案:

答案 0 :(得分:2)

正如the documentation所说:

  

仅考虑可枚举的“自有”属性。 assert.deepEqual()实现不会测试[[Prototype]]个对象或可枚举的自己的Symbol属性。对于此类检查,请考虑改为使用assert.deepStrictEqual()

assert.deepStrictEqual()函数也检查原型,

assert.deepStrictEqual(foo, bar);

将返回false。