求解释一下原因 特别是c
var [a,b,...c] = ['a']
//c是不定参数,b是默认参数(undefined)
console.log(a); //a
console.log(b); //undefined 解构不成功就是undefined
console.log(c); //[] 不定参数解构不成功是空数组[],它永远不可能为undefined
数组解构对默认参数和不定参数的规则不同
let [x,y, ...c] = ['a']
等于
let x, y, c = ..c
['a'].forEach(function (item, index, array) {
if (index === 1) {
x = array[index]
}
if (index === 2) {
y = array[index]
}
if (index === 3) {
c = array[index]
}
})
// 因为只有一个值,所以就x的变化了,而y和c没有变
// 循环里面是瞎扯的,但大概是这个原理
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
首先在 ES6 中,
...
本身就是有结构对象的作用.所以对于解构赋值,元素一一对应的关系,题目就分解成了