【ES6复习笔记】Spread 扩展运算符(8)

devtools/2024/12/26 9:28:54/

在现代前端开发中,JavaScript 的扩展运算符(Spread Operator)是一个非常有用的特性,它允许你将数组或对象展开,以便在函数调用、数组拼接、对象复制等场景中更方便地处理数据。扩展运算符spread)也是三个点(…)。它可以将一个数组或对象转换成用逗号分隔的参数序列,用于解包。

一、扩展运算符的基本用法

1. 数组的合并

扩展运算符可以用来合并多个数组,它会将数组中的元素展开,然后拼接在一起。

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1,...arr2];
console.log(arr3); // 输出: [1, 2, 3, 4, 5, 6]
2. 数组的克隆

扩展运算符可以用来克隆一个数组,它会创建一个新的数组,并将原数组的元素复制到新数组中。

const arr1 = [1, 2, 3];
const arr2 = [...arr1];
console.log(arr2); // 输出: [1, 2, 3]
3. 将伪数组转为真正的数组

在 JavaScript 中,document.querySelectorAll 等方法返回的是一个类数组对象(NodeList),而不是真正的数组。使用扩展运算符可以将这些伪数组转换为真正的数组,以便使用数组的方法。

const divs = document.querySelectorAll('div');
const divArr = [...divs];
console.log(divArr); // 输出: 包含所有 div 元素的数组
4.数组解包
let tfboys = ['德玛西亚之力', '德玛西亚之翼', '德玛西亚皇子'];
function fn() {console.log(arguments);
}
fn(...tfboys); // 输出: ['德玛西亚之力', '德玛西亚之翼', '德玛西亚皇子']
5.对象解包
let skillOne = { q: '致命打击' };
let skillTwo = { w: '勇气' };
let skillThree = { e: '审判' };
let skillFour = { r: '德玛西亚正义' };
let gailun = { ...skillOne, ...skillTwo, ...skillThree, ...skillFour };
console.log(gailun); // 输出: { q: '致命打击', w: '勇气', e: '审判', r: '德玛西亚正义' }

二、扩展运算符的高级用法

1. 函数参数的展开

扩展运算符可以用来展开数组,并将其作为函数的参数传递。

function sum(a, b, c) {return a + b + c;
}const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 输出: 6
2. 对象的合并

扩展运算符也可以用来合并对象,它会将对象的属性展开,并合并到一个新的对象中。

const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const obj3 = {...obj1,...obj2 };
console.log(obj3); // 输出: { a: 1, b: 2, c: 3, d: 4 }
3. 对象的克隆

扩展运算符可以用来克隆一个对象,它会创建一个新的对象,并将原对象的属性复制到新对象中。

const obj1 = { a: 1, b: 2 };
const obj2 = {...obj1 };
console.log(obj2); // 输出: { a: 1, b: 2 }

总结

扩展运算符是 JavaScript 中一个非常强大的特性,它可以让你更方便地处理数组和对象。通过使用扩展运算符,你可以避免编写繁琐的循环和条件语句,从而使你的代码更加简洁和易于维护。


http://www.ppmy.cn/devtools/145497.html

相关文章

spring mvcservlet跳转页面没有样式效果

导致该问题的原因很多&#xff0c;这里为解决办法之一 原因 <!-- 配置视图解析器 --> <bean class"org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name"prefix" value"/jsp/"/> <pro…

跨国企业组网方案——SD-WAN的优势和应用详解

随着全球化的深入发展&#xff0c;企业在海外设立分支机构已成为普遍现象。然而&#xff0c;如何在全球范围内实现稳定、安全的网络互联却是一大挑战。SD-WAN的出现&#xff0c;为跨国企业带来了全新的组网解决方案&#xff0c;本文将详细介绍跨国企业搭建SD-WAN组网后的优势和…

WebChat——一个开源的聊天应用

Web Chat 是开源的聊天系统&#xff0c;支持一键免费部署私人Chat网页的应用程序。 开源地址&#xff1a;https://github.com/loks666/webchat 目录树 TOC ??? 开始使用 & 交流?? 开箱即用 [这里是代码001] 使用 Docker 部署[这里是代码002] 使用 Docker-compose …

信管通低代码信息管理系统应用平台

目前&#xff0c;国家统一要求事业单位的电脑都要进行国产化替代&#xff0c;替代后使用的操作系统都是基于linux的&#xff0c;所有以前在WINDOWS下运行的系统都不能使用了&#xff0c;再者&#xff0c;各单位的软件都很零散&#xff0c;没有统一起来。需要把日常办公相关的软…

MLU运行Stable Diffusion WebUI Forge【flux】

文章目录 一、平台环境准备二、代码下载三、基础环境准备3.1 支援whl包 四、代码修改4.2 组件下载 六、运行效果 FLUX模型是由Black Forest Labs推出的一款文本生成图像的AI模型&#xff0c;具有120亿参数&#xff0c;显著提升了图像生成的质量和多样性‌。FLUX模型包含三个版本…

3.基于 Temporal 的 Couchbase 动态 SQL 执行场景

在使用 Temporal 和 Go 语言 调用 Couchbase 执行 SQL 脚本时&#xff0c;可以通过动态参数传递到 SQL 脚本中&#xff0c;以下是完整实现的指南&#xff1a; 1. Temporal Workflow 的参数传递 Temporal 的 Workflow 支持接收动态参数&#xff0c;将这些参数传递给执行 SQL 的…

【动态规划】按摩师

题目链接&#xff1a; 面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 1、状态表示 用两个dp表&#xff0c;分别表示到当前位置接受预约和不接受预约 f[i]&#xff1a;表示到 i 位置&#xff0c;接受预约的最优预约集合 g[i]&#xff1a;表示到 i 位置&…

Highcharts 饼图:数据可视化利器

Highcharts 饼图&#xff1a;数据可视化利器 引言 在数据可视化的领域中&#xff0c;饼图作为一种经典且直观的图表类型&#xff0c;被广泛应用于各种行业和场景中。Highcharts&#xff0c;作为一个功能强大且易于使用的JavaScript图表库&#xff0c;为我们提供了创建交互式和…