Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk membezakan antara operator spread dan operator baki dalam JavaScript?

<p>Sintaks adalah sama, jadi bagaimanakah JavaScript membezakan antara kedua-duanya di bawah hud? </p> <p>Adakah ia dinilai berdasarkan jenis data pembolehubah yang dikendalikan? Atau adakah ia berdasarkan tempat pembolehubah digunakan? Atau tidak? </p>
P粉022501495P粉022501495412 hari yang lalu457

membalas semua(2)saya akan balas

  • P粉545910687

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

    Penghuraikan JavaScript menentukan ini dengan menganalisis konteks tatabahasa di mana tiga titik itu muncul.

    Ia akan mempertimbangkan sama ada 3 titik ini digunakan dengan literal tatasusunan, panggilan fungsi atau parameter fungsi.

    Untuk pengendali penyebaran: Apabila 3 titik digunakan dalam literal tatasusunan dan panggilan fungsi, ia dianggap sebagai pengendali penyebaran.

    Untuk Operator Parameter Baki: Apabila 3 titik digunakan dalam parameter definisi fungsi, ia dianggap sebagai pengendali parameter yang tinggal.

    balas
    0
  • P粉549412038

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

    ... 不是一个运算符。它是主要的语法,就像在 for 语句中的 () 一样(它们是 for sebahagian daripada sintaks, bukan contoh pengendali kumpulan). Operator tidak berfungsi seperti sintaks spread dan rest.

    Penghuraikan mengetahui yang mana satu yang anda gunakan kerana kedudukan yang anda gunakan, kerana hanya satu daripada setiap kedudukan yang sah dan satu lagi tidak. Contohnya:

    // 1
    const [first, ...rest] = someArray;
    // 2
    const { a, ...others } = someObject;
    // 3
    function example(p1, ...others) {
        // ...
    }

    ...jelas bahawa anda menggunakan sintaks rehat dalam kedua-dua kes, kerana ia digunakan dalam mod pemusnahan (1 dan 2) dan dalam senarai argumen (3).

    Dan untuk:

    // 1
    const x = [...someIterable];
    // 2
    const o = { ...someObject };
    // 3
    example(...someIterable);

    ...ini jelas pengembangan, bukan baki, kerana anda menggunakannya dalam literal tatasusunan (1), literal objek (2), dan senarai parameter panggilan fungsi (3).

    balas
    0
  • Batalbalas