let x = [];
if(x==0)
console.log('Hello')
关于代码打印' Hello'
let x = [ 1 ];
if(x==0)
console.log('Hello');
以上代码不会打印“你好”。
为什么?
答案 0 :(得分:1)
虽然我认为这应该作为this question的副本关闭,但在做出更多虚假陈述之前:
==
执行类型转换。这是根据Abstract Equality Comparison Algorithm:
[] == 0 // step 9 ToPrimitve([]) == 0
"" == 0 // step 5 ToNumber("") == 0
0 == 0 // step 1.c.iii
[1] == 0 // step 9 ToPrimitve([1]) == 0
"1" == 0 // step 5 ToNumber("1") == 0
1 == 0 // step 1.c.iii
参考文献:ToNumber,ToPrimitive