Anomali Pemusnahan Tatasusunan ES6: Mengapa Titik Titik Penting?

Linda Hamilton
Lepaskan: 2024-10-24 06:04:02
asal
433 orang telah melayarinya

ES6 Array Destructuring Anomaly: Why Are Semicolons Important?

Anomali Pemusnahan Tatasusunan ES6

Dalam ES6, pemusnahan tatasusunan membolehkan penyerahan elemen tatasusunan kepada pembolehubah dengan mudah. Walau bagaimanapun, tingkah laku yang tidak dijangka berlaku apabila memusnahkan tanpa menggunakan koma bertitik yang betul.

Pertimbangkan 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 Jangkaan:

  • a=A b =BB c=C

Output Sebenar:

  • a=BB b=C c=undefined

Penjelasan

Tingkah laku yang tidak dijangka timbul daripada ketiadaan koma bertitik di antara dua pernyataan yang memusnahkan. Dalam ES6, koma bertitik tidak dimasukkan secara automatik. Oleh itu, kod tersebut dihuraikan sebagai satu pernyataan besar:

<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

Dalam pernyataan ini, pengendali koma menilai hingga ungkapan terakhir dalam kurungan, iaitu penugasan tatasusunan ['BB', 'C '] ke sebelah kiri (b, c). Akibatnya, b menerima 'BB' dan c menerima 'C'.

Walau bagaimanapun, tugasan pemusnah kedua ditugaskan secara tidak betul kepada tatasusunan kosong literal ([]) dan bukannya tatasusunan ['BB', ' C']. Ini kerana literal tatasusunan disertakan dalam kurungan tanpa koma bertitik pada permulaan baris.

Untuk menyelesaikan isu ini, gunakan koma bertitik untuk memisahkan tugasan individu:

<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

Dengan penggunaan koma bertitik yang betul, output yang dijangkakan diperoleh.

Atas ialah kandungan terperinci Anomali Pemusnahan Tatasusunan ES6: Mengapa Titik Titik Penting?. 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!