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 异步处理进度条
Apr 01 Javascript
通过正则表达式实现表单验证是否为中文
Feb 18 Javascript
文本域光标操作的jQuery扩展分享
Mar 10 Javascript
使用javascript实现Iframe自适应高度
Dec 24 Javascript
关于在Servelet中如何获取当前时间的操作方法
Jun 28 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
Aug 10 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
Sep 12 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 jQuery
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
Jul 24 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实现详细解析
2013/08/24 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
一个原生的用户等级的进度条
2010/07/03 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
英文版餐饮业求职信
2013/10/18 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
好媳妇事迹材料
2014/12/24 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏