Rumah >hujung hadapan web >tutorial js >Anomali Pemusnahan Tatasusunan ES6: Mengapa Titik Titik Penting?
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>
Output Jangkaan:
Output Sebenar:
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>
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>
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!