ホームページ  >  に質問  >  本文

JavaScript でスプレッド演算子と剰余演算子を区別するにはどうすればよいですか?

<p>構文は同じですが、JavaScript は内部的にこの 2 つをどのように区別するのでしょうか? </p> <p>演算対象の変数のデータ型で判断するのでしょうか?それとも、変数が使用される場所に基づいていますか?それともどちらでもないですか? </p>
P粉022501495P粉022501495412日前454

全員に返信(2)返信します

  • P粉545910687

    P粉5459106872023-09-05 10:12:18

    JavaScript パーサーは、3 つのドットが表示される文法コンテキストを分析することによってこれを判断します。

    これらの 3 つのポイントが配列リテラル、関数呼び出し、関数パラメーターのいずれで使用されるかを考慮します。

    スプレッド演算子について : 配列リテラルおよび関数呼び出しで 3 つのドットが使用されている場合、それはスプレッド演算子とみなされます。

    残りのパラメータ演算子の場合: 関数定義のパラメータで 3 つのドットが使用されている場合、それは残りのパラメータ演算子とみなされます。

    返事
    0
  • P粉549412038

    P粉5494120382023-09-05 09:23:13

    ... は演算子 ではありません。これは、for ステートメントの () と同様に、主要な構文です (これらは、グループ化演算子のインスタンスではなく、for 構文の一部です)。演算子は、spread およびrest 構文のようには機能しません。

    各位置のうち 1 つだけが有効で、もう 1 つは無効であるため、パーサーは、使用している位置によって、どちらを使用しているかを認識します。例えば:### リーリー

    ...剰余構文は構造化パターン (1 と 2) と引数リスト (3) で使用されているため、どちらの場合でも剰余構文を使用していることは明らかです。

    そして次の場合:

    リーリー

    ...配列リテラル (1)、オブジェクト リテラル (2)、および関数呼び出しのパラメーター リスト (3) で使用するため、これは明らかに剰余ではなく拡張です。

    返事
    0
  • キャンセル返事