Rumah >hujung hadapan web >tutorial js >Pemusnahan Array ES6: Mengapa Ia Tidak Berfungsi Seperti Yang Dijangkakan?
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>
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>
Pecahan Pernyataan:
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!