const arr = [1,2,3,4]
let obj = {
a: '',
b: '',
c: ''
}
[obj.a, obj.b] = arr
console.log(obj)
报错,怎么写才是正确的
const arr = [1,2,3,4]
let obj = {
a: '',
b: '',
c: ''
}
[obj.a, obj.b] = arr
console.log(obj)
报错,怎么写才是正确的
首先需要明白的是分号在JavaScript中什么时候是必须的,只有一种情况是必须的,那就是当两条语句在同一行的时候
。
然后再来看下示例代码,示例代码在JavaScript进行解析的时候等价于如下代码:
const arr = [1,2,3,4]
let obj = {
a: '',
b: '',
c: ''
}[obj.a, obj.b] = arr
console.log(obj)
let
赋值语句与结构赋值语句在同一行了,那这个时候就是需要分号的。
10 回答11k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
javascript 的语句必须以
;
结束。但是程序里经常可以不写;
,因为存在 automatic semicolon insertion ,可以自动插入;
。但是
;
不会随地插入,也不是每行结束的地方都会插入。看自动插入;
的规则,大概是只要语法上还能解释下去,就不会插入。在上面的位置,就不会插入;
。然后上面的程序却需要这个;
语义上才是正确的。所以必须显式地写上这个;
。