web前端技术分享:es6展开运算符概念和使用!_程序员的小傲娇的博客-程序员秘密

技术标签: web前端  html5  编程语言  前端  es6  

对于数组的处理,开发者不断的在创造更好的方式,而在ES2015(ES6) 新增了一种基本运算符——展开运算符.使用三个点 … 表示,它的作用是在调用函数、数组构造时将数组表达式或字符串在语法层面进行展开;构建字面量的对象时以键值对的形式进行展开。

这里小千给大家介绍一下它的基本用法:
在这里插入图片描述
构建字面量语法的数组

通常情况下构建字面量结构的数组我们会使用如 push splice unshift concat 等函数将现有数组作为新数组的一部分。

展开运算符可以更简单快速的完成这项工作。
在这里插入图片描述
链接数组

在拥有展开运算符以前 我们通常使用 concat 函数 进行数组的链接
在这里插入图片描述
数组拷贝
在这里插入图片描述
从以上结果我们可以看出 展开运算符只遍历展开数组的第一层(浅拷贝)。 展开的结果如果是引用类型则不继续向下遍历。 事实上它的行为和 Object.assign() 是相同的

对象拷贝和合并
在这里插入图片描述
使用展开运算符进行新对象构造 本质上是讲原有对象中的所有 可枚举 属性拷贝到新对象中; 与 Object.assign() 不同的是 Object.assign()会触发setters 展开运算符不会。

rest参数(剩余参数)

ES2015 引入 rest参数(语法为 …变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。 这个特性可以让我们在一些特定环境更方便的去处理参数(例如没有arguments的箭头函数)
在这里插入图片描述
我们也可以对部分参数使用rest参数,但是在rest参数后不能有其他参数(rest必须是最后一个参数)
在这里插入图片描述
注意点: 在数组或函数参数中使用展开语法时, 只能用于 可迭代对象(支持 iterator)
在这里插入图片描述
以上就是小千分享es6展开运算符概念和基本用法,希望对大家有帮助。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoxijinger/article/details/114671714

智能推荐

ECshop后台角色权限的添加和分配_aiwo1221的博客-程序员秘密

1.在权限文件中配置2.在需要加权限的文件中加入权限。例如:d:\ecshop\admin\user_account.php 3.在数据库表 ecs_admin_action中配置4.会员权限 分配 给角色转载于:https://www.cnblogs.com/plan/p/50...

Reinforcement Learning Exercise 4.4_YeXiang\^-^/的博客-程序员秘密

Exercise 4.4 The policy iteration algorithm on page 80 has a subtle bug in that it may never terminate if the policy continually switches between two or more policies that are equally good. This is OK...

Pytorch 深度学习实践Lecture_4 Back Propagation_pytorch data.grad_endeavor`的博客-程序员秘密

反向传播可以通过链式法则,使得梯度在计算图中进行反向传播在Pytorch中, Tensor 对象包含data 和 grad 两个属性   data:用于存放tensor,是数据本体。   grad:存放data的梯度值(默认不计算梯度)在Pytorch中, Tensor之间的计算即为动态生成计算图(谨记)import torchimport matplotlib.pyplot as pltx_data = [1.0, 2.0, 3.0]y_data = [2.0, 4...

Python爬取4500个景点:用echarts热力图分析国庆哪里最堵?_datayx的博客-程序员秘密

人工智能大数据与深度学习 公众号: weic2c即将迎来一伟大的国庆长假,那么问题来了,去哪儿玩呢?百度输了个“国庆”,出来的第一条居然是“去哪里旅游...

python中reload(sys)作用详解_星辰浩宇的博客-程序员秘密

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置python的默认编码,一般设置为utf...

随便推点

*tram<pku 1847>_aimei3954的博客-程序员秘密

//看懂题目之后发现很水,最短路,数据小,直接flyod. 1 Source Code 2 3 Problem: 1847 User: eth1 4 Memory: 292K Time: 32MS 5 Language: C++ Result: Accepted 6 Source Code 7 #include &lt;iostream&...

[译] Android 架构:Part 3 —— 应用 Clean Architecture_dodod2012的博客-程序员秘密

原文地址:https://listenzz.github.io/android-architecture-part-3-applying-clean-architecture-android到目前为止,在这个系列中,我们已经讲解了一些初学者易犯的错误,以及过了一遍Clean Architecture。在这最后一部分,我们会介绍最后一个难题:标签,或者准确地说,组件。译者注:看完了这一...

USACO3.1.2 Score Inflation (inflate)_accepoc的博客-程序员秘密

裸的完全背包。/*ID:shijiey1PROG:inflateLANG:C++*/#include #include #include using namespace std;int m, n;int sco[10010];int tim[10010];int dp[10010];int main() { freopen("inflate.in", "r", st

01-metabase开发环境搭建_nodejs安装clojure_工业自动化王工的博客-程序员秘密

使用docker安装即可:安装命令如下:docker run --restart=always -d -p 3000:3000 --name mymetabase metabase/metabase浏览器输入此网址打开:Metabasehttp://101.43.113.140:3000/首次打开需要进行系统设置:其他配置保持默认即可:系统主页如下:...

Swift - 修改状态栏文字颜色_swift 修改状态栏文字颜色__zhangJ的博客-程序员秘密

设置项目整体的状态栏类型在 plist 文件中设置 "View controller-based status bar style appearance" 为 yes 时, 将控制权交给 vc可以在UINavigationController中实现 override var childForStatusBarStyle: UIViewController? { return topViewController }在要修改的 controller 里面实现

推荐文章

热门文章

相关标签