ES6解构赋值及ES6的一些简写介绍

news2025/8/14 4:23:41

1、ES6解构赋值: 

● 解构赋值,就是快速地从对象或者数组中取出成员的一个语法方式

(1)  解构数组:

● 快速从数组中获取成员

 <script>
        //ES5的方式从数组中获取成员
        var arr = ['Jack','Rose','Tom']
        var a = arr[0] //Jack
        var b = arr[1] //Rose
        var c = arr[2] //Tom
  </script>
  <script>
        //使用ES6解构赋值的方法从数组中获取成员
        let arr = ['Jack','Rose','Tom']
        let [a,b,c] = arr
        console.log(a,b,c)
  </script>

● ES6方式结果:Jack  Rose  Tom

● 上述ES6方式代码解释:

● 前面的[ ]表示要从arr这个数组中获取成员了

● a b c 分别对应这个数组中的索引 0 1 2

● arr必须是一个数组

● 解构赋值就是构建一个和数组一模一样的解构,然后再赋值给数组arr,这样每一个相对应就能获取里面的成员,你可以单独获取a,这样a就代表取出第一个,但是你要是想取出第三个Tom不能只写c,因为只写c代表取出一个,那就是第一个,所以你要想取出Tom,必须要前两个也取出这样。

  <script>
        //多维数组
        let arr = [1,3,[4,5,[6]]]
        let [a,b,[c,d,[e]]] = arr
        console.log(e) //结果:6
  </script>

● 数组的快速交换

  <script>
        var a = 10
        var b = 20
        var [a,b] = [b,a]
        console.log(a,b) //结果:20 10
  </script>

解释说明:之前都是用第三方变量中转,现在就直接用解构赋值的方式交换 

 (2) 解构对象

● 快速从对象中获取成员

<script>
        //ES6的方法从对象中获取成员
        const obj = {
            name:"yiyi",
            age:21,
            location:'shenzhen'
        }
        const {name,age,location:mylocation} = obj
        console.log(name,age,mylocation)
 </script>

解释说明:

● 上面输出的结果是:yiyi   21   shenzhen

●  对象解构赋值也是一样的,按照对象解构定义一个重新赋值给对象obj

● 上面的location因为是一个关键字,直接拿来用会报错,那如果不小心使用了关键字怎么办,用重命名来解决,重命名就是上面location:mylocation重命名为mylocation

 <script>
        //复杂对象
        const obj = {
            name:"yiyi",
            age:21,
            location:{
                province:"guangdong",
                city:'shenzhen'
            },
            hobby:[111,222,333]
        }
        const {
            name,
            age,
            location:{
                province,
                city
            },
            hobby:[m,n,k]
        } = obj
        console.log(name,age,province,city,m,n,k)
  </script>

注意:

● {}是专门解构对象使用的

● [ ]是专门解构数组使用的

● 不能混用

2、ES6的对象简写:

● 当对象里key和存储value值的变量名相同时,变量名可以省略

<body>
    <input type="text" id="myusername">
    <input type="password" id="mypassword">
    <button id="btn">确定</button>
    <script>
        btn.onclick = function(){
            let username = myusername.value
            let password = mypassword.value
            let obj = {
                username:username,
                password:password
            }
            console.log("传给后端:",username,password)
        }
    </script>
</body>

结果:

 解释说明:用username和password两个变量分别接收登录名和密码,通过对象的方式传给钩端,当我们对象里面的key值和变量名相同时,可以省略这个变量名,如下:

<body>
    <input type="text" id="myusername">
    <input type="password" id="mypassword">
    <button id="btn">确定</button>
    <script>
        btn.onclick = function(){
            let username = myusername.value
            let password = mypassword.value
            let obj = {
                username,
                password
            }
            console.log("传给后端:",username,password)
        }
    </script>
</body>

● 对象里面的函数名可以省略

 <script>
        //省略之前
        var obj = {
            a:1,
            getName:function(){
                console.log(this.a)
            }
        }
        obj.getName()
  </script>
 <script>
        //省略之后
        var obj = {
            a:1,
            getName(){
                console.log(this.a)
            }
        }
        obj.getName()
  </script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验六 数组(山东建筑大学)

第1关:实验6.1 任务描述 输入3个整数,按由大到小的顺序输出。 输入样例 1 1 2 3 输出样例 1 3 2 1 开始你的任务吧,祝你成功! 第2关:实验6.2 任务描述 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。 输入样例 1 2 1 3 4 5 6 7 8 10 9 输…

感性认识一下Linux的进程地址空间和写时拷贝技术

虽然本篇文章对操作系统的理解不怎么深入&#xff0c;或者说仅仅是一些皮毛知识(也可能皮毛也算不上)&#xff0c;但还是需要读者有一些Linux的基础理解&#xff0c;如何确定是否有这些基础呢&#xff1f;可以参考我的这一篇博客&#xff1a;Linux —— 进程概念超详解! 1.“奇…

LeetCode 318 周赛

2460. 对数组执行操作 给你一个下标从 0 开始的数组 nums &#xff0c;数组大小为 n &#xff0c;且由 非负 整数组成。 你需要对数组执行 n - 1 步操作&#xff0c;其中第 i 步操作&#xff08;从 0 开始计数&#xff09;要求对 nums 中第 i 个元素执行下述指令&#xff1a;…

阿里 P8 架构师力荐 java 程序员人手一套 116 页 JVM 吊打面试官专属秘籍

只要是 java 程序员&#xff0c;肯定对于 JVM 来说并不陌生&#xff0c;甚至是从熟悉到陌生&#xff0c;为什么这样说呢&#xff1f;因为你看似熟悉的东西&#xff0c;其实对于源码层级了解得少之又少&#xff0c;到头来只有一种陌生的感觉&#xff0c;使用了吗&#xff1f;使用…

技术分享 | 多测试环境的动态伸缩实践

本文将从敏捷研发团队的环境需求与痛点出发&#xff0c;分享如何基于云构建可弹性伸缩的自动化生成式多测试环境&#xff1b;更在经济效益层面&#xff0c;提供了多种成本优化方案&#xff0c;以满足研发团队低成本、高效益的多测试环境运行目标。 一、当前遇到的环境问题 初…

论文阅读笔记 | 三维目标检测——AVOD算法

如有错误&#xff0c;恳请指出。 文章目录1. 背景2. 网络结构3. 实验结果paper&#xff1a;《Joint 3D Proposal Generation and Object Detection from View Aggregation》 1. 背景 AVOD同样是一个two-stage(使用了RPN提取候选框)、anchor-based网络结构。获得较高的召回率对…

【WPF】DiffPlex 文本比对工具

【WPF】DiffPlex 文本比对工具背景关于 DiffPlex准备代码实现效果图源码下载地址背景 现行的文本编辑器大多都具备文本查询的能力&#xff0c;但是并不能直观的告诉用户两段文字的细微差异&#xff0c;所以对比工具在某种情况下&#xff0c;就起到了很便捷的效率。 关于 DiffPl…

D. Extreme Subtraction(差分)

Problem - 1443D - Codeforces 给你一个由n个正整数组成的数组a。 你可以随意使用下面的操作&#xff1a;选择任何一个1≤k≤n的整数&#xff0c;做两件事中的一件。 将数组中的前k个元素递减1。 将数组的最后k个元素递减1。 例如&#xff0c;如果n5&#xff0c;a[3,2,2,1,4]…

【Pytorch with fastai】第 16 章 :训练过程

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

利用jemalloc优化mysql

此方法管理mysql内存也存在一定的弊端&#xff0c;根据自身情况进行选择 优点&#xff1a; jemalloc的确能对内存做一定优化&#xff0c;但是发现并不能解决所有内存碎片问题&#xff0c;只能说有一定缓解作用。 缺点&#xff1a; 使用jemalloc会带来内存增加问题&#xff0…

[附源码]java毕业设计零食销售系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MySQL8.0 MySQL事务日志、REDO日志、UNDO日志

文章目录学习资料MySQL事务日志REDO日志REDO日志的好处、特点好处特点REDO的组成REDO的整体流程REDO LOG的刷盘策略流程图UNDO日志如何理解UNDO日志UNDO日志的作用作用1&#xff1a;回滚数据作用2&#xff1a;MVCC小结学习资料 【MySQL数据库教程天花板&#xff0c;mysql安装到…

i2c协议的特点是什么,老司机带你深入了解

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(一根数据线SDA,一根时钟线SCL)即可在连接于总线上的器件之间传送信息。 在I2C总线中, 各部分器件如下: 主机初始化发送&#xff0c;产生时钟信号和终止发送的器件 从器件被主机寻址的器件 发送器…

浅谈选择示波器时的“5倍法则”

众所周知&#xff0c;选择示波器时经常会用到5倍法则&#xff0c;其实不仅仅是针对带宽&#xff0c;当涉及到快沿信号上升时间测试时&#xff0c;根据上升时间选择示波器也会用到5倍法则。本文将分别对这两种情况下的5倍法则展开讨论&#xff0c;并介绍当考虑示波器和探头构成的…

从结构上浅谈FPGA实现逻辑的原理

FPGA是啥&#xff1f;你要是在百度上一查&#xff0c;多数会搜到什么 Field Programmable Gate Array&#xff0c;现场可编程门整列嘛&#xff0c;但是这句话对咱们新手理解FPGA起到的作用十分有限&#xff0c;其实不单是新手朋友&#xff0c;就连我这个玩了几个月的FPGAer也不…

(三)Logistic回归的梯度下降

一、单个样本的Logistic回归的梯度下降法 在本节中&#xff0c;我们学习如何计算偏导数来实现Logistic回归的梯度下降法。 我们将使用导数流程图来计算梯度。 首先回顾一下Logistic回归的公式 zwTxbz w^TxbzwTxb y^aσ(z)11e−z\widehat{y}a \sigma(z) \frac 1 {1e^{-z}}y​…

会员中心通过AJAX、JSON、PHP、MySql等技术实现注册和登录功能(1+X Web前端开发中级 例题)——初稿

&#x1f4c4;题目要求 阅读下列说明、效果图和代码&#xff0c;进行动态网页开发&#xff0c;补充代码&#xff08;1&#xff09;-&#xff08;30&#xff09;。会员中心&#xff0c;需要先注册后登录&#xff0c;先要求应用HTML、CSS、AJAX、JSON、PHP、MySql等技术实现注册…

反射机制(复习)

反射机制 反射机制定义反射机制的功能反射机制主要的API反射机制演示对 Class 的理解Class实例获取的四种方式Class 对应内存结构说明加载Properties文件的俩种方式调用运行时类的结构调用运行时类的指定属性调用运行时类指定的方法调用运行时类指定的构造器反射的应用&#xf…

技术公开课|深度剖析 Java 的依赖管理,快速生成项目 SBOM清单

背景 近年来软件供应链安全风险涌现&#xff0c;无论是 Fastjson、Log4j 等基础组件的 0day&#xff0c;来源于开源的风险事件不断上升&#xff0c;对于研发以及安全同学来说&#xff0c;都是在不断的摸索建立有效的预防及解决机制&#xff0c;公开课将以风险治理为最终目标、…

Java -- 每日一问:谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

典型回答 所谓隔离级别&#xff08;Isolation Level&#xff09;&#xff0c;就是在数据库事务中&#xff0c;为保证并发数据读写的正确性而提出的定义&#xff0c;它并不是 MySQL 专有的概念&#xff0c;而是源于ANSI/ISO制定的SQL-92标准。 每种关系型数据库都提供了各自特…