Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 数组和if语句_Javascript_Arrays - Fatal编程技术网

Javascript 数组和if语句

Javascript 数组和if语句,javascript,arrays,Javascript,Arrays,[]是数组。数组是对象。对象为true,因此[]为true。这没关系 但我无法理解其他结果 if([]){}//true if([]==true){}//false if([1]==true){}//true if([2]==true){}//false if([1,2]==true){}//false if(['Hi']==true){}//false if([{aaa:1}]==true){}//false []不是布尔值,而是数组。也就是说,空数组是布尔真数组。它不是,它是一个空数组 i

[]
是数组。数组是对象。对象为true,因此
[]
为true。这没关系

但我无法理解其他结果

if([]){}//true
if([]==true){}//false
if([1]==true){}//true
if([2]==true){}//false
if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false
[]不是布尔值,而是数组。也就是说,空数组是布尔真数组。它不是,它是一个空数组

if([]){}将其计算为已定义且不为null

选中此项:

[]不是布尔值,而是数组。也就是说,空数组是布尔真数组。它不是,它是一个空数组

if([]){}将其计算为已定义且不为null


勾选此项:

您可以在此处找到一些答案:


您可以在这里找到一些答案:

所有JavaScript对象都是真实的-它们都强制为布尔值
true


如果一个操作数是对象,而另一个操作数是布尔值,则两个操作数都强制为一个数值。空数组将强制为
0

if([]==true){}//false

这里也一样。对于包含一个项的数组,该项将强制为Number,并且该值将与另一个操作数进行比较:

if([1]==true){}//true

是:


如果数组有多个项,强制使用数字将导致
NaN

if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false

字符串强制为数值
NaN

if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false

对象还强制为数值
NaN

if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false
所有JavaScript对象都是真实的-它们都强制为布尔值
true


如果一个操作数是对象,而另一个操作数是布尔值,则两个操作数都强制为一个数值。空数组将强制为
0

if([]==true){}//false

这里也一样。对于包含一个项的数组,该项将强制为Number,并且该值将与另一个操作数进行比较:

if([1]==true){}//true

是:


如果数组有多个项,强制使用数字将导致
NaN

if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false

字符串强制为数值
NaN

if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false

对象还强制为数值
NaN

if([1,2]==true){}//false
if(['Hi']==true){}//false
if([{aaa:1}]==true){}//false

同意-如果你不打算遵循“询问/回答/接受”的SO协议,不要指望别人会帮助你。(我们不希望100%接受,但0%是荒谬的)一个空数组
[]
强制执行数值
0
,我相信。同意-如果你不遵守询问/回答/接受的SO协议,不要指望人们会帮你。(我们不希望100%接受,但0%是荒谬的)空数组
[]
强制执行数值
0
,我相信。这是正确的,尽管它没有解释为什么
如果([1]==true){}//true
。据我所知,
[1]
1
这是
true
这是正确的,尽管它没有解释为什么
如果([1]==true){}//true
。据我所知,
[1]
1
,这是
正确的
,这是好东西,有没有参考或简单的方法来测试强制正在发生什么?@Ryley只要看一下说明书:上面说得很好。强制规则是49.太好了,我只是想确定这个答案附带了一些信息:)这是好东西,有没有参考资料或简单的方法来测试我自己的强迫行为发生了什么?@Ryley刚看了说明书:上面说的很好。强制规则是49.太好了,我只是想确保信息附在这个答案上:)