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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
Aug 29 Javascript
TinyMCE 新增本地图片上传功能
Nov 05 Javascript
在JavaScript中实现类的方式探讨
Aug 28 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
原生js实现查询天气小应用
Dec 09 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 Javascript
Angular(5.2->6.1)升级小结
Dec 27 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
通过实例解析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/09/25 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
PHP缓存机制Output Control详解
2014/07/14 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
php实现记事本案例
2020/10/20 PHP
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
JavaScript中的闭包
2016/02/24 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
python excel多行合并的方法
2020/12/09 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
英语专业毕业生自荐信
2013/10/28 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python