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 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
jquery等宽输出文字插件使用介绍
Sep 18 Javascript
JQuery中form验证出错信息的查看方法
Oct 08 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
Dec 15 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
js实现按座位号抽奖
Apr 05 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
vue 使用Jade模板写html,stylus写css的方法
Feb 23 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
Feb 22 Javascript
个人小程序接入支付解决方案
May 23 Javascript
解析vue、angular深度作用选择器
Sep 11 Javascript
vue excel上传预览和table内容下载到excel文件中
Dec 10 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.ini 中文版
2006/10/28 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
浅入深出Vue之自动化路由
2019/08/06 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
python实现的简单窗口倒计时界面实例
2015/05/05 Python
理解python正则表达式
2016/01/15 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
python交易记录整合交易类详解
2019/07/03 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
党员党性分析材料
2014/02/17 职场文书
物业管理专业求职信
2014/06/11 职场文书
物理教育专业求职信
2014/06/25 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
高三英语复习计划
2015/01/19 职场文书
端午节活动总结报告
2015/02/11 职场文书
中班上学期个人总结
2015/02/12 职场文书
售票员岗位职责
2015/02/15 职场文书
大学四年个人总结
2015/03/03 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书