[英]Will two objects/arrays in javascript == each other by coincidence?
可以说我有一个数组。
var a = [1,2,3];
然后是数组b。
var b = [1,2,3];
a == b
是否有可能返回true? 即使是百万分之一。 (我知道通常a == b
将是错误的,但是我想知道是否有可能将其设置为真。)
规范的相关部分是11.9.3抽象平等比较算法 :
比较
x == y
(其中x
和y
是值)产生true
或false
。 这样的比较执行如下:
- 如果Type(x)与Type(y)相同,则
- 如果Type(x)为Undefined,则返回true。
- 如果Type(x)为Null,则返回true。
- 如果Type(x)是Number,则
- 如果x为NaN,则返回false。
- 如果y为NaN,则返回false。
- 如果x与y相同,则返回true。
- 如果x为+ 0,y为−0,则返回true。
- 如果x为-0,y为+0,则返回true。
- 返回false。
- 如果Type(x)为String,则如果x和y是完全相同的字符序列(相同的长度和相同位置的相同字符),则返回true。 否则,返回false。
- 如果Type(x)为布尔值,则x和y均为true或均为false时返回true。 否则,返回false。
- 如果x和y指向同一对象,则返回true。 否则,返回false。
(强调我的。)
因此,您的问题的答案是否定的。 a == b
实际上是同一对象,则仅返回true
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.