JavaScript パーサーは、3 つのドットが表示される文法コンテキストを分析することによってこれを判斷します。
これらの 3 つのポイントが配列リテラル、関數(shù)呼び出し、関數(shù)パラメーターのいずれで使用されるかを考慮します。
スプレッド演算子について : 配列リテラルおよび関數(shù)呼び出しで 3 つのドットが使用されている場合、それはスプレッド演算子とみなされます。
殘りのパラメータ演算子の場合: 関數(shù)定義のパラメータで 3 つのドットが使用されている場合、それは殘りのパラメータ演算子とみなされます。
...
は演算子 ではありません。これは、for
ステートメントの ()
と同様に、主要な構(gòu)文です (これらは、グループ化演算子のインスタンスではなく、for
構(gòu)文の一部です)。演算子は、spread およびrest 構(gòu)文のようには機能しません。
各位置のうち 1 つだけが有効で、もう 1 つは無効であるため、パーサーは、使用している位置によって、どちらを使用しているかを認(rèn)識します。例えば:### リーリー
...剰余構(gòu)文は構(gòu)造化パターン (1 と 2) と引數(shù)リスト (3) で使用されているため、どちらの場合でも剰余構(gòu)文を使用していることは明らかです。そして次の場合:
リーリー
...配列リテラル (1)、オブジェクト リテラル (2)、および関數(shù)呼び出しのパラメーター リスト (3) で使用するため、これは明らかに剰余ではなく拡張です。