首页 > 解决方案 > JavaScript 中括号的使用

问题描述

我在 Kyle Simpson 的 @kyle-simpson 书Functional-Light JavaScript中遇到了以下 JavaScript,并对它的部分语法感到好奇:

    const double = v => v * 2;

    const reducer = (list, v) => (list.push(double(v)), list);

    var doubled = [1, 2, 3, 4, 5].reduce(reducer, []);

    console.log(doubled);
    //[2, 4, 6, 8, 10]

    var reduced = reducer([3], 2);

    console.log(reduced);
    //[3, 6]

具体来说,我不确定 reducer 函数返回值周围的外括号的含义和用法:

(list.push(double(v)), list)

将对象文字包装在括号中是一种从箭头函数隐式返回它的方法,但这似乎有所不同。

还:

var val = (3, 2);

console.log(val);
//2

这似乎表明括号将返回其列表中的最后一个值,这将匹配 reducer 函数的签名,但我不知道这个构造被称为什么。

提前感谢您的回复。

标签: javascript

解决方案


推荐阅读