当前位置:网站首页 > 技术博客 > 正文

es6 新增的特性



这是我参与更文挑战的第 13 天,活动详情查看: 更文挑战

扩展操作符(...)可在函数调用/数组构造时, 将数组表达式或者string在语法层面展开; 还以在构造对象时, 将对象表达式按key-value的方式展开;

1. 数组

1.1 构造数组 没有扩展运算符的时候,只能组合使用 push,splice,concat 等方法,将已有数组元素变成新数组的一部分。 有了扩展运算符, 构造新数组会变得更简单、更优雅: 扩展运算符(spread)就是我们知道的三个点(...),它就好像 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

 
  

1.2 数组拷贝 展开语法和 Object.assign() 行为一致, 执行的都是浅拷贝

 
  

1.3 合并数组 本质:将一个数组转为用逗号分隔的参数序列,然后置于数组中

 
  

2. 对象

扩展运算符(...)用于取出 参数对象 所有 可遍历属性 然后拷贝到当前对象。 2.1 克隆对象 当 String,Number,Boolean 时,属于深拷贝; 当 Object,Array时,属于浅拷贝;

 
  

2.2 合并对象

 
  

注意: 自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉; 自定义的属性在拓展运算度前面,则自定义的属性将被覆盖掉;

 
  

扩展运算符后面是空对象、null、undefined,没有任何效果也不会报错。

 
  

3. 函数

函数调用中,扩展运算符(...)将一个数组,变为参数序列

 
  

扩展运算符与的函数参数可以结合使用,非常灵活:

 
  

4. 在 react 中的运用

通常我们在封装一个组件时,会对外公开一些 props 用于实现功能,大部分情况下在外部使用都应显示的传递 props , 但是当传递大量的props时,会非常繁琐,这时我们可以使用 ...(扩展操作符,用于取出参数对象的所有可遍历属性) 来进行传递。

之前的写法:

 
  

使用 ... ,等同于上面的写法

 
  

配合解构赋值避免传入一些不需要的参数

 
  

                            

  • 上一篇: 系统管理
  • 下一篇: c语言里面的数据类型
  • 版权声明


    相关文章:

  • 系统管理2025-09-21 14:01:04
  • oracle 视图 rowid2025-09-21 14:01:04
  • 线程间通信机制2025-09-21 14:01:04
  • map键值对可以为null2025-09-21 14:01:04
  • mysql触发器怎么用2025-09-21 14:01:04
  • c语言里面的数据类型2025-09-21 14:01:04
  • clr 错误2025-09-21 14:01:04
  • 双硬盘分别安装ubuntu和win102025-09-21 14:01:04
  • 0-1背包问题动态规划算法思想2025-09-21 14:01:04
  • fstab uuid挂载2025-09-21 14:01:04