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>
解决方案:
要绕过这个特性,在以 (、[、/、、- 或 ` 开头的每一行的开头显式添加分号至关重要。这种方法可确保语句的正确分隔并消除意外行为。
以上是为什么不使用分号的 ES6 数组解构会表现出不规则行为?的详细内容。更多信息请关注PHP中文网其他相关文章!