Site Overlay

ECMAScript-末尾のカンマ

X

プライバシー&クッキー

このサイトはクッキーを使用しています。 継続することにより、あなたはそれらの使用に同意します。 Cookieの制御方法など、詳細についてはこちらをご覧ください。

広告

JavaScriptでは、最初から配列リテラルの末尾のカンマが許可されていました。 他の場所の末尾のカンマは、ECMAScriptの後の版で追加されました。

末尾のカンマは、最後のカンマとも呼ばれます。

JavaScriptコードに新しいパラメータやプロパティを追加するときに使用できます。 新しいプロパティを追加する場合は、その行がすでに末尾のコンマを使用している場合、前の最後の行を変更せずに新しい行を追加するだけです。 これにより、バージョン管理の差分がきれいになり、コードの編集が面倒になることはありません。

配列、オブジェクトリテラル、関数パラメータでは、末尾のカンマを使用できます。 ただし、JSONでは末尾のカンマは許可されません。

配列リテラルの末尾のカンマ

JavaScriptでは、配列の末尾のカンマを使用できます。

複数の末尾のコンマが使用されている場合は、省略(または穴)が生成されます。 穴のある配列はスパースと呼ばれます(密な配列には穴がありません)。 たとえば配列をArrayで反復する場合。プロトタイプ。forEach()または配列。プロトタイプ。map()、配列の穴はスキップされます。

ただし、配列内の最後のカンマは無視されます。

オブジェクトリテラル

末尾のコンマは、ECMAScript5版のオブジェクトリテラルでサポートされています。

関数内の末尾のカンマ

ECMAScript2017では、関数パラメータリスト内の末尾のカンマを使用できます。

末尾のカンマでは、関数定義と関数呼び出しが許可されます。 末尾のコンマは、関数宣言またはその引数オブジェクトのlengthプロパティには影響しません。

カンマ付きの関数パラメータのみが無効であり、SyntaxErrorがスローされます。

Internet Explorerのサポートはどうですか?

Internet Explorerをサポートするためにbabelを使用してスクリプトをネイティブJavaScriptに変換している場合。 互換性について心配する必要はありません。

バベルはIEをサポートするために末尾のカンマでスクリプトを変換します。

例:パッケージのビルド中にカンマを削除します。

左側:私たちのECMAScriptコード

右側:babelによって生成された同等のコード

は、バージョン管理の差分をきれいにし、コードを編集するのは面倒ではないかもしれま

以下のサンプルをチェックして、2つの配列にリストへのエントリを追加しようとしています。

一つは末尾のカンマを持ち、他はそうではありません。 末尾にコンマがある配列にエントリを追加すると、GIT diffはきれいに見えます。 それがこのコンセプト全体の主な利点です。

末尾にコンマがある場合、エントリの追加のみが表示されます。

コメントを残す

メールアドレスが公開されることはありません。