es6 中的 ... 扩展运算符是 将数组展开[1,2,3] 展开为 1,2,3 那这个1,2,3是什么呢? 数组不是数组 ,字符串不是字符串后来对象的操作上也有了 ...运算符叫做解构赋值?let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };将 目标对象 的 属性 ,全部分配到指定对象上?让 目标对象有了 这个对象属性值?
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
看东西的时候要随手敲一下,...arr这么单独的用是不对的。
1. 数组...扩展运算符
function demo (a, b) {
console.log(a, b)
}
demo(...[1, 2])// 1 2
demo([1, 2]) //[1, 2] undefined
// 就是个展开的作用,不然你要写demo(arr[0], arr[1])
// 属于语法糖,简化代码的
2. 什么是解构赋值
相信这个你应该是理解的
let {a: a, b: b} = {a: 1, b: 2}
a // 1
b // 2
// 使用简洁表示法简写为{a, b} = {a: 1, b: 2}
// 那么解构赋值就是按照这种对应关系,去赋值变量
3. 解构赋值和对象的扩展运算符
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }
// x和y同上就不必说了
// 后面也就是展开的...z对应a:3, b:4
// 那么没展开的z不就是`{a: 3, b: 4}`了吗
4. 如果你在看es6入门这本书的话,一定要敲代码,同时,书中后面的例子会用到前面的东西,不要分割的去思考。
添加回答
举报
0/150
提交
取消