JS解构赋值:

数组解构:

将数组的单元值快速批量的赋值给一系列变量的简洁语法

变量的顺序对应数组单元值的位置依次进行赋值操作

 const arr = [100,60,80];//数组解构 赋值const [max,min,avg] = arr;//const [max,min,avg] = [100,60,80];// const max = arr[0];// const min = arr[1];// const avg = arr[2];console.log(max);console.log(min);console.log(avg);

Js 前面有两哪种情况需要加分号的?

  • 立即执行函数

  • 数组解构

变量多 单元值少的情况:

变量的数量大于单元值数量时,多余的变量将被赋值为 undefined

 const [a,b,c,d] = [1,2,3];console.log(a);//1console.log(b);//2console.log(c);//3console.log(d);//undefined
变量少 单元值多的情况:
const [a,b] = [1,2,3]console.log(a);//1console.log(b);//2
利用剩余参数解决变量少 单元值多的情况:
const [a,b,...c] = [1,2,3,4];console.log(a);//1console.log(b);//2console.log(c);//Array:[3,4]真数组 剩余参数返回的还是一个数组
防止有undefined传递单元值的情况,可以设置默认值:
const [a=0,b=0] = [1,2]console.log(a);//1console.log(b);//2const [a=0,b=0] = []console.log(a);//0console.log(b);//0
按需导入,忽略某些返回值:
const [a,,c,d] = ['小米','华为','格力','空调'];console.log(a);//小米console.log(c);//格力console.log(d);//空调
支持多维数组的结构:
 // const arr = [1,2,[3,4]];// console.log(arr[0]);//1// console.log(arr[1]);//2// console.log(arr[2]);//[3,4]// console.log(arr[2][0]);//3//支持多维数组的结构:// const [a,b,c] = [1,2,[3,4]];// console.log(a);//1// console.log(b);//2// console.log(c);//3,4const [a,b,[c,d]] = [1,2,[3,4]];console.log(a);//1console.log(b);//2console.log(c);//3console.log(d);//4

对象解构:

对象解构是将对象属性和方法快速批量赋值给一系列变量的简洁语法

1. 基本语法:

  1. 赋值运算符 = 左侧的 {} 用于批量声明变量,右侧对象的属性值将被赋值给左侧的变量

  2. 对象属性的值将被赋值给与属性名相同的变量

  3. 注意解构的变量名不要和外面的变量名冲突否则报错

  4. 对象中找不到与变量名一致的属性时变量值为 undefined

// const obj = {//     uname:'pink老师',//     age:18// }// obj.uname// 要求属性名和变量名一致//对象解构的变量名可以重新改名const {uname:username,age} = {uname:'pink老师',age:18};console.log(username);//pink老师console.log(age);//18//等价于 const uname = obj.uname

2.数组对象解构

//2.解构数组对象:const pig = [{uname:'peiqi',age:18}]const [{uname,age}] = pig;console.log(uname);//peiqiconsole.log(age);//18

3.多级对象解构:

 const pig = {name:'佩奇',family:{mother:'🐖妈妈',father:'🐖爸爸',sister:'乔治'},age:6}//多级对象解构const {name,family:{mother,father,sister},age} = pig;console.log(name);//佩奇console.log(mother);//妈妈console.log(father);//爸爸console.log(sister);//乔治console.log(age);//6

4.多级数组解构:

const person = [{name:'佩奇',family:{mother:'🐖妈妈',father:'🐖爸爸',sister:'乔治'},age:6}]const [{name,family:{mother,father,sister},age}] = person;console.log(name);//佩奇console.log(mother);//🐖妈妈console.log(father);//🐖爸爸console.log(sister);//乔治console.log(age);//6

练习:

<script>// 1. 这是后台传递过来的数据const msg = {"code": 200,"msg": "获取新闻列表成功","data": [{"id": 1,"title": "5G商用自己,三大运用商收入下降","count": 58},{"id": 2,"title": "国际媒体头条速览","count": 56},{"id": 3,"title": "乌克兰和俄罗斯持续冲突","count": 1669},]}// 需求1: 请将以上msg对象  采用对象解构的方式 只选出  data 方面后面使用渲染页面// const {data} = msg;// console.log(data);// 需求2: 上面msg是后台传递过来的数据,我们需要把data选出当做参数传递给 函数//因为:const {data} = arr//所以{data}等价于arr//可以直接带入{data}// function render({data}){//     console.log(data);// }// render(msg);// 需求3, 为了防止msg里面的data名字混淆,要求渲染函数里面的数据名改为 myDatafunction render({data:myDada}){console.log(myDada);}render(msg);

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

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

相关文章

Web 应用程序性能测试核心步骤

通常大家做web 应用程序的时候会有哪些操作呢&#xff1f;今天就来看看常见的web 应用程序的常见操作。 Web 应用程序性能测试核心步骤 1&#xff1a;识别测试环境。确定物理测试环境和生产环境&#xff0c;以及测试团队可用的工具和资源。物理环境包括硬件、软件和网络配置。…

决策单调性 => 二分队列:P3515

https://www.luogu.com.cn/problem/P3515 p i max ⁡ j 1 n ( a j ∣ i − j ∣ ) − a i p_i\max_{j1}^n(a_j\sqrt {|i-j|})-a_i pi​maxj1n​(aj​∣i−j∣ ​)−ai​&#xff0c; p p p 之间独立&#xff0c;直接拆绝对值&#xff0c;到时候reverse再做一遍即可。 拆绝对…

c语言单向链表

看如下代码&#xff0c;这是一个完整的可运行的c源文件&#xff0c;要注意的点&#xff1a; c语言程序运行不一定需要头文件NULL其实是 (void*)0&#xff0c;把指针赋值成(void*)0,就是防止程序员不想该指针被引用的时候被引用&#xff0c;引用地址为0的值程序会引起系统中断&…

PyQt6 QSpacerItem弹簧控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

00后卷王的自述,我难道真的很卷?

前言 前段时间去面试了一个公司&#xff0c;成功拿到了offer&#xff0c;薪资也从12k涨到了18k&#xff0c;对于工作都还没两年的我来说&#xff0c;还是比较满意的&#xff0c;毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王&#xff0c;感觉自己年轻&#xff…

自动化访客互动:提升网站效益与用户体验的关键优势

在激烈的市场竞争环境中&#xff0c;想抢占市场&#xff0c;获得收益并不容易。每一个订单的完成都要经过一定的销售周期&#xff0c;所以企业可以根据销售周期每个阶段的特点进行优化&#xff0c;留住客户。其中&#xff0c;企业可以在与客户在线互动的过程中&#xff0c;让互…

ShardingSphere-JDBC 和 ShardingSphere-Proxy,你选择哪一个

参考文章 总结&#xff1a; 只使用Java&#xff0c;ShardingSphere-JDBC更好有异构语言的话&#xff0c;ShardingSphere-Proxy 更好混用也挺香

Spring Boot 默认缓存

Spring 提供了三个常用的注解&#xff1a;Cacheable、CachePut 和 CacheEvict 一、Cacheable&#xff0c;CachePut&#xff0c;CacheEvict区别 当使用缓存时&#xff0c;Spring 提供了三个常用的注解&#xff1a;Cacheable、CachePut 和 CacheEvict&#xff0c;它们的区别如下…

Balking(犹豫)设计模式

多个线程监控某个共享变量&#xff0c;A线程监控到共享变量发生变化后即将触发某个动作&#xff0c;但此时发现有另外一个线程B已经针对该变量的变化开始了行动&#xff0c;因此A便放弃了准备开始的工作&#xff0c;我们把这样的线程交互称为Balking&#xff08;犹豫&#xff0…

小红书商品详情API:电商助力

一、引言 随着互联网的普及和电商行业的快速发展&#xff0c;消费者对于商品信息的获取方式也在不断变化。小红书作为一款以内容分享为主的社交电商平台&#xff0c;吸引了大量用户。为了满足用户对商品信息的快速获取需求&#xff0c;小红书提供了商品详情API接口。本文将探讨…

Stream流中anyMatch和allMatch和noneMatch的区别

1.anyMatch 两个集合的交集 Testpublic void a17() {List<User> list new ArrayList<>();list.add(new User("张三", 12, "南京"));list.add(new User("李四", 13, "北京"));list.add(new User("王五", 14, …

python调用属性一样调用方法property

1 python调用属性一样调用方法property python通过property达到像调用属性一样来调用方法。 存在两种方式&#xff1a; &#xff08;1&#xff09; 类属性&#xff1a;在类中定义值为property对象的类属性。 &#xff08;2&#xff09; 装饰器&#xff1a;在方法上应用装饰…

Web测试、APP测试常用技巧(错过你一定会后悔)

1. web元素定位七种方式 优先使用的6种 find_element_by_id (返回一个元素)find_element(s)_by_class_name (根据类名获取元素列表)find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表)find_element(s)_by_link_text (根据连接文本获取元素列表)find_…

linux环境安装可操作图库语言Gremlin的图框架HugeGraph

原创/朱季谦 若你还没接触过图数据库&#xff0c;可能看到这个概念时&#xff0c;会比较蒙蔽。 图是什么&#xff1f;图数据库又是什么&#xff1f; 首先&#xff0c;在数据结构中&#xff0c;图是一种由顶点&#xff08;vertex&#xff09;集合及顶点间关系集合组成的一种非…

常见数据结构

数据结构概述 数据结构是计算机底层存储、组织数据的方式&#xff0c;是指数据相互之间是以什么方式排列在一起的。 通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。 栈 栈数据结构的执行特点&#xff1a;后进先出&#xff0c;先进后出。 栈模型…

探索灵活性与可维护性的利器:策略(Strategy)模式详解

目录 ​编辑 1. 策略模式概述&#xff1a; 2. 主要角色&#xff1a; 3. 实例场景&#xff1a; 4. 具体实现步骤&#xff1a; 步骤一&#xff1a;定义策略接口 5. 使用策略模式的客户端代码&#xff1a; 总结&#xff1a; 我的其他博客 1. 策略模式概述&#xff1a; 策…

python【matplotlib】鼠标拖动滚动缩放坐标范围和拖动图例共存

背景 根据前面的博文&#xff1a; python【matplotlib】画图鼠标缩放拖动动态改变坐标轴范围 和Python【Matplotlib】图例可拖动改变位置 两个博文&#xff0c;博主考虑了一下&#xff0c;如何将两者的功能结合起来&#xff0c;让二者共存。 只需根据Python【Matplotlib】鼠标…

域名、DNS 和 IP是什么?网站搭建的必备知识,一文搞定

在正式进行WordPress站点搭建前&#xff0c;有一些最基础的知识是必备的&#xff0c;这篇文章会详细介绍给大家。 一、域名、DNS和IP的关系 域名、DNS和IP是互联网上的三个重要的概念&#xff0c;它们之间有着密切的联系&#xff0c;也影响着我们访问网站的方式和效果。接下来…

JNA实现JAVA调用C/C++动态库

1.JNA JNA全称Java Native Access&#xff0c;是一个建立在经典的JNI技术之上的Java开源框架&#xff08;https://github.com/twall/jna&#xff09;。JNA提供一组Java工具类用于在运行期动态访问系统本地库&#xff08;native library&#xff1a;如Window的dll&#xff09;而…

5.1 C++11强类型枚举

一、C枚举的缺陷 1.类型冲突 枚举值和类型都是全局可见的&#xff0c; 与正常C的namespace、类等都是格格不入的&#xff0c;并且还容易导致冲突。 enum Type { General, Light, Medium, Heavy }; enum Category { General, Pistol, MachineGun, Cannon }; 如果在相同作用域…