在 ES6 中,數組解構提供了一種從數組中提取和賦值的簡潔語法。但是,某些構造可能會導致意外結果。
提供的程式碼片段提出了一個問題:
為什麼此程式碼在陣列解構後會導致意外值?
<code class="javascript">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
答案:
問題在於省略了分號,分號通常會將這些行分隔為不同的語句。如果沒有分號,程式碼將被解析為單一語句並以不同的順序進行計算:
<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>
為了避免此類誤解並確保正確評估,必須在以 (、[、/、、- 或 `.
開頭的每一行的開頭明確包含分號以上是為什麼 ES6 中數組解構會導致意外值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!