跳到主要內容

JavaScript 的 Trailing commas 規格

Trailing commas 在現在可能也還是個不少人不清楚的規格
更早期時這會引起 Syntax Error,而後也不是在開發上有重大影響的規格
所以少看到人介紹也是很正常的事

在 ES5.1 的時期加入了對 Array 跟 Object 的支援
在ES2017中更是讓 Function 也能這樣用
那麼這個規格的特殊在哪邊呢?
如果我們只是用單行來表示陣列或物件,這個規格是沒有什麼效益
但是多行的狀況下,在版控軟體例如Git就有差異了

一個規模略大的專案裡可能會看到用以下的用法

const attributes = [
    attr1,
    attr2,
    attr3,
 ....]

如果不用 trailing comment 的話,當我們新加了陣列成員後,Git上的紀錄會是
...oldAttribute,
   newAttribute

相對的 trailing comment 的紀錄就是
...newAttribute,

版控的紀錄中就不用花一行來記錄前一個屬性加上逗號的變更了

想使用這個規格時須留意目標環境對這個規格的支援程度
JSON並不支援這格式
Scripting engine 也不是全面都支援,例如 Java 的 Nashorn 也一定會噴 SyntaxError
另外當然還有瀏覽器的支援程度

這個規格我認為實質上倚賴開發團隊的整體規範
例如 Airbnb 的 code style 規範是強烈要求一定要遵守
也有可能會在某些其他的公司看到完全不用 trailing comment 的 code style 規範
就我個人來說是不喜歡加入原本根本就不需要加的東西
版控軟體紀錄上在這狀況多個一行也不算困擾
請以團隊意見再來考慮需不需要採用 trailing comment 吧

留言