首頁  >  文章  >  web前端  >  為什麼不使用分號的 ES6 陣列解構會表現出不規則行為?

為什麼不使用分號的 ES6 陣列解構會表現出不規則行為?

DDD
DDD原創
2024-10-24 06:23:30484瀏覽

Why Does ES6 Array Destructuring with No Semicolons Exhibit Irregular Behavior?

ES6 陣列解構不規則

使用ES6 陣列解構時會出現一個有趣的異常,如以下程式碼片段所示:

使用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

分析:

根本原因在於缺少分號,這是由JavaScript 中的自動分號插入(ASI)功能啟用的。然而,在這種特定情況下,ASI 不會以人們期望的方式插入分號。

程式碼邏輯剖析如下:
<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>
  • [a, b] =……;是傳統的解構賦值。
  • (…) = ['BB', 'C'] 是計算結果為陣列的賦值表達式。
  • ['A', 'B'] […] 是數組文字上的屬性參考。
  • (b, c) 使用逗號運算符,得到 c(未定義)。

解:

要繞過這個特性,在以(、[、/、、- 或` 開頭的每一行的開頭顯式增加分號至關重要。

以上是為什麼不使用分號的 ES6 陣列解構會表現出不規則行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:NodeJS 簡介下一篇:NodeJS 簡介