只是在做一些测试,我发现这很奇怪:
[] == false
给出 true,这是有道理的,因为 double equal 只比较内容而不是类型,并尝试进行类型强制。但是如果它比较内容并返回 true,这意味着 [ ] 是错误的(如果你也[] == true
得到了错误),这意味着:
[] || false
应该给假,但它给[],使它成为真?为什么?
另一个例子:
"\n " == 0
给出真实的,但"\n " || false
给出"\n "
?是否有对此的解释,或者它只是一个奇怪的东西。
当我在 C 中尝试这个时,我们得到:
int x = "\n " == 0;
printf("%d\n", x);
int y = "\n " || 0;
printf("%d\n", y);
输出:
0
1
这是有道理的,但鉴于 C 对 Javascript 的影响,行为是不同的。