【ES6】—【必备知识】—扩展运算符与rest参数

news2025/1/15 6:27:17

在这里插入图片描述

一、扩展运算符

1. 定义:把数组或类数组展开成用逗号隔开的值

function foo(a,b,c) {
	console.log(a,b,c)
}
let arr = [1,2,3]
foo(...arr)

2. 把两个数组合并

2-1. ES5 实现

let arr1 = [1,2,3]
let arr2 = [4,5,6]
Array.prototype.push.apply(arr1, arr2)
console.log(arr1)
// (6) [1, 2, 3, 4, 5, 6]

2-2 ES6实现

let arr1 = [1,2,3]
let arr2 = [4,5,6]
arr1.push(...arr2)
console.log(arr1)
// (6) [1, 2, 3, 4, 5, 6]

3. 字符串拆分

let str = "xiaoxiao"
var arr = [...str]
console.log(arr)
// (8) ['x', 'i', 'a', 'o', 'x', 'i', 'a', 'o']

二、rest参数

1. 定义:把逗号隔开的值组合成一个数组

2. 数组求和

2-1. ES5方式

function foo () {
	let sum = 0
	// arguments 实际参数的数组
	Array.prototype.forEach.call(arguments, function(item){
		sum += item
	})
	return sum
}
console.log(foo(1, 2))
console.log(foo(1, 2, 3))

2-2. ES6方式— Array.from()

function foo () {
	let sum = 0
	// arguments 实际参数的数组
	Array.from(arguments).forEach(function(item){
		sum += item
	})
	return sum
}
console.log(foo(1, 2))
console.log(foo(1, 2, 3))

2-3. ES6方式— rest参数 - 把参数的合并成数组

function foo(...args) {
	console.log(args)
	let sum = 0 
	args.forEach(function(item) {
		sum += item
	})
	return sum
}
console.log(foo(1,2))
console.log(foo(1,2,3))
// (2) [1, 2]
// 3
// (3) [1, 2, 3]
// 6

3. 把剩余的参数合并成数组

function foo(x, ...args) {
	console.log(x)
	console.log(args)
}
foo(1,2,3)
foo(1,2,3,4)
// 1
// 3 (2) [2, 3]
// 1
// 3 (3) [2, 3, 4]

4. rest 跟解构赋值联合使用

let [x, ...y] = [1, 2, 3]
console.log(x)
console.log(y)
// 1
// (2) [2, 3]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/917034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PHP】文件包含-includerequire

文章目录 文件包含意义:四种形式文件加载原理include和require的区别文件的加载路径文件嵌套包含 文件包含 文件包含:在一个PHP脚本中,去将另外一个文件(PHP)包含进来,去合作完成一件事情。 意义&#xf…

sql递归查询

一、postgresql 递归sql with recursive p as(select t1.* from t_org_test t1 where t1.id2union allselect t2.*from t_org_test t2 join p on t2.parent_idp.id) select id,name,parent_id from p; sql中with xxxx as () 是对一个查询子句做别名,同时数据库会对…

【计算机视觉】递归神经网络在图像超分的应用Deep Recursive Residual Network for Image Super Resolution

DRCN: Deeply-Recursive Convolutional Network for Image Super-Resolution 总结 这篇文章是第一次将之前已有的递归神经网络(Recursive Neural Network)结构应用在图像超分辨率上。为了增加网络的感受野,提高网络性能,引入了深度递归神经网络&#x…

Unity脚本常用生命周期

Unity脚本在Unity引擎运行时会经历多个阶段的变化。如创建,初始化,按帧执行,固定执行,绘制,禁用,销毁等等。具体如下图所示: 我们创建脚本时都是默认继承了MonoBehaviour类,而MonoBe…

【文心一言】如何申请获得体验资格,并简单使用它的强大功能

目录 一、文心一言1.1、它能做什么1.2、技术特点1.3、申请方法 二、功能体验2.1、文心一言2.2、写冒泡排序代码 测试代码2.3、画一个爱心2.4、画一个星空 三、申请和通过3.1、申请时间3.2、通过时间 文心一言,国内首个大型人工智能对话模型,发布已经快一…

直播APP开发,协议盘点(五):实时传输协议RTP

简介: 在直播APP开发的过程中,搭建协议实现相应的功能是开发重点之一,而直播APP开发的协议是繁多且复杂的,所以从前段时间开始,我做了直播开发的协议篇,到今天为止我已经分享了四个协议,下面我为…

3DXML在线查看与转换工具

3DXML 由软件巨头达索系统推出,是 3D 设计和工程中的关键文件格式,提供了封装和共享 3D 数据的系统方法。 为了将简单性与丰富的数据表示相结合,3DXML 在与 STEP 等其他文件格式相比时展现出其独特的优势,特别是在数据丰富性和紧凑…

【已解决】Authenticator:无法添加账户请验证激活代码是否正确以及您的设备是否已为此应用启用推送通知

问题: 小米手机的Authenticator添加微软账户扫描QR码提示:无法添加账户请验证激活代码是否正确以及您的设备是否已为此应用启用推送通知 解决办法: 1、在通知管理中允许Authenticator所有通知。 2、在手机设置-账户与同步里找到谷歌基础服…

基于SSM的bbs聊天论坛java jsp贴吧留言板聊天室mysql源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于SSM的bbs聊天论坛 系统有2权限:前台、…

测试框架pytest教程(3)夹具-@pytest.fixture

内置fixture Fixture使用pytest.fixture装饰,pytest有一些内置的fixture 命令可以查看内置fixture pytest --fixtures fixture范围 在pytest中,夹具(fixtures)具有不同的作用范围(scope),用于…

期刊:Computers in Biology and Medicine

文章目录 MedViT: A Robust Vision Transformer for Generalized Medical Image Classification实验结果 A Lie group kernel learning method for medical image classification MedViT: A Robust Vision Transformer for Generalized Medical Image Classification 数据集划分…

胖小酱之三个坚持

关于坚持的励志语录【一】 1、"不耻最后。"即使慢,驰而不息,纵令落后,纵令失败,但一定可以达到他所向往的目标。--鲁迅 2、不经一翻彻骨寒,怎得梅花扑鼻香。--宋帆 3、不要失去信心,只要坚持不懈…

java八股文面试[数据结构]——Map有哪些子类

知识来源: 【23版面试突击】 用过哪些Map类,都有什么区别,HashMap是线程安全的吗?_哔哩哔哩_bilibili https://www.cnblogs.com/bubbleboom/p/12694013.html

静态代理是什么?为何它如此“强大”?

在软件开发领域,代理模式是一种常见的设计模式,而静态代理是代理模式的一种实现方式。它在许多场景中发挥着重要的作用,并被认为是一种强大的工具。本文将深入探讨静态代理的定义、原理以及它所具备的强大之处,带你一窥其魅力所在…

电子器件系列50:开关二极管BAV99

半导体二极管导通时相当于开关闭合(电路接通),截止时相当于开关打开(电路切断),所以二极管可作开关用,常用型号为1N4148。由于半导体二极管具有单向导电的特性,在正偏压下PN结导通&a…

RH1288V3 - 初识物理服务器

如果你拥有一台物理服务器(不是云服务器) 个人比较推荐你用物理服务器,虽然性能会比云要来的差,但是不用每月交钱上。云服务固然方便,但是几个核的性能和一点存储,想做一个动漫网站固然要很多mp4这种影视资源,云服务器…

Docker容器:docker consul的注册与发现及consul-template守护进程

文章目录 一.docker consul的注册与发现介绍1.什么是服务注册与发现2.什么是consul3.consul提供的一些关键特性4.数据流向 二.consul部署1.consul服务器(192.168.198.12)(1)建立 Consul 服务(2)查看集群信息…

RHCE——六、基于https协议的静态网站

RHCE 一、概念解释1、SSL协议分为两层2、SSL协议提供的服务 二、HTTPS安全通信机制1、图解2、过程 三、使用Apachemod_ssl组件的加密认证网站1、概念2、安装3、配置文件4、ssl配置文件的主要参数 四、实验1、搭建httpsssl的加密认证web服务器2、组建含多子目录的网站 一、概念解…

干货分享:仓库管理系统WMS有哪些功能?

阅读本文,您可以了解:1、仓库管理系统WMS是什么;2、仓库管理系统WMS有哪些功能 一、仓库管理系统WMS是什么 仓库管理系统(Warehouse Management System,简称WMS)是一款用于优化和管理仓库功能的软件系统。…

如何撰写骨灰级博士论文?这是史上最全博士论文指导!

博士论文的写作是博士研究生主要要完成的工作。由于存在着较高的难度,较长的写作周期,以及在创新,写作规范,实际及理论意义等方面有着比较高的要求,博士论文的完成一般说来是有相当难度的。一篇好的博士论文不仅是一本…