Ayy*_*udy 1 javascript numbers
有没有理由为什么这些陈述评估为真?
0 == [0];
1 == [1];
5 == [5];
5000 == [5000];
1000000 == [1000000];
Run Code Online (Sandbox Code Playgroud)
所以基本上任何数字都等于自己包含在一个数组中?这背后的逻辑是什么?
这是因为非严格相等运算符在这种情况下将其操作数强制转换为字符串,并且数组的字符串表示形式是它包含的元素,用逗号分隔:
>>> [1, 5].toString()
"1,5"
Run Code Online (Sandbox Code Playgroud)
由于你问题中的数组只包含一个元素,因此它们的字符串表示形式与它们的元素相同:
>>> [5000].toString()
"5000"
Run Code Online (Sandbox Code Playgroud)