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 是将多个元素/属性组合成一个数组/对象。
相关推荐
前进的李工4 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
蒸蒸yyyyzwd6 小时前
后端学习笔记三个知识
笔记·八股
Zhao-Jichao8 小时前
AI Prompting for Everyone 课程笔记 - P19 数据分析 Data Analysis
人工智能·笔记·数据分析
旖旎夜光8 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
ACP广源盛139246256739 小时前
选型笔记:Type‑C 扩展坞方案评估|DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP
笔记·硬件架构·硬件工程·视频·国产芯片
李长渊哦10 小时前
Qoder 自定义子智能体(Subagent)学习笔记
chrome·笔记·学习
pixelpilot10 小时前
Deta Surf:把笔记、文件和网页塞进同一个 AI 工作台
笔记·其他
蒸蒸yyyyzwd11 小时前
学习笔记 复盘
笔记·八股
旖旎夜光11 小时前
【C++ 基础入门】命名空间、输入输出、缺省参数与函数重载
开发语言·c++·笔记·学习
一支蜉蝣14 小时前
Day26 XD安全学习笔记--PHP 应用&模版引用&Smarty渲染&MVC 模型&数据联动&RCE 安全
笔记·网络安全·html·php