ES6 陣列解構:理解意外行為
在ES6 中,陣列解構允許我們從陣列中提取特定元素並將它們分配給變數。但是,當忽略某些語法規則時,可能會出現意外行為。考慮以下程式碼:
1 2 3 4 | <code class = "js" >let a, b, c;
[a, b] = [ 'A' , 'B' ];
[b, c] = [ 'BB' , 'C' ];
console.log(`a=${a} b=${b} c=${c}`);</code>
|
登入後複製
預期結果:
實際結果:
解釋:
正如問題中所指出的,行之間缺少分號會導致這種意外的行為。如果沒有明確的分號,代碼將被解釋為單一語句:
1 2 3 4 | <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>
|
登入後複製
此細分解釋了不尋常的結果:
-
[a, b ] = ([' A', 'B'] 將a 設定為未定義,將b 設定為B。
-
[(b, c)] = ['BB', 'C'] 包裝將陣列賦值給賦值表達式內的b 和c,使其計算為陣列。的屬性參考。後果,它在以括號、方括號、除法運算子、加法運算子、減法運算子或反引號開頭的語句後顯式添加分號至關重要(對於標記模板)通過遵循此規則,我們確保將每一行視為單獨的語句,防止意外評估和錯誤結果。
以上是為什麼我的 ES6 陣列解構會導致意外行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!