在JavaScript中,为什么num==[num]?

在JavaScript中,为什么num==[num]?,javascript,numbers,Javascript,Numbers,有没有理由证明这些陈述是正确的 0 == [0]; 1 == [1]; 5 == [5]; 5000 == [5000]; 1000000 == [1000000]; 那么基本上任何一个数都等于它自己被包装在一个数组中?这背后的逻辑是什么?这是因为在本例中,将其两个操作数强制为字符串,并且数组的字符串表示形式是它包含的元素,以逗号分隔: >>> [1, 5].toString() "1,5" 由于问题中的数组仅包含一个元素,因此它们的字符串表示形式与元素的字符串表示形式相同

有没有理由证明这些陈述是正确的

0 == [0];
1 == [1];
5 == [5];
5000 == [5000];
1000000 == [1000000];
那么基本上任何一个数都等于它自己被包装在一个数组中?这背后的逻辑是什么?

这是因为在本例中,将其两个操作数强制为字符串,并且数组的字符串表示形式是它包含的元素,以逗号分隔:

>>> [1, 5].toString()
"1,5"
由于问题中的数组仅包含一个元素,因此它们的字符串表示形式与元素的字符串表示形式相同:

>>> [5000].toString()
"5000"
这是因为在本例中,将其两个操作数强制为字符串,并且数组的字符串表示形式是它包含的元素,由逗号分隔:

>>> [1, 5].toString()
"1,5"
由于问题中的数组仅包含一个元素,因此它们的字符串表示形式与元素的字符串表示形式相同:

>>> [5000].toString()
"5000"

一个原因是使用的运算符是“==”,它只比较值而不比较数据类型,如1==“1”为真。

一个原因是使用的运算符是“==”,它只比较值而不比较数据类型,如1==“1”为真。

[0]
是一个带有一个元素“0”的数组。因此
0==[0]
相当于:

0==myArray(0)
另一种语言。其中
myArray(0)返回索引0处的值,在本例中为0


这就是我对JavaScript数组的理解。如果我错了,其他人可能想插手纠正我。

[0]
是一个包含一个元素“0”的数组。因此
0==[0]
相当于:

0==myArray(0)
另一种语言。其中
myArray(0)返回索引0处的值,在本例中为0


这就是我对JavaScript数组的理解。如果我错了,其他人可能想插手纠正我。

因为==不比较变量的类型,而===比较变量的类型,所以:

0 == [0]  //true
0 === [0] // false
在同一情况下:

0 == '0'  //true
0 === '0' //false

因为==不比较变量的类型,并且===比较变量的类型,所以:

0 == [0]  //true
0 === [0] // false
在同一情况下:

0 == '0'  //true
0 === '0' //false