ES6 陣列解構:不可預見的行為
在ES6 中,陣列的解構賦值可能會導致意外結果,讓程式設計師感到困惑。下面的程式碼說明了一個這樣的實例:
<code class="js">let a, b, c [a, b] = ['A', 'B'] [b, c] = ['BB', 'C'] console.log(`a=${a} b=${b} c=${c}`)</code>
預期輸出:
a=A b=BB c=C
實際輸出:
a=BB b=C c=undefined
解釋:
與預期相反,此程式碼不會產生所需的輸出。相反,它交換 b 和 c 的值,使 c 未定義。要理解為什麼會發生這種情況,我們需要仔細檢查程式碼。
解析與評估:
在 JavaScript 中,分號是可選的分隔語句。如果沒有明確的分號,程式碼將被解析為單一語句:
<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>
語句細分:
以上是ES6 陣列解構:為什麼它沒有如預期般運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!