04 ES6中对象的简写

在 ES6 中,对象字面量的书写方式进行了一些简化,使得对象的创建更加简洁。以下是 ES6 中对象简写的几种形式:

  1. 属性值缩写
    当对象的属性名和属性值的变量名相同时,可以省略属性值,只写属性名。

    // ES5
    const name = 'Alice';
    const age = 25;
    const person = {name: name,age: age
    };// ES6
    const { name, age } = { name: 'Alice', age: 25 };
    

    在上述 ES6 的例子中,nameage 直接作为属性名,它们的值由解构赋值提供。

  2. 方法定义简化
    对象中的方法定义不再需要使用 function 关键字,直接写方法名和函数体即可。

    // ES5
    const person = {sayHello: function() {console.log('Hello!');}
    };// ES6
    const person = {sayHello() {console.log('Hello!');}
    };
    
  3. 计算属性名
    如果属性名是动态生成的,可以使用方括号 [] 来表示。

    const key = 'age';
    const person = {[key]: 25
    };
    // person 对象中将有一个属性名为 'age' 的属性,其值为 25
    
  4. 对象扩展运算符
    使用三个点 ... 可以合并多个对象,或将对象中的属性复制到新对象中。

    const person = { name: 'Alice' };
    const details = { age: 25 };
    const personWithDetails = { ...person, ...details };
    // personWithDetails: { name: 'Alice', age: 25 }
    
  5. null 值合并操作符
    如果对象的某个属性可能是 nullundefined,可以使用 ??= 操作符提供一个默认值。

    const config = {title: null,author: 'Unknown'
    };const defaultConfig = {title: 'Default Title',author: 'Default Author'
    };// 使用 null 值合并操作符为 config 提供默认值
    const finalConfig = {...config,title: config.title ?? defaultConfig.title,author: config.author ?? defaultConfig.author
    };
    // 如果 config.title 是 null,finalConfig.title 将是 'Default Title'
    
  6. 属性访问的简写
    如果访问的对象属性名和变量名相同,可以省略属性名。

    const name = 'Alice';
    const person = {name
    };console.log(person.name); // 输出 'Alice'
    

这些简写特性使得在 ES6 中创建和操作对象更加方便和直观。

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

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

相关文章

如何在Linux上安装配置RabbitMQ消息队列

RabbitMQ是一种开源的消息中间件,基于AMQP协议实现。它可以在分布式系统中传递消息,并提供了可靠的消息传递机制。RabbitMQ使用一种称为"消息队列"的方式来管理消息的发送和接收。它的主要特性包括: 可靠性:RabbitMQ使用…

Zabbix监控案例

文章目录 一、监控linux TCP连接状态TCP端口的十一种连接状态自定义监控项监控示例二、监控模板监控tcp连接监控nginx 一、监控linux TCP连接状态 TCP,全称Transfer Control Protocol,中文名为传输控制协议,它工作在OSI的传输层,…

3.Fabric系统架构、网络拓扑图、交易流程

Hyperledger Fabric系统架构 Fabric网络拓扑图 Fabric交易流程 多通道

面试官视角:Java高级面试中的考察与评判

1. 面试前的准备 1.1 明确岗位需求 在面试前,面试官需要对岗位需求有清晰的认识,明确需要考察的技术点和能力。 1.2 设计面试问题 设计针对性强、覆盖面广的面试问题,确保能够全面考察面试者的能力。 2. 考察技术能力 2.1 基础知识 考…

【数字范围按位与】python刷题记录

run到位运算。 顿悟&#xff1a; 只看第一个二进制位&#xff0c;只存在0,1两种情况&#xff0c;所以如果left<right&#xff0c;区间中必然存在left1,那么最低位&一下一定等于0了&#xff0c;然后不停的右移&#xff0c;一直移到两个相等为止&#xff0c;就这么简单 …

Qt自定义下拉列表-可为选项设置标题、可禁用选项

在Qt中,ComboBox&#xff08;组合框&#xff09;是一种常用的用户界面控件,它提供了一个下拉列表,允许用户从预定义的选项中选择一个。在项目开发中&#xff0c;如果简单的QComboBox无法满足需求&#xff0c;可以通过自定义QComboBox来实现更复杂的功能。本文介绍一个自定义的下…

二级医院LIS系统源码,医学检验系统,支持DB2,Oracle,MS SQLServer等主流数据库

系统概述&#xff1a; LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化&#xff0c;检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后&#xff0c;自动生成打印报告&#xff0c;通过网络存储在数据库中&#xff0c;使医生能够通过医…

7.消息应答

消费者完成一个任务可能需要一段时间&#xff0c;如果其中一个消费者处理一个长时间的任务并且只完成了部分突然就挂掉了&#xff0c;会发生什么情况&#xff1f; RabbitMQ一旦向消费者传递了一条消息&#xff0c;便立即将该消息标记为删除。这种情况下&#xff0c;突然有个消…

代码随想录算法训练营day6 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1.两数之和

文章目录 哈希表键值 哈希函数哈希冲突拉链法线性探测法 常见的三种哈希结构集合映射C实现std::unordered_setstd::map 小结242.有效的字母异位词思路复习 349. 两个数组的交集使用数组实现哈希表的情况思路使用set实现哈希表的情况 202. 快乐数思路 1.两数之和思路 总结 今天是…

C++版OpenCV_03_图像增强

图像增强 3.1 直方图3.2 线性变换3.3 直方图归一化3.4 Gamma变换 3.1 直方图 概念&#xff1a;计算图像单个通道像素的分布。 步骤&#xff1a;把图像灰度级分为n个区间&#xff0c;计算每个区间像素的频数&#xff0c;把频数转化为频率&#xff0c;得到图像的直方图。如果图像…

OpenCV 遍历Mat,像素操作,使用TrackBar 调整图像的亮度和对比度 C++实现

文章目录 1.使用C遍历Mat,完成颜色反转1.1 常规遍历方式1.2 迭代器遍历方式1.3指针访问方式遍历&#xff08;最快&#xff09;1.4不同遍历方式的时间对比 2.图像像素操作&#xff0c;提高图像的亮度3.TrackBar 进度条操作3.1使用TrackBar 调整图像的亮度3.2使用TrackBar 调整图…

Windows波形音频MMEAPI简介

Windows波形音频MMEAPI简介 使用MMEAPI时需要导入头文件&#xff1a;#include<mmeapi.h> mmeapi.h文件的主要内容 mmeapi.h 文件是 Windows 多媒体 API 的一部分&#xff0c;主要用于处理波形音频&#xff08;Waveform Audio&#xff09;的输入和输出。以下是该文件的…

GNU/Linux - Bazaar版本管理工具

GNU Bazaar&#xff08;以前称为Bazaar-NG&#xff0c;命令行中称为bzr&#xff09;是由Canonical赞助开发的分布式和主从式版本控制系统。并用来进行Ubuntu项目的版本控制。 Bazaar 可以由一个开发本地内容的多个分支的开发人员使用&#xff0c;也可以由跨网络协作的团队使用。…

学术研讨 | 区块链网络体系结构研讨会顺利召开

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 近日&#xff0c;国家区块链技术创新中心组织了“区块链网络体系结构研讨会”&#xff0c;会议面向跨域交互多、计算规模大、数据管理复杂、性能与扩展性要求高等特征的区块链网络的体系结构展开交流研讨&…

docker相关内容学习

一、docker的四部分 二、镜像相关命令 三、容器相关命令

视频生成【文章汇总】SVD, Sora, Latte, VideoCrafter12, DiT...

视频生成【文章汇总】SVD, Sora, Latte, VideoCrafter12, DiT... 数据集指标 【arXiv 2024】MiraData: A Large-Scale Video Dataset with Long Durations and Structured Captions【CVPR 2024】VBench : Comprehensive Benchmark Suite for Video Generative Models【arxiv 20…

学习记录——day15 数据结构 链表

链表的引入 顺序表的优缺点 1、优点:能够直接通过下标进行定位元素&#xff0c;访问效率高&#xff0c;对元素进行查找和修改比较快 2、不足:插入和删除元素需要移动大量的元素&#xff0c;效率较低 3、缺点:存储数据元素有上限&#xff0c;当达到MAX后&#xff0c;就不能再…

[python]数字与字符串

目录 Python 数字类型转换 Python 数字运算 Python字符串操作 修改 查询 Python 数字数据类型用于存储数值。 数据类型是不允许改变的&#xff0c;这就意味着如果改变数字数据类型的值&#xff0c;将重新分配内存空间。 Python 支持三种不同的数值类型&#xff1a; 整型…

javafx的ListView代入项目的使用

目录 1. 创建一个可观察的列表&#xff0c;用于存储ListView中的数据,这里的User是包装了用户的相关信息。 2.通过本人id获取friendid&#xff0c;及好友的id&#xff0c;然后用集合接送&#xff0c;更方便直观一点。 3.用for遍历集合&#xff0c;逐个添加。 4.渲染器&…

Vue.js中自定义Markdown插件实现References解析

在现代Web应用程序中&#xff0c;Markdown已经成为一种流行的轻量级标记语言&#xff0c;它允许开发者以简单的文本格式编写文档&#xff0c;然后转换成HTML。Vue.js应用程序中经常需要将Markdown内容渲染到页面上。 为了实现这一点&#xff0c;我们可以使用Markdown解析器&am…