前言
逗号在JavaScript中有很大的用处,一方面它是基本的分隔符,例如,在函数中传递多个参数时,使用逗号分隔;另已方面它可以作为一个运算符,从左到右依次执行。例如下面的表达式语句:
x = 8 * 2, x * 4 复制代码
这是一个使用了逗号运算符的语句,首先执行左边的部分,x = 8 * 2,即x = 16,然后执行右边的语句,x * 4 = 16 * 4 = 64,并将其返回。
几个逗号运算符的使用场景:
1. 在for循环中批量执行表达式
如果一个for循环中有多个变量需要执行表达式,可以通过逗号运算符一次性执行。
for (var i = 0; j = 10; i < 10, j < 20; i++,j++) { console.log(i, j); } 复制代码
一般在for循环的末尾,只允许执行单个表达式,在这里我们使用逗号运算符将i++和j++视为同一表达式,因此可以一次执行。
2. 用于交换变量,无须额外变量
通常我们需要交换两个变量的方法是,借助一个临时变量实现,或者使用解构赋值来实现:
var a = 'a'; var b = 'b'; var c; // 借助临时变量 c = a; a = b; b = c; // 解构赋值 [a, b] = [b, a] 复制代码
现在我们又多了第三种方法,那就是使用逗号运算符:
var a = 'a'; var b = 'b'; // 方案1 a = [b, b = a][0]; // 方案2 a = [b][b = a, 0]; 复制代码
3. 用于简化代码
对于特定的函数,我们可以使用逗号运算符进行简写。
if(x) { foo(); return bar(); } else { return 1; } // 使用逗号运算符简写后 x ? (foo(), bar()) : 1;