ES6知识之对象

简介: ES6知识之对象

属性的简写

ES6中,当对象键名与对应值相等的时候,可以进行简写


const obj = { foo: foo }

// 等同于

const obj = { foo }


方法的简写

const obj = {

sayHai: function() {

 return '渣渣辉'

}

}

// 等同于

const obj = {

sayHai() {

 return '渣渣辉'

}

}


属性名表达式

ES6允许字面量定义对象时,将表达式放在括号内


let str = '渣渣辉'

const obj = {

'say hai': 'hello',

[str]: 'world'

}

console.log(obj['say hai']) // hello

console.log(obj[str]) // world

console.log(obj['渣渣辉']) // world


表达式还可以定义方法名


const obj = {

['say'+'hai'](){

 return '渣渣辉'

}

}

obj.sayhai() // 渣渣辉


扩展运算符

在结构赋值中,未被读取的可遍历的属性,分配到指定对象上面


let {x, y, ...z} = {x: 1, y: 2, a: 3, b: 4}

console.log(x) // 1

console.log(y) // 2

console.log(z) // {a: 3, b: 4}


方法

Object.is()

严格判断两个值是否相等,与严格比较运算符===的行为基本一致,不同之处只有两个:一是+0不等于-0,二是NaN自身


+0 === -0 // true

NaN === NaN // false

Object.is(+0, -0) // false

Object.is(NaN, NaN) // true


Object.assign()

用于对象的合并,将源对象source的所有可枚举属性,复制到目标对象target


const target = { a: 1, b: 2}

const source1 = { c: '渣'}

const source2 = { d: '渣'}

Object.assign(target,source1,source2) // {a: 1, b: 2, c: '渣', d: '渣'}


Object.getOwnPropertyDescriptors()

const obj = {

foo: 123,

bar() { return '渣渣辉' }

}

Object.getOwnPropertyDescriptors(obj)


Object.keys()

返回自身的(不含继承)的所有可遍历属性的键名的数组


const obj = { a: '渣', b: '渣', c: '辉'}

Object.keys(obj) // ['a', 'b', 'c']


Object.values()

返回自身的(不含继承)的所有可遍历属性的键对应值的数组


const obj = { a: '渣', b: '渣', c: '辉' }

Object.values(obj) // ['渣', '渣', '辉']


Object.entries()

返回自身的(不含继承)的所有可遍历属性的键值对的数组


const obj = { a: '渣', b: '渣', c: '辉' }

Object.entries(obj)




Object.fromEntries()

用于将一个键值对数组转为对象


const arr = [['a', '渣'], ['b', '渣']]

Object.fromEntries(arr) // {a: '渣', b: '渣'}


目录
相关文章
|
Java 开发工具 git
spring boot 集成 ctrip apollo 实现动态配置更新
spring boot 集成 ctrip apollo 实现动态配置更新
237 1
|
编译器 Linux PHP
C语言从入门到实战——预处理详解
C语言预处理是C语言编译过程的一个阶段,它在编译之前对源代码进行一系列的处理操作,包括宏替换、文件包含、条件编译等,最终生成经过预处理的代码,然后再进行编译。
225 0
|
Windows
windows 电脑 连接蓝牙耳机没有麦克风
【8月更文挑战第31天】当Windows电脑连接蓝牙耳机后无法使用麦克风时,可尝试以下步骤解决:检查蓝牙设置,确保耳机正确连接并开启麦克风选项;检查音频设备设置,确认蓝牙耳机为默认播放和录制设备;更新蓝牙和音频驱动;确认耳机与系统的兼容性及正确设置。如问题未解,可重新配对耳机或联系客服。
8358 7
|
NoSQL Java 应用服务中间件
大厂面试必备:如何轻松实现分布式Session管理?
这篇文章介绍三种分布式Session的实现方案:基于JWT的Token、基于Tomcat的Redis和基于Spring的Redis。JWT方案通过生成Token存储用户信息,实现无状态、可扩展的会话管理,但可能增加请求负载且数据安全性较低。Tomcat与Redis结合,通过配置Tomcat和Redis,实现Session集中管理和高性能存储,但配置相对复杂。Spring整合Redis适用于SpringBoot和SpringCloud项目,集成方便,扩展性强,但同样依赖外部Redis服务。每种方法有其优缺点,适用场景不同。作者小米是一个技术爱好者,欢迎关注其微信公众号“软件求生”获取更多技术内容
631 4
|
9月前
|
监控 负载均衡 容灾
slb测试配置
slb测试配置
235 5
|
编译器 Shell C++
在编译的两个.o文件中有对同一个头文件的引用,因此在链接时出现结构体重复定义的问题怎么解决
在编译的两个.o文件中有对同一个头文件的引用,因此在链接时出现结构体重复定义的问题怎么解决
369 2
|
前端开发 文件存储 Python
【已解决】Flask当中render_template函数使用过程当中css文件无法正常渲染
【已解决】Flask当中render_template函数使用过程当中css文件无法正常渲染
【UI】elementui el-pagination分页位置靠右
【UI】elementui el-pagination分页位置靠右
538 0
|
SQL 分布式计算 并行计算
PostgreSQL 并行计算解说 之1 - parallel seq scan
标签 PostgreSQL , cpu 并行 , smp 并行 , 并行计算 , gpu 并行 , 并行过程支持 背景 PostgreSQL 11 优化器已经支持了非常多场合的并行。简单估计,已支持27余种场景的并行计算。 parallel seq scan parallel index scan parallel index only scan
5148 0