Javascript笔记 rest VS spread

1 rest

2 spread

3 二者区别

在 JavaScript 中,spread 操作符 ...rest 参数都使用三个点 ... 作为前缀,但它们在使用上有一些区别,主要体现在它们的作用和使用场景上。

Spread 操作符 ...

作用: "展开"数组或对象的元素/属性。

使用场景:

数组: 可以在创建数组时将一个数组(或数组的一部分)插入到另一个数组中。

javascript 复制代码
let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5];  // [1, 2, 3, 4, 5]

函数调用: 可以将数组的元素展开作为函数参数传入。

javascript 复制代码
function myFunc(a, b, c) {
  return a + b + c;
}
let nums = [1, 2, 3];
console.log(myFunc(...nums));  // 6

对象: 可以在创建对象时将另一个对象的属性插入到对象中。

javascript 复制代码
let obj1 = { a: 1, b: 2 };
let obj2 = { ...obj1, c: 3 };  // { a: 1, b: 2, c: 3 }

Rest 参数 ...

作用: 将函数参数(或数组的一部分)"组合"成一个数组。

使用场景:

  • 函数参数: 可以将多个参数组合成一个数组。通常用于获取函数的所有参数。
javascript 复制代码
function myFunc(...args) {
  // args 是一个数组
  console.log(args);
}
myFunc(1, 2, 3);  // 输出: [1, 2, 3]

总结一下:

  • Spread 是将数组/对象的元素/属性展开。
  • Rest 是将多个元素/属性组合成一个数组/对象。
相关推荐
yaocheng的ai分身13 分钟前
停止过度思考 Obsidian:一份真正有效的初学者指南
笔记
搞机械的假程序猿1 小时前
普中51单片机学习笔记-矩阵按键
笔记·学习·51单片机
喂自己代言4 小时前
心理健康与生活质量
笔记
不夜牛仔5 小时前
算法笔记17 - 贪心算法介绍与思路 | 路灯摆放问题 | 活动安排问题 | 最低字典序拼接 | 金条分割问题 | 项目投资问题
笔记·算法·贪心算法
大邳草民5 小时前
深入理解 Python 的属性化方法
开发语言·笔记·python
degen_5 小时前
BDS 执行平台相关动作
c语言·笔记·bios
寅双木5 小时前
自己配一台电脑——CPU的命名方式
笔记·core·intel·cpu命名方式·酷睿·锐龙·ryzen
谅望者7 小时前
数据分析笔记04:抽样方法与抽样分布
数据库·笔记·数据挖掘·数据分析
d111111111d8 小时前
STM32外设学习-串口数据包笔记-(数据包的了解)
笔记·stm32·单片机·嵌入式硬件·学习
立志成为大牛的小牛10 小时前
数据结构——四十二、二叉排序树(王道408)
数据结构·笔记·程序人生·考研·算法