【问题标题】:Boolean Logic Regarding empty arrays. [duplicate]关于空数组的布尔逻辑。 [复制]
【发布时间】:2016-07-16 17:07:23
【问题描述】:

快速提问:

为什么返回 false?只是好奇。

var myArray = []; var myArray1 = new Array(); console.log(myArray === myArray1)

【问题讨论】:

  • 两者都是不同的数组...在不同的位置参考

标签: javascript arrays boolean


【解决方案1】:

两个不同的对象永远不会相互===(就此而言,它们也不是==)。对象相等意味着两个对象实际上只是一个对象;也就是说,=== 运算符的两边都是对完全相同的对象的引用。

所以,这会给你true

var a = [], b = a;
console.log(a === b);

【讨论】:

  • 兄弟!即使您进行 == 检查,这些东西也不会起作用,因为它们是单独的实例。如果遗漏了什么,请纠正我。
  • Pointy 说过 “他们也不是 ==,就此而言”
【解决方案2】:

每次都这样做

  • 新数组() 或
  • = []

Array 构造函数的一个新实例被分配给该变量。因此,当您进行平等检查时,它们并不相同。就像当一个类的两个实例不相同时一样。

【讨论】:

    猜你喜欢
    • 2018-01-31
    • 2016-07-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2020-07-11
    • 1970-01-01
    相关资源
    最近更新 更多