JavaScript中的逗号操作符

Comma operator in JavaScript

本文关键字:操作符 JavaScript      更新时间:2023-09-26

在本教程中,这些行是什么意思?

var join = require('path').join
  , pfx = join(__dirname, '../_certs/pfx.p12');

逗号操作符计算它的每个操作数(从左到右),并返回最后一个操作数的值。

这些行怎么更容易写?

在本例中,逗号分隔了两个变量,就这样,它与

相同
var join = require('path').join;
var pfx  = join(__dirname, '../_certs/pfx.p12');

可以改成

var join = require('path').join,
    pfx  = join(__dirname, '../_certs/pfx.p12');

在这种情况下,逗号只是一个分隔符,就像它是一个对象字面值或数组一样。

逗号操作符只有在作用于两个表达式(一个在左侧,一个在右侧)时才是操作符,当您希望在需要单个表达式的位置包含多个表达式时,可以使用它。

返回语句

就是一个例子
[1,2,3].reduce(function(a,b,i) {
    return a[i] = b, a; // returns a;
},[]);

等等…

它在很多情况下与分号基本相同,因此您可以将其重写为:

var join = require('path').join;
var pfx = join(__dirname, '../_certs/pfx.p12');

区别在于像声明变量这样的行(如您的示例),其中var应用于逗号分隔列表中的每个元素。除此之外,它或多或少是一个分号,尽管在大多数情况下不建议使用逗号语法。

我个人更喜欢它作为变量,因为我认为这样看起来更干净:

var a = 5,
    b = 6,
    c, 
    d;