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传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
Nov 13 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
flexslider.js实现移动端轮播
Feb 05 Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
JavaScript实现选项卡效果的分析及步骤
Apr 16 Javascript
微信小程序分包加载代码实现方法详解
Sep 23 Javascript
使用jQuery实现购物车
Oct 29 jQuery
通过实例解析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实现与ASP Banner组件相似的类
2006/10/09 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
python requests.post带head和body的实例
2019/01/02 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
班组长工作职责
2013/12/25 职场文书
项目负责人任命书
2014/06/04 职场文书
2014年党小组工作总结
2014/12/20 职场文书
中班下学期个人总结
2015/02/12 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫
python如何查找列表中元素的位置
2022/05/30 Python
Redis主从复制操作和配置详情
2022/09/23 Redis