【发布时间】:2016-06-27 09:23:16
【问题描述】:
谁能解释一下,为什么 ES6 数组解构会发生以下情况?
let a, b, c
[a, b] = ['A', 'B']
[b, c] = ['BB', 'C']
console.log(`a=${a} b=${b} c=${c}`)
// expected: a=A b=BB c=C
// actual: a=BB b=C c=undefined
【问题讨论】:
-
在每一行后面加上
; -
是的,经过测试,@PranavCBalan 的评论有效
-
这就是为什么 ASI 是一个错误特征。
-
没错,@PranavCBalan 的解决方案有效。哇,对我来说,这是分号在 js 代码中真正重要的第一种情况。我更喜欢无分号代码以获得更简洁的语法,但也许我必须开始使用它们。谁能解释一下,为什么在这种情况下真的需要分号?
-
@ronkot 几乎任何时候你用数组索引器或括号开始一行你都会遇到问题 (Example)。大多数喜欢半冒号的开发人员都以
;开头,以解决与 ASI 相关的问题。