Bagaimana untuk membezakan antara operator spread dan operator baki dalam JavaScript?
P粉022501495
P粉022501495 2023-09-04 11:25:07
0
2
504
<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粉022501495
P粉022501495

membalas semua(2)
P粉545910687

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.

P粉549412038

... 不是一个运算符。它是主要的语法,就像在 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).

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan