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 相关文章推荐
在JavaScript中遭遇级联表达式陷阱
Mar 08 Javascript
javascript attachEvent和addEventListener使用方法
Mar 19 Javascript
Extjs学习笔记之二 初识Extjs之Form
Jan 07 Javascript
js动态添加事件并可传参数示例代码
Oct 21 Javascript
JavaScript 语言基础知识点总结(思维导图)
Nov 10 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
JQuery解析XML数据的几个简单实例
May 18 Javascript
Bootstrap 实现查询的完美方法
Oct 26 Javascript
jQuery Ajax前后端使用JSON进行交互示例
Mar 17 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
Dec 26 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
Sep 21 Javascript
Vue表单输入绑定的示例代码
Nov 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中unserialize返回false的解决方法
2014/09/22 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
accesskey 提交
2006/06/26 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
python读取oracle函数返回值
2016/07/18 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
详解python中的闭包
2020/09/07 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
五年级学生评语
2014/04/22 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
自我检讨书范文
2015/01/28 职场文书
航班延误投诉信
2015/07/02 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
单位提档介绍信
2015/10/22 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android