Pemusnahan Array ES6: Mengapa Ia Tidak Berfungsi Seperti Yang Dijangkakan?

Susan Sarandon
Lepaskan: 2024-10-24 06:10:02
asal
796 orang telah melayarinya

ES6 Array Destructuring: Why Doesn't It Work As Expected?

Pemusnahan Tatasusunan ES6: Gelagat Tidak Dijangka

Dalam ES6, memusnahkan tugasan untuk tatasusunan boleh membawa kepada hasil yang tidak dijangka, menyebabkan pengaturcara berasa hairan. Satu contoh sedemikian diilustrasikan oleh kod berikut:

<code class="js">let a, b, c
[a, b] = ['A', 'B']
[b, c] = ['BB', 'C']
console.log(`a=${a} b=${b} c=${c}`)</code>
Salin selepas log masuk

Output yang Dimaksudkan:
a=A b=BB c=C

Sebenar Output:
a=BB b=C c=undefined

Penjelasan:

Bertentangan dengan jangkaan, kod ini tidak menghasilkan output yang diingini. Sebaliknya, ia menukar nilai b dan c, meninggalkan c tidak ditentukan. Untuk memahami sebab ini berlaku, kita perlu meneliti kod dengan teliti.

Penghuraian dan Penilaian:

Dalam JavaScript, koma bertitik adalah pilihan untuk mengehadkan pernyataan. Tanpa koma bernoktah eksplisit, kod dihuraikan sebagai satu pernyataan:

<code class="js">let a = undefined, b = undefined, c = undefined;
[a, b] = (['A', 'B']
[(b, c)] = ['BB', 'C']);
console.log(`a=${a} b=${b} c=${c}`);</code>
Salin selepas log masuk

Pecahan Pernyataan:

  • [a, b] = ([ 'A', 'B'] ialah tugasan yang memusnahkan, serupa dengan tugasan dalam kod asal.
  • [(b, c)] = ['BB', 'C'] ialah ungkapan tugasan yang memperuntukkan tatasusunan ['BB', 'C'] kepada operan sebelah kiri Ungkapan ini menilai kepada tatasusunan yang sama.
  • ['A', 'B'][…] ialah rujukan sifat pada. literal tatasusunan, yang menilai kepada tidak ditentukan.
  • (b, c) menggunakan operator koma, yang menilai kepada operan terakhir (c), yang tidak ditentukan.

Implikasi:

Oleh itu, kod menetapkan undefined kepada kedua-dua a dan c, manakala b menerima nilai 'C' dengan betul untuk mengelakkan tingkah laku ini, pengaturcara harus menggunakan koma bertitik atau memulakan setiap baris dengan betul pengendali yang memerlukan koma bertitik untuk dimasukkan secara automatik (cth., (, [, /, , -, atau `).

Pemahaman ini memastikan tugasan yang memusnahkan dalam ES6 beroperasi seperti yang dijangkakan, menghalang pertukaran nilai yang tidak dijangka dan tugasan yang tidak ditentukan .

Atas ialah kandungan terperinci Pemusnahan Array ES6: Mengapa Ia Tidak Berfungsi Seperti Yang Dijangkakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!