Rumah >hujung hadapan web >tutorial js >Mengapa Pemusnahan Tatasusunan ES6 tanpa Titik Titik Menunjukkan Tingkah Laku Tidak Teratur?
Ketaksekataan Pemusnahan Tatasusunan ES6
Anomali menarik berlaku apabila menggunakan pemusnahan tatasusunan ES6 seperti yang ditunjukkan dalam coretan kod berikut:
<code class="javascript">let a, b, c; [a, b] = ['A', 'B']; [b, c] = ['BB', 'C']; console.log(`a=${a} b=${b} c=${c}`);</code>
Dijangka: a=A b=BB c=C
Sebenar: a=BB b=C c=undefined
Analisis:
Punca utama terletak pada ketiadaan koma bertitik, yang didayakan oleh ciri penyisipan koma bertitik automatik (ASI) dalam JavaScript. Walau bagaimanapun, dalam kes khusus ini, ASI tidak memasukkan koma bertitik mengikut cara yang dijangkakan.
Kod ini secara logik dibedah seperti berikut:
<code class="javascript">let a = undefined, b = undefined, c = undefined; [a, b] = (['A', 'B'] [(b, c)] = ['BB', 'C']); console.log(`a=${a} b=${b} c=${c}`);</code>
Resolusi :
Untuk memintas keanehan ini, adalah penting untuk menambah titik bertitik secara eksplisit pada permulaan setiap baris yang bermula dengan (, [, /, , -, atau `. Pendekatan ini memastikan pemisahan pernyataan yang betul dan menghapuskan tingkah laku yang tidak dijangka.
Atas ialah kandungan terperinci Mengapa Pemusnahan Tatasusunan ES6 tanpa Titik Titik Menunjukkan Tingkah Laku Tidak Teratur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!