【问题标题】:Comma operator in JavaScriptJavaScript 中的逗号运算符
【发布时间】:2017-03-29 14:32:40
【问题描述】:

按照this教程,这些行是什么意思?

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

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

这些行怎么写更容易?

【问题讨论】:

标签: javascript


【解决方案1】:

这里用逗号分隔两个变量,就这样,和写法一样

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

其实可以的

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

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

逗号操作符,它只作用于两个表达式时才算操作符,一个左边一个右边一个,当你想包含多个表达式时可以使用需要单个表达式的位置。

一个例子是在 return 语句中

[1,2,3].reduce(function(a,b,i) {
    return a[i] = b, a; // returns a;
},[]);

等等……

【讨论】:

  • 是的,它是简写,所以你在连续声明变量时不必写两次 var
  • 简写,是的;但是当在开头或结尾添加或删除变量时,这种表示法不会产生干净的 git 差异。因此,我不喜欢它。
【解决方案2】:

在很多情况下它与分号本质上是一样的,所以你可以改写成这样:

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

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

我个人更喜欢变量,因为我觉得这样看起来更干净一些:

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

但其他人不喜欢它。

【讨论】:

    猜你喜欢
    • 2010-10-04
    • 2019-08-05
    • 1970-01-01
    • 2022-06-09
    • 2017-07-11
    • 2010-12-16
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多