JavaScript 扩展运算符用法实例小结【基于ES6】


Posted in Javascript onJune 17, 2019

本文实例讲述了JavaScript 扩展运算符用法。分享给大家供大家参考,具体如下:

扩展运算符格式

扩展运算符格式很简单,就是三个点(…)

重点:需要ES6 语法支持

扩展运算符作用???

扩展运算符允许一个表达式在期望多个参数(用于函数调用)或多个元素(用于数组字面量)或多个变量(用于解构赋值)的位置扩展。

1、将一个数组放入另一个数组中

下面开始通过四个例子来深刻理解扩展运算符

①. 创建一个数组middle
②. 创建第二个包含middle的数组
③. 输出结果

var middle = [3, 4];
var arr = [1, 2, middle, 5, 6];
console.log(arr);
// [1, 2, [3, 4], 5, 6]

在上例中,没有使用扩展运算符。middle作为数组放入另一个数组中

2、如果想让输出结果只有一个数组???

这时候就用到扩展运算符,看下面例子,除了使用扩展运算符其他都与上面例子相同。

var middle = [3, 4];
var arr = [1, 2, ...middle, 5, 6];
console.log(arr);
// [1, 2, 3, 4, 5, 6]

当创建数组arr和使用在middle数组上使用扩展运算符时,不是将middle数组直接插入到arr中,而是将middle数组扩展,然后将元素插入到arr中。

3、复制数组

slice()是JavaScript数组的方法,作用是复制数组。我们同样可以使用扩展运算符复制数组。

var arr = ['a', 'b', 'c'];
var arr2 = [...arr];
console.log(arr2);
// ['a', 'b', 'c']

arr数组中的元素扩展成为单独元素被分配到arr2中。现在可以随意改变arr2数组,且都不会对源数组arr产生影响

这是因为,arr数组值被扩展后添加到arr2数组中,我们设置arr2等于arr的值,而不是其本身。我们可以关注没有扩展运算符时发生事情,就能理解了。

如果创建数组然后设置另一个数组等于其本身,如下:

var arr = ['a', 'b', 'c'];
var arr2 = arr;
console.log(arr2);
// ['a', 'b', 'c']

现在我们将arr2数组赋值给arr数组,这意味着只要改变arr2,arr数组就会发生变化。

arr2.push('d');
console.log(arr2);
// ['a', 'b', 'c', 'd']
console.log(arr);
// ['a', 'b', 'c', 'd']

4、拼接数组

使用扩展运算符可以代替concat()来拼接数组。

var arr = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
arr1 = arr.concat(arr2);
console.log(arr);
// ['a', 'b', 'c', 'd', 'e', 'f']

使用扩展运算符

var arr = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
arr = [...arr, ...arr2];
console.log(arr);
// ['a', 'b', 'c', 'd', 'e', 'f']

5、Math

也可以使用math函数连同扩展运算符。如这个例子中,将使用Math.max()

Math.max()将返回一组数最大值。
Math.max();
// -Infinity
Math.max(1, 2, 3);
// 3
Math.max(100, 3, 4);
// 100

在没有扩展运算符,在数组上使用Math.max()最容易方法就是使用.apply()

var arr = [2, 4, 8, 6, 0];
function max(arr) {
 return Math.max.apply(null, arr);
}
console.log(max(arr));
// 8

现在看看使用扩展运算符做同样事情。只需要两行代码就可以做到同样效果。

var arr = [2, 4, 8, 6, 0];
var max = Math.max(...arr);
console.log(max);
// 8

6、字符串转数组

使用扩展运算符将字符串转换为数组。

var str = "hello";
var chars = [...str];
console.log(chars);
// ['h', 'e',' l',' l', 'o']

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js中的cookie的读写操作示例详解
Apr 17 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
node.js中的http.createServer方法使用说明
Dec 14 Javascript
JavaScript中的数学运算介绍
Dec 29 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
jQuery实现为图片添加镜头放大效果的方法
Jun 25 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
去除html代码里面的script正则方法
May 19 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
Postman的下载及安装教程详解
Oct 16 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
JS实现可用滑块滑动的缓动图代码
Sep 01 Javascript
通过实例解析js简易模块加载器
Jun 17 #Javascript
如何从头实现一个node.js的koa框架
Jun 17 #Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 #Javascript
深入解析koa之异步回调处理
Jun 17 #Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 #Javascript
详解element-ui设置下拉选择切换必填和非必填
Jun 17 #Javascript
JS实现的字符串数组去重功能小结
Jun 17 #Javascript
You might like
可以在线执行PHP代码包装修正版
2008/03/15 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
php桥接模式应用案例分析
2019/10/23 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
深入理解react 组件类型及使用场景
2019/03/07 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python出现segfault错误解决方法
2016/04/16 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
C语言笔试题
2014/09/04 面试题
自动化专业个人求职信范文
2013/12/30 职场文书
学习决心书范文
2014/03/11 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
资料员岗位职责范本
2015/04/13 职场文书
商业计划书格式、范文
2019/03/21 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python