ES6之 变量的解构赋值 ➕ 扩展运算符(…)

news2024/11/18 7:50:45

ES6之 变量的解构赋值 ➕ 扩展运算符

  • 1. 变量的解构赋值
  • 2. 扩展运算符
    • 2.1 简介(官网)
    • 2.2 应用例子
      • 2.2.1 简单例子1
      • 2.2.2 数组拷贝
      • 2.2.3 连接多个数组
      • 2.2.4 拷贝对象(多层和多维数组一样)
      • 2.2.5 合并对象
      • 2.2.6 关于展开对象(jsx)

1. 变量的解构赋值

  • 一看就懂,代码如下:

    <script>
        console.log("=======1.数组的解构=======");
    
        const DOG_NAMES = ['麦兜','泡泡','贝塔'];
        let [mai,pao,bei] = DOG_NAMES;
    
        console.log(mai); //麦兜
        console.log(pao); //泡泡
        console.log(bei); //贝塔
    
    
        console.log("\n\n\n\n=======2.对象的解构=======");
    
        const dog_1 = {
            dogName:'麦兜',
            dogAge:3,
            dogKind:'边牧',
            dogSex:'女',
            dogPlayGames:function(){
                console.log('狗狗超级爱玩球。。。。');
            }
        }
        /**
         * a. 对象解构的时候,属性名要和上面声明的对象里的属性名一致
         * b. 即:相当于声明了几个变量,并对新声明的变量进行了赋值
         */
        let {dogName,dogAge,dogPlayGames} = dog_1;
        
        console.log(dogName);
        console.log(dogAge);
    
        // dog_1.dogPlayGames();
        dogPlayGames();
    
    </script>
    
  • 效果如下:
    在这里插入图片描述

2. 扩展运算符

2.1 简介(官网)

  • 什么是扩展运算符(…运算符)?
    就是展开语法 (Spread syntax), 可以在函数调用/数组构造时,将数组表达式或者 string 在语法层面展开;还可以在构造字面量对象时,将对象表达式按 key-value 的方式展开。(译者注: 字面量一般指 [1, 2, 3] 或者 {name: “mdn”} 这种简洁的构造方式)。
  • 参考官网:
    官网-展开语法.

2.2 应用例子

2.2.1 简单例子1

  • 代码如下:
    <script>
        function sum_1(x,y,z){
            console.log(arguments);
            return x + y + z;
        }
    
        const numbers = [1,2,3];
        let result_1 = sum_1(...numbers);//等价于 let result_1 = sum_1(1,2,3);
        console.log('result_1--->'+result_1);
    </script>
    
  • 效果如下:
    在这里插入图片描述

2.2.2 数组拷贝

  • 代码如下:
     var arr_1 = ['麦兜','贝塔','泡泡'];
     var arr_2 = [...arr_1]; //数组拷贝
     console.log(arr_2);
    
     arr_2.push('西瓜');
     console.log(arr_2);
    
  • 效果如下:
    在这里插入图片描述
  • 需要注意的是:
    • 扩展运算符拷贝的是,浅拷贝 (只遍历一层)
      在这里插入图片描述
    • 再来个例子说明:
      在这里插入图片描述

2.2.3 连接多个数组

  • 函数写法
     let dogs = ['麦兜','贝塔','泡泡'];
     let cats = ['猫咪1','猫咪2'];
    
     let pets_1 = dogs.concat(cats); //使用函数 concat 连接
    
  • 扩展运算符写法
    let pets_2 = [...dogs,...cats]; //使用扩展运算符连接
    
  • 效果如下:
    在这里插入图片描述

2.2.4 拷贝对象(多层和多维数组一样)

  • 代码如下:

    console.log('\n\n\n\n=============拷贝对象===========');
    
    let user_1 = {name:'小花',age:18};
    
    let user_2 = {...user_1};
    user_2.name = '小明';
    
    console.log(user_1);
    console.log(user_2);
    
    console.log('\n\n\n\n=============拷贝对象多层===========');
    
    let pserson_1 = {
        name:'小花',
        age:18,
        schoolInfo:{
            schoolId:1001,
            schoolName:'XXX第一高级中学'
        }
    }
    let person_2 = {...pserson_1};
    person_2.name = '小刚';
    person_2.schoolInfo.schoolName = '第二中学';
    
    console.log(pserson_1);
    console.log(person_2);
    
  • 效果如下:
    在这里插入图片描述

2.2.5 合并对象

  • 第一种写法:
    let school_1 = {name:'北京大学',address:'北京'};
    let school_2 = {...school_1,name:'清华大学',createDate:'1911'}; //在copy时,修改属性以及添加属性
    
    在这里插入图片描述
  • 第二种写法:
    var obj1 = { foo: "bar", x: 42 };
    var obj2 = { foo: "baz", y: 13 };
    
    var mergedObj = { ...obj1, ...obj2 };
    // 合并后的对象:{ foo: "baz", x: 42, y: 13 }
    
    在这里插入图片描述

2.2.6 关于展开对象(jsx)

  • 单独使用原生 js 的话,对象是不能通过扩展运算符进行展开的。
  • 可以通过 jsxbabel )来展开:
    • 代码如下:
      在这里插入图片描述
      <script type="text/babel">
          //1. 创建组件
          class DogComponent extends React.Component{
              render(){
      
                  const {dogName,dogAge,dogKind,dogDesc} = this.props;//对象的解构赋值
      
                  return(
                      <ul>
                          <li>姓名:{dogName}</li>
                          <li>年龄:{dogAge}</li>
                          <li>种类:{dogKind}</li>
                          <li>备注:{dogDesc}</li>
      
                          <li>备注-2{this.props.dogDesc}</li>
                      </ul>
                      
                  )
              }
          }
      
          //2. 定义对象
          const dog ={
              dogName:'麦兜',
              dogAge:3,
              dogKind:'边牧',
              dogDesc:'温柔、撒娇、粘人、偶尔调皮~'
          }
      
          //3. 渲染组件到页面
          ReactDOM.render(<DogComponent {...dog}/>,document.getElementById('dog'));
      
      </script>
      
    • 效果如下:
      在这里插入图片描述

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

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

相关文章

Python爬虫数据存哪里|数据存储到文件的几种方式

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 爬虫请求解析后的数据&#xff0c;需要保存下来&#xff0c;才能进行下一步的处理&#xff0c;一般保存数据的方式有如下几种&#xff1a; 文件&#xff1a;txt、csv、excel、json等&#xff0c;保存数据量小。 关系型数据库…

【代码分享不会用?玩转Git,跟上节奏 快上车!】

一、安装 Git 客户端 这里为大家提供了windows版的Git客户端以及安装图文详解文档。百度网盘&#xff1a; https://pan.baidu.com/s/1CDu0Ke199pt3Ysv-QtWObA 提取码&#xff1a;8888 如果过期了请留言联系我。 二、注册码云账号 打开码云网站&#xff1a;https://gitee.com…

在Git中将本地分支推送到远程仓库

这里很明显 我git云端只有一个master分支 然后 我在本地创建了一个develop分支 然后 现在我想将他放在云端 首先 我们要执行 git checkout -b develop将本地切换到 develop 分支上 因为我这里已经选择的就是了 就不需要了 然后我们执行 git push origin develop这样 刷新云…

基于Java+SpringBoot+Vue前后端分离小学生身体素质测评管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

高压放大器在机械制造领域的应用有哪些

在机械制造领域&#xff0c;高压放大器扮演着至关重要的角色。它们被广泛应用于各种机械设备和系统中&#xff0c;提供高压力、高精度的电信号放大。下面安泰电子将详细介绍高压放大器在机械制造领域的几个关键应用。 材料测试和强度试验 高压放大器广泛应用于材料测试和强度试…

手游联运平台都具备哪些功能?

手游联运平台是为了方便游戏发行商进行游戏发行和运营而提供的一种服务平台&#xff0c;具备多种功能以支持游戏在不同渠道上的推广和运营。以下是一些手游联运平台通常具备的功能&#xff1a; 多渠道发行&#xff1a;提供多种渠道&#xff0c;如应用商店、社交媒体、合作伙伴等…

回归与聚类算法系列②:线性回归

目录 1、定义与公式 2、应用场景 3、特征与目标的关系分析 线性回归的损失函数 为什么需要损失函数 损失函数 ⭐如何减少损失 4、优化算法 正规方程 梯度下降 优化动态图 偏导 正规方程和梯度下降比较 5、优化方法GD、SGD、SAG 6、⭐线性回归API 7、实例&#…

Deep Java Library(五)DJLServing java client demo

1.工具类HttpUtils package com.lihao.client; import java.io.IOException; import java.net.URI; import java.net.URLEncoder; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.charset.Standard…

2023 年高教社杯全国大学生数学建模竞赛题目 A 题 定日镜场的优化设计

A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统&#xff0c;是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站&#xff08;以下简称塔式电站&#xff09;收集太阳能的基…

WorkPlus Meet白板和文档共享功能上线,私有化视频会议全新升级

在迅猛发展的数字化时代&#xff0c;私有化视频会议成为企业高效沟通和协作的关键工具。WorkPlus Meet作为领先品牌&#xff0c;倾力打造私有化视频会议平台&#xff0c;并且最新上线了全新的白板和文档共享模块。本文将重点介绍WorkPlus Meet如何通过创新功能和稳定性&#xf…

金蝶迷路“云”丛中

​ 来源 | 科技新知 作者 | 樟稻 在云转型的浪潮中&#xff0c;金蝶曾一度领先用友数年&#xff0c;如今却在大模型上出现被逆转的迹象。 8月&#xff0c;金蝶推出自主研发的金蝶云苍穹GPT大模型&#xff0c;号称填补了国内第一个财务大模型的空白。而此前&#xff0c;用友…

【Axure教程】中继器网格拖动摆放

拖动摆放图标在移动端操作中扮演了重要的角色&#xff0c;允许用户自定义其设备的界面&#xff0c;使其更符合其偏好和使用习惯。这可以提高用户对设备的满意度和舒适度&#xff0c;将最常用的应用放置在易于访问的位置&#xff0c;从而提高使用效率。所以拖动摆放这类型操作不…

【区块链 | IPFS】IPFS节点搭建、文件上传、节点存储空间设置、节点上传文件chunk设置

一、创建ipfs节点 通过ipfs init在本地计算机建立一个IPFS节点 本文有些命令已经执行过了&#xff0c;就没有重新初始化。部分图片拷贝自先前文档&#xff0c;具体信息应以实物为准 ipfs init initializing IPFS node at /Users/CHY/.ipfs generating 2048-bit RSA keypair.…

Android Room数据库LiveData与ViewModel结合使用详解

Android Room是Android开发中的一个持久性库处理大量结构化数据的应用可极大地受益于在本地保留这些数据。最常见的使用场景是缓存相关的数据&#xff0c;这样一来&#xff0c;当设备无法访问网络时&#xff0c;用户仍然可以在离线状态下浏览该内容。 Room 持久性库在 SQLite …

使用vlookup函数将数据复制粘贴进筛选后的表中

1、待筛选表A 2、待复制的数据表B 3、筛选表A(性别男)。点击表A内的任意单元格&#xff0c;然后按下筛选的快捷键是ctrlshiftL 4、这是如果复制表B的奖金列&#xff0c;然后粘贴进表A的奖金列&#xff0c;出现这样情况 明显不对&#xff0c;而且少了一个(其实是453顺序粘贴到女…

uni-app 折叠自定义

uni-app的uni-collapse折叠组件样式修改 下面是修改后的样式 <uni-collapse accordion class"ze" v-model"isCollapse" click"toggleCollapse"><!-- 因为list默认带一条分隔线&#xff0c;所以使用 titleBorder"none" 取消…

windows打包uniapp应用p12证书和证书profile文件的制作方法

参考文章1&#xff1a; uniapp打包ios app所需的证书的制作流程-腾讯云开发者社区-腾讯云使用uniapp进行开发&#xff0c;既可以打包小程序&#xff0c;也可以打包app&#xff0c;假如需要打包app&#xff0c;需要p12格式的证书和一个证书profile文件&#xff0c;这个在uniapp…

算法通关村17关 | 盘点面试大热门之区间问题

1. 判断区间是否重叠 题目 LeetCode252 给定一个会议时间安排的数组intervals&#xff0c;每个会议时间都包括开始和结束时间&#xff0c;intervals[i] [start, endi],请你判断一个人是否能参加这里面的全部会议。 思路 遍历所有区间&#xff0c;判断下个区间开始是否小于上…

极轨气象卫星数据中的蝴蝶结(BOW-TIE)处理

李国春 极轨气象卫星多为多扫描单元&#xff08;比方10个SCAN&#xff09;与卫星轨道垂直方向并行扫描。这就像冬天下雪我们拿个笤帚扫院子&#xff0c;一边往前走一边往两边扫。由于极轨气象卫星扫描刈幅&#xff08;SWATH&#xff09;宽、探测距离越往边缘越长&#xff0c;加…

便捷高效的电能管理:利用PLC远程控制网关实时监控配电箱

配电箱是工业生产过程中必不可少的设备&#xff0c;其中的PLC&#xff08;可编程逻辑控制器&#xff09;是实现自动化控制的重要组成部分。为了实时监控配电箱的数据&#xff0c;并进行远程调试上下载与管理控制&#xff0c;我们可以使用PLC数据采集与远程控制网关。 PLC数据采…