JavaScript:解构赋值【对象】
在JavaScript编程中,解构赋值是一种强大的技术,它允许我们从数组或对象中快速提取数据并赋值给变量。在本文中,我们将重点介绍对象解构,解释如何利用它从对象中提取数据,以通俗易懂的方式帮助你掌握这一技巧。
1. 什么是解构赋值?
解构赋值是一种从复杂数据结构中提取数据的方式,然后将提取的值赋给变量。对象解构允许我们按照对象的结构来赋值,使代码更加简洁明了。
2. 基本的对象解构
通过使用花括号 {},我们可以从一个对象中提取特定属性的值并赋给变量。
const person = {firstName: "John",lastName: "Doe",age: 30
};const { firstName, lastName, age } = person;console.log(firstName); // 输出:John
console.log(lastName); // 输出:Doe
console.log(age); // 输出:30
3. 别名赋值
我们可以使用冒号 : 为提取的属性指定别名。
const person = {firstName: "John",lastName: "Doe",age: 30
};const { firstName: fName, lastName: lName, age: personAge } = person;console.log(fName); // 输出:John
console.log(lName); // 输出:Doe
console.log(personAge); // 输出:30
4. 默认值
如果对象中没有某个属性,我们可以为提取的变量指定默认值。
const person = {firstName: "John",lastName: "Doe"
};const { firstName, lastName, age = 25 } = person;console.log(firstName); // 输出:John
console.log(lastName); // 输出:Doe
console.log(age); // 输出:25
5. 嵌套对象解构
对象解构也适用于嵌套的对象结构。
const person = {name: {first: "John",last: "Doe"},age: 30
};const { name: { first, last }, age } = person;console.log(first); // 输出:John
console.log(last); // 输出:Doe
console.log(age); // 输出:30
6. 使用Rest语法省略属性
const person = {firstName: "John",lastName: "Doe",age: 30
};const { firstName, ...rest } = person;console.log(firstName); // 输出:John
console.log(rest); // 输出:{ lastName: 'Doe', age: 30 }
对象解构赋值是一项强大且实用的技术,可以帮助我们从对象中提取数据并将其赋值给变量,从而简化代码并提高可读性。通过使用解构赋值,我们可以更轻松地访问和操作对象的属性,使代码更加简洁明了。理解并熟练运用对象解构,将为你的JavaScript编程增添便利和效率,让你在处理复杂对象时游刃有余。继续学习和实践,你将成为一名精通解构赋值的JavaScript大师!
相关文章:
JavaScript:解构赋值【对象】
在JavaScript编程中,解构赋值是一种强大的技术,它允许我们从数组或对象中快速提取数据并赋值给变量。在本文中,我们将重点介绍对象解构,解释如何利用它从对象中提取数据,以通俗易懂的方式帮助你掌握这一技巧。 1. 什么…...
微服务与Nacos概述-2
微服务间消息传递 微服务是一种软件开发架构,它将一个大型应用程序拆分为一系列小型、独立的服务。每个服务都可以独立开发、部署和扩展,并通过轻量级的通信机制进行交互。 应用开发 common模块中包含服务提供者和服务消费者共享的内容 provider模块是…...
解决MySQL与Redis缓存一致性的问题
背景 考试系统中,教师会在后台发布一场考试,考试会存储在MySQL和Redis里面,考试有时候是会出错的,我们需要后台修改,如果多个教师在后台并发修改(概率不大),可能会出现数据库缓存不…...
王道机组难题分析
第四章 指令系统 大端方式:就是高地址存放高位, LSB的意思是:全称为Least Significant Bit,在二进制数中意为最低有效位 MSB的意思是:全称为Most Significant Bit,在二进制数中属于最高有效位 操作数可以理…...
数学建模(一)前继概念
课程推荐:数学建模老哥_哔哩哔哩_bilibili 目录 一、什么是数学建模? 二、数学建模的一般步骤 三、数学建模赛题类型 1.预测型 2. 评价类 3.机理分析类 4. 优化类 一、什么是数学建模? 数学建模是利用数学方法解决实际问题的一种实践。…...
C# 随机法求解线性规划问题 蒙特卡洛
线性规划问题: max3x12x2 x12x2<5 2x1x2<4 4x13x2<9 x1>0 x2>0 正确的结果:x11.5; x21, max z6.5 Random random1 new Random(DateTime.Now.Millisecond);Random random2 new Random(DateTime.Now.Millisecond*DateTime.Now.Millisecond);double max-9999,x1…...
nginx文档合集
1、nginx documentation 2、14个Nginx的核心功能点,建议收藏! 3、Nginx之负载均衡模块 ngx_http_upstream_module_途径日暮不赏丶的博客-CSDN博客 4、tomcat redis session共享 https://github.com/redisson/redisson/tree/master/redisson-tomcat...
什么是BFC?它有什么作用?如何创建BFC?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是BFC⭐ BFC的作用⭐ 创建BFC的方法⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web…...
svn文章四:版本控制策略 - 穿越时光机:SVN版本控制进阶技巧
文章四:版本控制策略 - “穿越时光机:SVN版本控制进阶技巧” 概述:版本控制是SVN的核心功能。本文将深入研究SVN版本控制的进阶技巧,包括标签管理、历史查看、版本回退等,让您成为版本控制的高手。 1. 引言 版本控制…...
SpringBoot+Mybatis-Plus实现增删改查超详细步骤
目录 一、介绍 二、前期准备工作 (一) 创建springboot项目和创建数据库 三、项目配置 (一)pom.xl导入相关依赖 1.导入依赖 (二)yml文件中配置连接数据库 2.配置yml文件 四、代码的编写 数据库展…...
Qt应用开发(基础篇)——拆分器窗口 QSplitter QSplitterHandle
一、前言 QSplitter继承于QFrame,QFrame继承于QWidget,是Qt的一个部件容器工具类。 框架类QFrame介绍 QSplitter拆分器,用户通过拖动子部件之间的边界来控制子部件的大小,在应用开发中数据分模块展示、图片展示等场景下使用。 二、…...
屏幕尺寸单位 px、em、rem区别
1、px是屏幕设备物理上能显示出的最小的一个点,这个点不是固定宽度的,不同设备上点的长宽、比例有可能会不同。假设:1号显示器上1px宽1毫米,但2号显示器1px宽两毫米,那么定义一个div宽度为100px,1号显示器上…...
yo!这里是STL::list类简单模拟实现
目录 前言 重要接口实现 框架 默认成员函数 迭代器(重点) 1.引言 2.list迭代器类实现 3.list类中调用实现 增删查改 后记 前言 我们知道,stl中的vector对应数据结构中的顺序表,string类对应字符串,而今天要…...
小程序商城开发制作
当开发一个商城小程序时,费用是一个非常重要的考虑因素。然而,准确回答这个问题是有一定困难的,因为开发商城小程序的费用取决于多个因素。以下是一些可能影响价格的主要因素: 1. 功能需求:商城小程序的复杂程度和功能…...
并发编程面试题2
并发编程面试题2 一、AQS高频问题: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state…...
关于eclipse导入部署具有增删改查的项目
目录 前言:当我们刚刚进入公司的第一步就是去部署当前公司的项目,本博客就是详细介绍怎么去部署当前公司的项目。 一,开发工具: 二,具体步骤: 2.1导入公司的项目 打开eclipse开发工具 2.2配置当前的环…...
c++日志工具之——log4cpp
1、log4cpp概述 Log4cpp是一个开源的C类库,它提供了C程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试; 可扩展的、多种方式记录日志,包括命令行、文件、回卷文件、内…...
ES索引重建reindex详解
目录 一、使用场景 二、reindex介绍 三、使用手册 1、覆盖更新 2、创建丢失的文档并更新旧版本的文档 3、仅创建丢失的文档 4、冲突处理 5、source中添加查询条件 6、source中包含多个源索引 7、限制处理的记录数 8、从远程ES集群中重建索引 9、提取随机子集 10、…...
前沿分享-中距离射频取电
目前来看,微能源有四种技术路线,一是环境光采集、温差转换采集、无线射频采集和振动能量采集。 无线射频微能源是在通信设备通信过程中自然产生的,可以通过射频能量芯片实现无线射频取电,能瞬间大功率储电和安全驱动负载。 通过射…...
UnrealEngine - 网络同步之连接篇
1 连接过程 - 握手 传统的 C/S 架构下,Client 和 Server 通常会建立一条抽象的 Connection,用来进行两端的通信。 UE 的官方文档中提供了 Client 连接到 Server 的示例 ,简单来说分为如下几步: 打包构建好 Client 和 Server 进程…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果); 3.去掉首尾空格...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
