其实逗号表达式不能算是比较新的
先来看一个小例子:
var a = (true,false);
console.log(a) // false
复制代码
这就是一个简单的逗号表达式,由此我们可以看出逗号表达式的形式是:
(表达式1,表达式2,表达式3,.... 表达式n)
那么这个表达式到底表达什么意思呢?
先计算表达式1的值,再计算表达式2的值...最后再计算表达式n的值,并将n的值return返回
需要注意的是,不管有多少表达式,只将最后一个表达式返回
有人就会问了,你只返回最后的一个值,那计算前面的值有什么用?又不会返回
虽然不会返回,但是可以进行一些操作和判断
看下面这个例子:
var a = (a =1,b =2 ,c = a+b)
console.log(a) //3
复制代码
使用逗号表达式有什么意义呢?
我觉得就类似于三目运算的意义。既然if else很好用,那为什么还要用三目呢?主要还是为了书写高质量的代码以及保持代码的整洁性,还有个理由:但是吧,还不好意思说—装逼,毕竟写的越让人看不懂越能体现自己的水平(别打脸)。
如果你是个菜鸟你可能这么写:
if(x){
foo()
return boo()
}else{
return coo()
}
复制代码
如果是个老鸟,他会这么写:
return x ? (foo(),boo()):coo()
复制代码
是不是瞬间就觉得高大上了!