js中的if条件竟然可以这样写???

2024-11-15 20:47:14
推荐回答(2个)
回答(1):

这是逗号运算符,之前所有的运算表达式都会执行,但整个语句的值是最后一个表达式的值

比如:a = (b=2, c=3, 4==4);
括号里的是逗号运算表达式,b=2, c=3这样的赋值表达式会正常执行,
但a最后的值是true,也就是4==4的结果,true;如果换成4==5,a就是false了

而 && 表达式是只要其中一个为假,那么整个表达式就是假
逗号表达式(s=a, b, c, ...., n)s的值就是n的值,与前面的都没有关系,只是正常的执行罢了,不会影响结果

回答(2):

if的条件是任意合法表达式
js中逗号表达式的值为最右面的那个值
if(1,1,1)等价于if(1)
if(1,2,3,4,5)等价于if(5)
if(false,true)等价于if(true)
if(true,false)等价于if(false)
与&&无任何关系