广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >es6中三个点指的是什么意思
  • 298
分享到

es6中三个点指的是什么意思

2024-04-02 19:04:59 298人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关es6中三个点指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在es6中,三个点“...”指的是“扩展运算符”

这篇文章给大家分享的是有关es6中三个点指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在es6中,三个点“...”指的是“扩展运算符”,可以在函数调用或数组构造时,将数组表达式或者string在语法层面展开;也可以在构造字面量对象时将对象表达式按照“key-value”的方式展开。

教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

es6中三个点是什么意思

三个点(...)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开

字面量一般指[1,2,3]或者{name:'chuichui'}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了

说白了就是把衣服脱了,不管是大括号([])、花括号({}),统统不在话下,全部脱掉脱掉!

// 数组
var number = [1,2,3,4,5,6]
console.log(...number) //1 2 3 4 5 6
//对象
var man = {name:'chuichui',height:176}
console.log({...man}) / {name:'chuichui',height:176}

扩展运算符的8种用法

1. 拷贝数组对象

使用扩展符拷贝数组是ES6中常用的操作:

const years = [2018, 2019, 2020, 2021];
const copyYears = [...years];

console.log(copyYears); // [ 2018, 2019, 2020, 2021 ]

扩展运算符拷贝数组,只有第一层是深拷贝,即对一维数组使用扩展运算符拷贝就属于深拷贝,看下面的代码:

const miniCalendar = [2021, [1, 2, 3, 4, 5, 6, 7], 1];

const copyArray = [...miniCalendar];
console.log(copyArray); // [ 2021, [ 1, 2, 3, 4, 5, 6, 7 ], 1 ]

copyArray[1][0] = 0;
copyArray[1].push(8);
copyArray[2] = 2;
console.log(copyArray); // [ 2021, [ 0, 2, 3, 4, 5, 6, 7, 8 ], 2 ]
console.log(miniCalendar); // [ 2021, [ 0, 2, 3, 4, 5, 6, 7, 8 ], 1 ]

把打印的结果放在一起便于更加清楚进行对比,如下:

变量说明结果操作
copyArray[ 2021, [ 1, 2, 3, 4, 5, 6, 7 ], 1 ] 复制数组 miniCalendar
copyArray[ 2021, [ 0, 2, 3, 4, 5, 6, 7, 8 ], 2 ]1. 将数组第二个元素的第一个元素重新赋值为 0 ;2. 往数组的第二个元素增加一个元素 8 ;3. 将数组第三个元素重新赋值为2
miniCalendar[ 2021, [ 0, 2, 3, 4, 5, 6, 7, 8 ], 1 ]从结果来看,数组的第二个元素为数组,大于1维了,里面的元素的变更将导致原变量的值随之改变

拷贝对象,代码如下:

const time = {
    year: 2021,
    month: 7,
    day: {
        value: 1,
    },
};
const copyTime = { ...time };
console.log(copyTime); // { year: 2021, month: 7, day: { value: 1 } }

扩展运算符拷贝对象只会在一层进行深拷贝,从下面代码是基于上面代码:

copyTime.day.value = 2;
copyTime.month = 6;
console.log(copyTime); // { year: 2021, month: 6, day: { value: 2 } }
console.log(time); // { year: 2021, month: 7, day: { value: 2 } }

从打印的结果看,扩展运算符只对对象第一层进行了深拷贝。

严格来讲,扩展运算符不执行深拷贝

2. 合并操作

先来看数组的合并,如下:

const halfMonths1 = [1, 2, 3, 4, 5, 6];
const halfMonths2 = [7, 8, 9, 10, 11, 12];

const allMonths = [...halfMonths1, ...halfMonths2];
console.log(allMonths); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]

合并对象,在合并对象时,如果一个键已经存在,它会被具有相同键的最后一个对象给替换。

const time1 = {
    month: 7,
    day: {
        value: 1,
    },
};
const time2 = {
    year: 2021,
    month: 8,
    day: {
        value: 10,
    },
};
const time = { ...time1, ...time2 };
console.log(time); // { month: 8, day: { value: 10 }, year: 2021 }

3. 参数传递

const sum = (num1, num2) => num1 + num2;

console.log(sum(...[6, 7])); // 13
console.log(sum(...[6, 7, 8])); // 13

从上面的代码看,函数定义了多少个参数,扩展运算符传入的值就是多少个。

math 函数一起使用,如下:

const arrayNumbers = [1, 5, 9, 3, 5, 7, 10];
const min = Math.min(...arrayNumbers);
const max = Math.max(...arrayNumbers);
console.log(min); // 1
console.log(max); // 10

4. 数组去重

Set 一起使用消除数组的重复项,如下:

const arrayNumbers = [1, 5, 9, 3, 5, 7, 10, 4, 5, 2, 5];
const newNumbers = [...new Set(arrayNumbers)];
console.log(newNumbers); // [ 1,  5, 9, 3, 7, 10, 4, 2 ]

5. 字符串转字符数组

String 也是一个可迭代对象,所以也可以使用扩展运算符 ...  将其转为字符数组,如下:

const title = "china";
const charts = [...title];
console.log(charts); // [ 'c', 'h', 'i', 'n', 'a' ]

进而可以简单进行字符串截取,如下:

const title = "china";
const short = [...title];
short.length = 2;
console.log(short.join("")); // ch

6. nodeList 转数组

NodeList  对象是节点的集合,通常是由属性,如 Node.childNodes 和方法,如 document.querySelectorAll 返回的。

NodeList 类似于数组,但不是数组,没有 Array 的所有方法,例如findmapfilter 等,但是可以使用 forEach() 来迭代。

可以通过扩展运算符将其转为数组,如下:

const nodeList = document.querySelectorAll(".row");
const nodeArray = [...nodeList];
console.log(nodeList);
console.log(nodeArray);

es6中三个点指的是什么意思

7. 解构变量

解构数组,如下:

const [currentMonth, ...others] = [7, 8, 9, 10, 11, 12];
console.log(currentMonth); // 7
console.log(others); // [ 8, 9, 10, 11, 12 ]

解构对象,如下:

const userInfo = { name: "Crayon", province: "Guangdong", city: "Shenzhen" };
const { name, ...location } = userInfo;
console.log(name); // Crayon
console.log(location); // { province: 'Guangdong', city: 'Shenzhen' }

8. 打印日志

在打印可迭代对象的时候,需要打印每一项可以使用扩展符,如下:

const years = [2018, 2019, 2020, 2021];
console.log(...years); // 2018 2019 2020 2021

感谢各位的阅读!关于“es6中三个点指的是什么意思”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: es6中三个点指的是什么意思

本文链接: https://www.lsjlt.com/news/92870.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • es6中三个点指的是什么意思
    这篇文章给大家分享的是有关es6中三个点指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在es6中,三个点“...”指的是“扩展运算符”...
    99+
    2022-10-19
  • es6三个点指的是什么
    这篇文章主要介绍“es6三个点指的是什么”,在日常操作中,相信很多人在es6三个点指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6三个点指的是什么”的疑惑有所帮...
    99+
    2022-10-19
  • JavaScript中三个点号是什么意思
    这篇文章主要介绍“JavaScript中三个点号是什么意思”,在日常操作中,相信很多人在JavaScript中三个点号是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • es6中yield指的是什么意思
    小编给大家分享一下es6中yield指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在...
    99+
    2022-10-19
  • es6中map指的是什么意思
    这篇文章将为大家详细讲解有关es6中map指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在es6中,map是一种数据结构,是“...
    99+
    2022-10-19
  • es6的三个点是什么
    本篇内容介绍了“es6的三个点是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!es6的三个点不是函数,...
    99+
    2022-10-19
  • JavaScript中三个点代表什么意思
    这篇文章主要讲解了“JavaScript中三个点代表什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中三个点代表什么意思”吧! ...
    99+
    2022-10-19
  • es6生成器指的是什么意思
    这篇文章将为大家详细讲解有关es6生成器指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在es6中,生成器是设置迭代器的一个函数...
    99+
    2022-10-19
  • 焦点指的是什么意思
    这篇文章将为大家详细讲解有关焦点指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。焦点有3种意思,分别是:1、在JavaScript中,焦点就是关注的区域,即当前光标被激活的位置;2、在几何数学...
    99+
    2023-06-06
  • 电脑键盘上三个灯指的是什么意思
    这篇文章主要介绍“电脑键盘上三个灯指的是什么意思”,在日常操作中,相信很多人在电脑键盘上三个灯指的是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑键盘上三个灯指的是什么意思”的疑惑有所帮助!接下来...
    99+
    2023-06-28
  • php浮点指的是什么意思
    这篇文章主要介绍php浮点指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php浮点指的是Float浮点型,也叫浮点数float,双精度数double或实数real,其定义语法如“$a = 1.234;$...
    99+
    2023-06-26
  • react三个点指的是什么
    本篇内容介绍了“react三个点指的是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react的三个点代表“延展操作符”;在React中...
    99+
    2023-07-04
  • javascript中的点号指什么意思
    这篇文章主要介绍“javascript中的点号指什么意思”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript中的点号指什么意思”文章能帮助大家解决问题...
    99+
    2022-10-19
  • php中三个等于号“===”是什么意思
    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑php中三个等于号“===”是什么意思PHP中三个等于号的意思是绝对等于,如果 x 等于 y,且它们类型相同,则返回 true。是PHP比较运算符的一种。要求给定的左右...
    99+
    2015-09-05
    PHP
  • php中三个等于号是什么意思
    这篇文章主要介绍“php中三个等于号是什么意思”,在日常操作中,相信很多人在php中三个等于号是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中三个等于号是什么意思”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-21
  • php中两个等号指的是什么意思
    小编给大家分享一下php中两个等号指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在php中,两个等号“==”表示“相等”,是一个比较运算符,用于比较...
    99+
    2023-06-20
  • es6中的三个点怎么用
    这篇文章主要介绍了es6中的三个点怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 用法:1、合并数组,语法...
    99+
    2022-10-19
  • php中.=指的是什么意思
    这篇文章主要为大家展示了“php中.=指的是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中.=指的是什么意思”这篇文章吧。php中“.=”表示赋值运算符,是字符串连接的意思,该运...
    99+
    2023-06-25
  • php中=指的是什么意思
    小编给大家分享一下php中=指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php中=符号是PHP中的基础赋值运算符,赋值形式如“z=x+y”,这意味...
    99+
    2023-06-21
  • python中+=指的是什么意思
    小编给大家分享一下python中+=指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python中+=的意思:1、两个值相加,返回值给符号左侧的变量;...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作