ES6解构

2023-11-08

ES6解构

1、解构对象案例

                var obj = {a:"1",b:"2"}
                const {a,b}=obj
                console.log(a)//1
                console.log(b)//2
                var obj = {a:"1",b:"2"}
                const {c,b}=obj
                console.log(c)//undefined
                console.log(b)//2
                var obj = {a:"1",b:"2"}
                const {c="6",b}=obj
                console.log(c)//6
                console.log(b)//2
                var obj = {a:"1",b:"2",c:"3",d:"4"}
                const {a,b,...z} = obj
                console.log(a)//1
                console.log(b)//2
                console.log(z)//{c:3,d:4}
                console.log(z.c+"+++"+z.d)//3+++4

2、解构方法案例

                var obj = {
                    hello:function(){console.log("aaa")}
                    }
                const {hello}=obj
                hello()//控制台输出字符串aaa

3、解构数组案例

                var arr = ["hello","world"]
                var arr1 = ["a"]
                var arr2 = ["bb"]
                const res=[...arr,...arr1,...arr2]
                console.log(res)//["hello","world","a","bb"]
                var a=[{aa:1,bb:"2"},{cc:"3",dd:"4"}]
                var b=[{ee:5,ff:"6"},{gg:"7",hh:"8"}]
                const [c,...d]=[...a,...b]
                console.log(JSON.stringify(c))
                console.log(JSON.stringify(d))

在这里插入图片描述

注意:解构数组必须用数组承接

                var a=[{aa:1,bb:"2"},{cc:"3",dd:"4"}]
                var b=[{ee:1,ff:"2"},{gg:"3",hh:"4"}]
                console.log(JSON.stringify(a))
                console.log(JSON.stringify(b))
                console.log(JSON.stringify([...a,...b]))
                console.log(JSON.stringify(...a))//在json.stringify下打印异常
                console.log(JSON.stringify([...a]))

在这里插入图片描述

扩展操作符只能用于可迭代对象,非可迭代对象会报错

补充:以上都是单层解构,如果是嵌套对象解构必须写成嵌套格式,比如:

let arr = ['a','b',['c','d']]
let [name,,[other]] = arr
console.log(name)//a
console.log(other)//[c,d]
arr[2][0] = 123
console.log(other)//[c,d]
//解构的最里层值必须是单层对象
let obj = {"a":1,"b":{"c":2,"d":{"e":111,"f":222}}}
let {a,b:{c,d}} = obj
console.log(a)//1
console.log(b)//undefined
console.log(c)//2
console.log(d) //{"e":111,"f":222}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6解构 的相关文章

  • es6数组去重+找出去重的个数

    本Markdown编辑器使用 StackEdit 6 修改而来 用它写博客 将会带来全新的体验哦 分享es3去重 找出重复个数跟es6的 Array prototype unique3 function var res var json f
  • Ant Design Pro从零到一(Mock使用)

    认识Mock 学到这里就算是开始踏入AntD的门 然后我们还得学习一下常用的一些操作 例如Mock 针对与Mock他大致就是用来模拟数据的 为什么会有它的出现呢 因为现在前后端开发基本是分离的 但是数据结构一般都会先定好 在日常开发中 为了
  • js获取数组中最大最小值及对应索引值(下标)

    1 使用原生Js实现该功能 主要是通过循环实现 getMaxMin data key gt if data return false let maxIndex 0 let minIndex 0 let maxNum data 0 key 0
  • JS数组与对象数据格式互相转换

    JS数组与对象数据格式互相转换 一 二维数组转数组对象 开发过程中后端传过来的数据和自己需要的数据格式不统一 需要数据格式的转化 let twoArr 20 30 40 30 40 50 40 50 60 let keys name1 na
  • js执行时序 宏任务和微任务

    宏任务一般是 包括整体代码script setTimeout setInterval I O UI render 微任务主要是 Promise Object observe MutationObserver process nextTick
  • $nextTick的作用和使用场景

    nextTick的作用和使用场景 vue中的nextTick主要用于处理数据动态变化后 DOM还未及时更新的问题 用nextTick就可以获取数据更新后最新DOM的变化 适用场景 第一种 有时需要根据数据动态的为页面某些dom元素添加事件
  • 【Javascript】数组拼接的两种方法

    数组拼接的两种方法 1 改变原数组 1 push 扩展运算法 1 不改变原数组 1 concat 2 扩展运算符 1 改变原数组 1 push 扩展运算法 利用push搭配扩展运算符的方法 arr2经过扩展运算符 由 3 4 5 变成3 4
  • Vue 报错:Duplicate keys detected

    Vue 报错 Duplicate keys detected object Object This may cause an update error 在vue 组件中使用 v for 并且加了key 值 如果key 值不唯一 就会出现这样
  • Map 转化为数组

    含义 Map 数据结构类似于对象 也是键值对的集合 但是键的范围不限于字符串 各种类型的值 包括对象 都可以当做键 Map 结构提供了 值 值 的对应 是更完善的 Hash 结构实现 Map 可以作为构造函数 新建 Map new Map
  • ES6入门

    一 let和const命令 1 let命令 类似于var 但是只在let所在的代码块有效 不存在变量提升 即一定要先声明后使用 暂时性死区 待理解 不允许重复声明 2 块级作用域 内层不影响外层 3 const命令 const声明一个常量
  • JS ES6 单链表2种插入尾部方式

    一种是类里加一个指向尾部最后一个元素指针 通过他添加一个元素到队列最后 一种是每次增一个元素都从头开始遍历直到最后一个 然后添加 打开出来有单链表结构是一样的 除了上面的 多了一个队尾指针 class Node 单个结点 data next
  • Element ui中menu组件(el-menu/el-menu-item/el-submenu/template) 层级结构和用法

    此篇文章写下的时间是2020年 所以如今Element UI都更新了不知道多少版了 肯定会有些许变化 请勿完全照搬照抄 虽然可能这部分代码没什么大的变动 但还是要以官方文档为准 此文仅仅是借鉴 理解具体思路 然后再按照官方的例子来应用到自己
  • 第一节:数据类型——null,undefined和布尔值

    JavaScript 的数据类型 共有六种 ES6 又新增了第七种 Symbol 类型的值 数值 number 整数和小数 比如1和3 14 字符串 string 文本 比如Hello World 布尔值 boolean 表示真伪的两个特殊
  • Object.entries()方法使用详解

    一 概述 对象的数据处理方法 我们熟知的有很多 比如Object keys Object values for in等 本文将其与其它常见使用方法进行对比 详细解析其特性 二 对比 for in Object entries 方法的优势 1
  • ES6之Map和Set有什么不同?

    一 Map 1 定义 Map是ES6提供的一种新的数据结构 它是键值对的集合 类似于对象 但是键的范围不限于字符串 各种类型的值都可以当做键 Object结构是 字符串 值 的对应 Map结构则是 值 值 的对应 2 代码示例 Map本身是
  • 多维数组变成一维数组

    这个问题来源于一个朋友曾经问过我的问题 当时是一个二维数组变成一维数组 后面我想整理一下 整理一个多维 并且是不定维的数组 一 二维数组变成一维数组 1 遍历数组 将元素一个个放入新数组 结果 如果元素不是数组 将会报错 下面是改良版 这样
  • 【Bun1.0】使用 Bun.js 构建快速、可靠和安全的 JavaScript 应用程序

    bun js Bun 是一个现代的JavaScript运行环境 如Node Deno 主要特性如下 启动速度快 更高的性能 完整的工具 打包器 转码器 包管理 官网 https bun sh 优点 与传统的 Node js 不同 Bun j
  • 138-139-----JS基础-----二级菜单-完成基本功能、过渡效果

    一 代码 这两节的代码还是有点的难度的 有这样的需求时 按照类似的接口去做即可 不一定要和他的需求完全一样 因为我看他的需求好像点开另一个 已经打开的选项会被自动关闭 这样感觉不好 因为可能用户有时想要看到所有的选项的要求
  • VUE实践优化:轮询机制与代码结构升级

    前言 我们之前探讨过 对于包含处理状态的表格数据 我们可以通过轮询的方式进行处理 轮询更新进度条 JavaScript中的定时器和异步编程技巧 然而 当我们离开页面时 定时器仍会继续触发请求 这会造成资源的浪费 因为返回的数据并没有被渲染出
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query

随机推荐

  • Fragment详解

    Fragment有自己的生命周期 Fragment依赖于Activity Fragment通过getActivity 可以获取所在的Activity Activity通过FragmentManager的findFragmentById 或f
  • QT5.15以及QT VS TOOL安装教程

    QT5 15以及QT VS TOOL安装教程 1 QT5 15下载安装教程 点击这个链接 https download qt io 在official release online installers目录下选择exe文件下载windows
  • vue重新进页面重新加载mounted或者created中的内容

    vue的项目中 如果再次进入当前页面需要重新加载mounted方法可以使用 activated 这个方法内就可以执行需要进入页面重新加载的方法来替代mounted或者created方法 这样就可以满足不重新加载页面就可以直接将方法重新执行一
  • 打印机错误0x00000bc4的解决办法

    共享打印机在使用过程中难免会出现一些问题 比如连接共享打印机错误 提示代码0x00000bc4 这该如何解决 共享打印机出现问题是件非常麻烦的事 下面就来看看小编整理的解决办法吧 Win11连接共享打印机错误0x00000bc4解决方法 1
  • RabbitMQ:work结构

    gt 只需要在消费者端 添加Qos能力以及更改为手动ack即可让消费者 根据自己的能力去消费指定的消息 而不是默认情况下由RabbitMQ平均分配了 生产者不变 正常发布消息到默认的exchange gt 消费者指定Qoa和手动ack 生产
  • 2023Web前端面试题及答案(一)

    答案仅供参考 每人的理解不一样 文章目录 1 简单说一说事件流原理 事件流 1 事件流是指页面 接收事件的顺序 2 假设页面中的元素都具备相同的事件 并且这些个元素之间是相互嵌套的 关系 3 那么在触发一个元素的事件时候 会触发其他的元素
  • 华为od机考真题-HJ105-记负均正II(较难)

    非负数缓存 data lst 负数个数 count 0 while 1 try data int input if data gt 0 data lst append
  • 卷积核大小不一样的卷积

    这种不是33而是51的 参考这个https blog csdn net qq 37541097 article details 102926037 也就是说把中间写成 3 5 就可以了
  • Open3D:Win10 + VS2017配置Open3D(C++、python)

    累了就要打游戏 2020 08 25 15 13 10 3350 收藏 25 分类专栏 Open3D 文章标签 点云 Open3D C 版权 Open3D 专栏收录该内容 5 篇文章1 订阅 订阅专栏 20200825 今天七夕 呱呱呱 O
  • 苹果开发者账号申请教程

    只有苹果开发者账号才能上架App Store 苹果开发者需要年费 是苹果公司收的 公司 政府和企业账号申请比较复杂 如果不想麻烦 或没有visa银行卡 可以联系他们技术代申请 如果只是安装ios应用到自己手机测试 现在只需要注册一个普通的苹
  • CSDN自带编辑器语法

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • FlatBuffers使用简介

    tools flatbuffers opensource 概述 Google在今年6月份发布了跨平台序列化工具FlatBuffers 提供了C Java Go C 接口支持 这是一个注重性能和资源使用的序列化类库 相较于Protocol B
  • POI高级使用法则

    各位兄台 想必经过昨日好梦 早已精神饱满 请允许小编接听上回 讲解POI进阶功法 昨日奇闻 POI搞定电子表格 我们经过昨日的学习 懂得了POI基本的读写操作 今日让我们进一步看一下POI的高级使用方法 壹 我们知道对于Excel是含有03
  • 论文笔记:Mystique: Efficient Conversions for Zero-Knowledge Proofs with Applications to Machine Learnin

    论文笔记 Mystique Efficient Conversions for Zero Knowledge Proofs with Applications to Machine Learning 论文介绍 ZK在人工智能上的应用讨论 现
  • Sqlite3 导出/导入SQL语句

    前言 Sqlite3 提供了较轻便的数据库操作 速度非常快 也比较稳定 在嵌入式产品中用的非常广泛 但嵌入式产品往往由于不稳定性因素非常多 备份是必不可少的 直接拷贝 db 文件并不是太好的主意 所以引出本文所要讲的主题 Sqlite3 导
  • QAC的CLI 转载文章

    2 静态分析执行 为了方便后续将鸿蒙的静态分析过程部署到持续集成平台上 本文以命令行的方式进行静态分析操作的演示 具体步骤如下 创建QAC工程 命令如下 qacli admin qaf project config qaf project
  • pycharm编写的时候出现的提示框如何关闭

    pycharm编写的时候出现的提示框如何关闭 问题描述 pycharm编写的时候出现的提示框如何关闭 问题原因 错误分析 这个要去Pycharm的 setting里面设置一下 解决方法 pycharm提示框关闭方法 点击settings进入
  • Python描述符(descriptor)解密 属性(property)、以及装饰器(decorator)

    Python描述符 descriptor 解密 慕容老匹夫 2014 年 3 月 27 日 1 条评论 标签 descriptor Python 描述符 25 本文由 极客范 慕容老匹夫 翻译自 Chris Beaumont 欢迎加入极客翻
  • 计算机考研复试汇总

    一 中英文面试 1 为什么考研究生呢 why do you take the postguaduate entrance exanmination 我认为有一下几点 第一 我的本科专业就是计算机科学与技术 已经学习了4年计算机培养出浓厚的兴
  • ES6解构

    ES6解构 1 解构对象案例 var obj a 1 b 2 const a b obj console log a 1 console log b 2 var obj a 1 b 2 const c b obj console log c