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 相关文章推荐
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 Javascript
js 获取和设置css3 属性值的实现方法
May 06 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
js实现图片无缝滚动特效
Mar 19 Javascript
Javascript动画效果(1)
Oct 11 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 Javascript
Angular Renderer (渲染器)的具体使用
May 03 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
如何区分vue中的v-show 与 v-if
Sep 08 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实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
简单谈谈Python中的闭包
2016/11/30 Python
如何在python中使用selenium的示例
2017/12/26 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
详解Python中的四种队列
2018/05/21 Python
python爬取网页转换为PDF文件
2018/06/07 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python实现最速下降法
2020/03/24 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
苹果Mac升级:MacSales.com
2017/11/20 全球购物
"序列点" 是什么
2016/07/29 面试题
2014迎新年晚会策划方案
2014/02/23 职场文书
商业项目策划方案
2014/06/05 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
教师远程研修感悟
2015/11/18 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers