首页 web前端 js教程 ES6扩展运算符

ES6扩展运算符

Aug 19, 2017 am 10:22 AM
扩展 运算符

ES6的扩展运算符可以说是非常使用的,在给多参数函数传参,替代Apply,合并数组,和解构配合进行赋值方面提供了很好的便利性。

扩展运算符就是三个点“...”,就是将实现了Iterator 接口的对象中的每个元素都一个个的迭代并取出来变成单独的被使用。

看这个例子:

console.log(...[3, 4, 5])
登录后复制

结果:

3 4 5
登录后复制

调用其实就是:

console.log(3, 4, 5)
登录后复制

合并数组

可以使用扩展运算符将多个数组进行合并。

let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]
let arr3 = [7, 8, 9]
console.log([...arr1, ...arr2, ...arr3])
登录后复制

结果:

[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
登录后复制

函数多参数传递, 替换Apply

先把参数定义成数组,函数定义好。

let arr4 = ['arg1', 'arg2', 'arg3', 'arg4']
let fun1 = (a1, a2, a3, a4) => {
  console.log( a1, a2, a3, a4)
}
登录后复制

在ES6前,要把数组参数传递给函数,要么按照下标访问数组元素去调用函数,缺点是数组个数和函数参数个数完全绑定,有一个个数发生变化,那么就要修改了。

fun1(arr4[0], arr4[1], arr4[2], arr4[3])
登录后复制

要么就用Apply进行调用,结果当然是没毛病,也是ES6之前用的最多的。

fun1.apply(null, arr4)
登录后复制

如果是用扩展运算符,那就方便咯。

fun1(...arr4)
登录后复制

结果:

arg1 arg2 arg3 arg4
登录后复制

调用简洁爽快。

与解构配合赋值

配合使用,可以从数组中提取除第一个以后的所有元素成另外一个数组。

let [var1, ...arr5] = [1, 2, 3, 4, 5, 6]
console.log(var1)
console.log(arr5)
登录后复制

结果:

1[ 2, 3, 4, 5, 6 ]
登录后复制

但要注意,与解构配合时,扩展运算符只能用在最后一个上,否则报错。

可以展开实现了Iterator 接口的对象

比如Map,Set,数组就是从Iterator接口实现来的,Object不是,所以扩展Object会报错。

扩展Set。

let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
console.log(...set1)
登录后复制

结果:

1 2 3
登录后复制

扩展Map。

let map1 = new Map();
map1.set('k1', 1);
map1.set('k2', 2);
map1.set('k3', 3);
console.log(...map1)
登录后复制

结果:

[ 'k1', 1 ] [ 'k2', 2 ] [ 'k3', 3 ]
登录后复制

注意,扩展出来的一个个的数组,按照map的键值对结构,每个数组都是2个元素,一个是key,一个是value。

如果扩展Object,就会报错。

let obj1 = {
   p1: 1,
   p2: 2,
   p3: 3}
console.log(...obj1)
登录后复制

以上是ES6扩展运算符的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP 函数的扩展和第三方模块 PHP 函数的扩展和第三方模块 Apr 13, 2024 pm 02:12 PM

要扩展PHP函数功能,可以使用扩展和第三方模块。扩展提供附加函数和类,可通过pecl包管理器安装和启用。第三方模块提供特定功能,可通过Composer包管理器安装。实践案例包括使用扩展解析复杂JSON数据和使用模块验证数据。

CENTOS7下如何安装mbstring扩展? CENTOS7下如何安装mbstring扩展? Jan 06, 2024 pm 09:59 PM

1.UncaughtError:Calltoundefinedfunctionmb_strlen();出现如上错误时,说明我们没装上mbstring扩展;2.进入PHP安装目录cd/temp001/php-7.1.0/ext/mbstring3.启动phpize(/usr/local/bin/phpize或/usr/local/php7-abel001/bin/phpize)命令来安装php扩展4../configure--with-php-config=/usr/local/php7-abel

C语言中+=运算符的含义与用法解析 C语言中+=运算符的含义与用法解析 Apr 03, 2024 pm 02:27 PM

+=运算符用于将左操作数的值加上右操作数的值,并将结果赋值给左操作数,适用于数字类型且左操作数必须可写。

Python 语法的思维导图:深入理解代码结构 Python 语法的思维导图:深入理解代码结构 Feb 21, 2024 am 09:00 AM

python凭借其简单易读的语法,广泛应用于广泛的领域中。掌握Python语法的基础结构至关重要,既可以提高编程效率,又能深入理解代码的运作方式。为此,本文提供了一个全面的思维导图,详细阐述了Python语法的各个方面。变量和数据类型变量是Python中用于存储数据的容器。思维导图展示了常见的Python数据类型,包括整数、浮点数、字符串、布尔值和列表。每个数据类型都有其自身的特性和操作方法。运算符运算符用于对数据类型执行各种操作。思维导图涵盖了Python中的不同运算符类型,例如算术运算符、比

搜狗浏览器右上角显示的扩展不见了怎么办 搜狗浏览器右上角显示的扩展不见了怎么办 Jan 31, 2024 pm 02:54 PM

搜狗浏览器右上角显示的扩展不见了怎么办?搜狗浏览器地扩展栏不见了,要怎么显示出来。搜狗浏览器右上角有个扩展栏,里面显示了用户下载安装过的各种扩展插件,但是因为我们的一些操作,导只扩展栏的失踪,该怎么办呢。我们要怎么操作它才会显示出来!小编下面整理了搜狗浏览器右上角显示的扩展不见了怎么办的解决办法,不会的话,跟着我往下看吧!搜狗浏览器右上角显示的扩展不见了怎么办1、首先打开搜狗浏览器,在浏览器右上方可以看到一个由三条横线组成的“显示菜单”图标,使用鼠标点击该图标。2、点击之后下方会弹出一个菜单窗口

PHP 函数返回值的类型与 PHP 扩展的互操作性有什么关系? PHP 函数返回值的类型与 PHP 扩展的互操作性有什么关系? Apr 15, 2024 pm 09:06 PM

PHP函数返回值类型可表示为类型说明语法,明确指定了各函数的返回值类型。了解返回值类型对于创建与PHP核心引擎兼容的扩展至关重要,可避免意外转换、提高效率和增强代码可读性。具体而言,扩展函数可定义返回值类型,以便PHP引擎根据该类型优化代码执行,并让开发者明确处理返回值。实践中,扩展函数可以返回PHP对象,而PHP代码可以根据返回值类型处理返回的结果。

win11系统中无法扩展D盘的原因及解决办法 win11系统中无法扩展D盘的原因及解决办法 Jan 08, 2024 pm 12:30 PM

有的用户觉得自己d盘空间不够用,想要扩展一下d盘空间,但是在操作的时候,发现自己的win11d盘扩展不了,扩展卷是灰色的,其实这可能是由于磁盘空间不足导致的,下面一起来看看解决方法吧。win11d盘为什么扩展不了:一、空间不足1、首先,扩展d盘需要保证你的磁盘有“可用空间”,如图所示。2、如果像这样没有可用空间,那自然就没有办法扩展了。3、这时候想要扩展d盘,可以找到其他磁盘,右键选择“压缩卷”4、输入想要扩展的空间进行压缩,再点击“确定”就能获得可用空间了。二、磁盘不相邻1、要扩展一个磁盘,可

深入了解Laravel Redis扩展的使用方法 深入了解Laravel Redis扩展的使用方法 Mar 09, 2024 pm 02:03 PM

Laravel是一款流行的PHP开发框架,拥有丰富的功能和灵活的扩展性,其中Redis扩展则是常用的一种数据库缓存工具。本文将深入探讨Laravel中Redis扩展的使用方法,详细介绍其基本概念、配置方式和具体代码示例,帮助开发者更好地利用Redis扩展提升系统性能。一、什么是RedisRedis是一个开源的内存数据存储系统,也被称

See all articles