es6 的扩展运算符的理解是怎么样的?

es6 中的 ... 扩展运算符是 将数组展开

[1,2,3] 展开为 1,2,3 那这个1,2,3是什么呢? 数组不是数组 ,字符串不是字符串

后来对象的操作上也有了 ...运算符
叫做解构赋值?
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
将 目标对象 的 属性 ,全部分配到指定对象上?
让 目标对象有了 这个对象属性值?

阅读 2.2k
1 个回答

看东西的时候要随手敲一下,...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入门这本书的话,一定要敲代码,同时,书中后面的例子会用到前面的东西,不要分割的去思考。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题