js中var x = (a || b,c);怎么解释这个表达式?

JavaScript019

js中var x = (a || b,c);怎么解释这个表达式?,第1张

a||b 短路运算符,a为false执行b,a为true,执行a

类似的还有 a & b ,a为true执行b,否则为a

三目运算符:a ? b : c; a为true 执行b  赋值执行c

var a = (3,4)会逐个赋值    先a=3,  然后再a=4覆盖

比如 function test(num){

        console.log('赋值为:'+num) 

        return num

     }

     var a = (test(2), test(3))  可以看到赋值顺序

     

所有var a = (8 || 7, 6) 先赋值a= 8||7 为8,  再a=6覆盖

按理说是两种都可以的,但是不知道JS把undefined和null是不是看做空

保险的做法是 typeof(a) !== ‘undefined’ ? a : b

下面那个也一样