Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对于数组(array==0)为true,对于非空数组(array==0)为false,为什么?_Javascript - Fatal编程技术网

Javascript 对于数组(array==0)为true,对于非空数组(array==0)为false,为什么?

Javascript 对于数组(array==0)为true,对于非空数组(array==0)为false,为什么?,javascript,Javascript,关于代码打印“你好” let x = []; if(x==0) console.log('Hello') 上述代码不打印“Hello” 为什么?虽然我认为这应该作为的副本关闭,但在做出任何虚假陈述之前: =执行类型转换。这是根据以下条件进行的类型转换: 参考资料:,包含答案的许多相关问题。见和[]==0和[]==false是相同的,因为false被转换为0@DenIsahac:这怎么是重复的?[]是错误的,0是错误的。Falsy==Falsy==true。非常简单的伴侣。@Mardo

关于代码打印“你好”

let x = [];
if(x==0) 
    console.log('Hello')
上述代码不打印“Hello”


为什么?

虽然我认为这应该作为的副本关闭,但在做出任何虚假陈述之前:

=
执行类型转换。这是根据以下条件进行的类型转换:


参考资料:,

包含答案的许多相关问题。见和<代码>[]==0和
[]==false
是相同的,因为
false
被转换为
0
@DenIsahac:这怎么是重复的?[]是错误的,0是错误的。Falsy==Falsy==true。非常简单的伴侣。@Mardoxx:除了
[]
不是假的。没那么简单。请看我在第一条评论中发布的链接。@Mardoxx当比较不同类型的对象时,其中一个会转换为另一个类型。这不仅仅是比较他们的真实性。
let x = [ 1 ];
if(x==0) 
    console.log('Hello');
[] == 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