首页 > 其他分享 >04 ES6中对象的简写

04 ES6中对象的简写

时间:2024-07-21 14:26:12浏览次数:18  
标签:ES6 const name 04 title age person 简写 属性

在 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 中创建和操作对象更加方便和直观。

标签:ES6,const,name,04,title,age,person,简写,属性
From: https://blog.csdn.net/gt8011/article/details/140574887

相关文章

  • Ubuntu18.04安装Cuckoo Sandbox(第一部分 安装Ubuntu虚拟机)
    Ubuntu18.04安装Cuckoo沙盒目前最新版是24版,但是24版与20版的安装经过实践都存在一定困难,可以去Ubuntu官网查看两者的区别,经过实践是Ubuntu16.0版本安装最简便,但是我这里使用的是Ubuntu18.04版本。0x00安装Ubuntu18.04首先去官网下载光盘文件,通过VM安装虚拟机。在VM......
  • ubuntu 20.04 部署elastic stack
    8.x后ES不在需要自行准备JDK环境,部署的服务包含ES、Kibana、Logstash,使用二进制方式部署,为了提高安全性,加密logstash、kibana及其他客户端到ES间的通信。1、准备工作1.1、es无法使用root用户启动useradd-m-s/bin/bashesuser1.2、配置必要的内核参数,否则会启动失败vm.m......
  • 【Dison夏令营 Day 25】用Python写个2048
    在本文中,我们将用python代码和逻辑来设计一款你经常在智能手机上玩的2048游戏。如果您对该游戏不熟悉,强烈建议您先玩一下该游戏,以便了解其基本功能。如何玩2048.NET?1.有一个4*4的网格,可以填入任何数字。一开始,随机填入两个2的单元格。其余单元格为空。我们......
  • 虚拟机(ubuntu22.04)空间不足,进行硬盘扩容
    1、编辑虚拟机设置(外部操作)关闭虚拟机编辑虚拟机设置---硬盘扩容虚拟机设置--->硬件--->改变磁盘大小--->点击<扩展>2、虚拟机内部磁盘重新分区(内部操作)开启虚拟机安装界面化的磁盘管理工具终端输入sudoaptinstallgparted终端输入sudogparted,打开该工具......
  • 代码随想录算法训练营第十五天 | 110.平衡二叉树、257. 二叉树的所有路径 、404.左叶
    110.平衡二叉树题目:.-力扣(LeetCode)思路:后序遍历计算高度代码:/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*......
  • 解决.Net Framework3.5安装报错0x80070490
    .NETFramework是Windows平台下的软件框架,包括1.0~4.8多个版本,向下兼容。Win7默认安装的是3.5版,早期Win10版本默认安装的4.6版,本文分享如何在Win10和Win11上离线安装.NETFramework3.5,并解决安装报0x80070490找不到元素的错误。问题描述在早些年,有的软件安装时强制验证.NETFr......
  • UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xb5‘ in position
    报错UnicodeEncodeError是由于文件写入过程中编码格式不匹配导致的。为了避免这种问题,可以显式指定使用UTF-8编码来写入文件。以下是修改后的代码,确保在写入HTML文件时使用UTF-8编码:importnumpyasnpimportpandasaspdfromsklearn.datasetsimportload_iri......
  • 谷粒商城实战笔记-35-前端基础-ES6-模块化
    文章目录一,什么是模块化二,export1.`export`语法2.批量导出3.默认导出三,import1,import语法2,批量导入一,什么是模块化模块化编程是一种软件设计技术,它将程序分解为独立的、可复用的部分,每个部分负责执行特定的功能。这种设计方法在多种编程语言中都有应用,包括Jav......
  • IPP-8046 定向耦合器:300 瓦高功率,广泛频率覆盖的最佳选择
    概述InnovativePowerProducts(IPP)推出的IPP-8046是一款高性能300瓦(平均功率)定向耦合器,频率覆盖范围为100-500MHz(0.1至0.5GHz)。该耦合器的尺寸为1.00x1.50英寸,具有标称耦合值40.0dB,方向性大于20dB,插入损耗小于0.25dB,耦合平坦度为±0.6dB,主线驻波比小于......
  • 04. Kubernetes安装篇-Kuberadm
    架构解析高可用架构图组件用途EtcdClusterectd是一个键值数据库,主要存放Kubernetes数据,如创建的资源、变更的操作等;MasterKubernetes中的控制节点,主要用于控制Kubernetes集群;NodeKubernetes中的工作节点,主要用于运行Kubernetes集群部署的Pod;Kube-APISer......