目錄
請支持這本書:購買(PDF、EPUB、MOBI)捐款
(廣告,請不要封鎖。)

10. 函數參數清單和呼叫中的尾隨逗號

ECMAScript 2017 功能「函數參數清單和呼叫中的尾隨逗號」由 Jeff Morrison 提出。

10.1 概觀

參數定義中的尾隨逗號現在合法

function foo(
    param1,
    param2,
) {}

類似地,函數呼叫中的尾隨逗號現在也合法

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

10.2 物件文字和陣列文字中的尾隨逗號

物件文字中的尾隨逗號會被忽略

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

陣列文字中的尾隨逗號也會被忽略

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

這有什麼用?有兩個好處。

首先,重新排列項目更簡單,因為最後一個項目改變位置時,您不必新增和移除逗號。

其次,它有助於版本控制系統追蹤實際變更的內容。例如,從

[
    'foo'
]

變更為

[
    'foo',
    'bar'
]

會導致包含 'foo' 的行和包含 'bar' 的行都被標記為已變更,即使唯一的實際變更是新增後一行。

10.3 功能:允許在參數定義和函數呼叫中使用尾隨逗號

考量到可選和被忽略的尾隨逗號的好處,此功能將它們帶入參數定義和函數呼叫。

例如,下列函數宣告會在 ECMAScript 6 中導致語法錯誤,但現在合法

function foo(
    param1,
    param2,
) {}

類似地,這個 foo() 呼叫現在在語法上合法

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