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 是将多个元素/属性组合成一个数组/对象。
相关推荐
爱看大明王朝15664 小时前
磁件学习-磁性元器件的极限计算
笔记·学习
问心无愧05134 小时前
ctf show web入门 40
笔记
@蓝莓果粒茶6 小时前
【Unity笔记】保姆级AssetBundle详解(含代码+避坑指南)
笔记·游戏·unity
kobesdu7 小时前
【ROS2实战笔记-20】ROS2 bag 录播与时间模拟:从基础操作到高级调试技巧
笔记·机器人·ros·ros2
kobesdu8 小时前
【ROS2实战笔记-18】ROS2 通信的隐秘控制:DDS 配置参数如何决定系统性能
网络·人工智能·笔记·机器人·开源·ros·人形机器人
nnsix9 小时前
Unity 动画 Avatar 笔记
笔记·unity·游戏引擎
中草药z11 小时前
【测试基础】Python 核心语法,一篇搞定测试脚本开发基础
开发语言·笔记·python·学习·测试·语法
一口吃俩胖子11 小时前
【脉宽调制DCDC功率变换学习笔记020】频域性能准则
笔记·学习
被考核重击12 小时前
WASM学习笔记
笔记·学习·wasm
三品吉他手会点灯13 小时前
C语言学习笔记 - 27.C编程预备计算机专业知识 - 什么是字节
c语言·开发语言·笔记·学习