您的位置:首页 » 分类: JavaScript & ES2015 (ES6) » 文章: ES2017 函数参数列表和调用后面的逗号

ES2017 函数参数列表和调用后面的逗号

小编推荐:掘金是一个面向程序员的高质量技术社区,从 一线大厂经验分享到前端开发最佳实践,无论是入门还是进阶,来掘金你不会错过前端开发的任何一个技术干货。

ECMAScript 2017 新特性提议 – 函数参数列表和调用后面的逗号

概述

参数后面跟的逗号现在是合法的:

function foo(
    param1,
    param2,
) {}

同样,函数调用时参数后面跟的逗号也是合法的:

foo(
    'abc',
    'def',
);

对象字面量和数组字面量后面跟的逗号

对象字面量后面跟的逗号会被忽略:

let obj = {
    first: 'Jane',
    last: 'Doe',
};

数组字面量后面跟的逗号也会被忽略:

let arr = [
    'red',
    'green',
    'blue',
];
console.log(arr.length); // 3

为什么要这么做,有什么用? 有两个好处。

首先,重新排列元素项比较简单,如果你要改变最后一个元素项的位置,你不必添加和删除逗号。

其次,它帮助版本控制系统跟踪实际发生的变化。例如,从:

[
    'foo'
]

修改为:

[
    'foo',
    'bar'
]

这么做,版本控制系统会标记 foo 行和 bar 行为已更改,尽管唯一真正的变化是添加了后面的一行。

特性:允许在参数定义和函数调用后面使用逗号

考虑到 后面跟的逗号 可选的和可忽略的好处,这个特性也被引入到了函数参数定义和函数参数调用中。

例如,以下函数声明在 ECMAScript 2015(ES6) 中会导致语法错误,但现在 ECMAScript 2017(ES8) 是合法的:

function foo(
    param1,
    param2,
) {}

类似地,下面这个调用foo() 现在在语法上也是合法的:

foo(
    'abc',
    'def',
);

原文链接:http://exploringjs.com/es2016-es2017/ch_trailing-comma-parameters.html

关注WEB前端开发官方公众号

关注国内外最新最好的前端开发技术干货,获取最新前端开发资讯,致力于打造高质量的前端技术分享公众号

发表评论

电子邮件地址不会被公开。 必填项已用*标注