ES6-对象优化
1】es6给Object扩展了许多新的方法,如
- key(obj):获取对象的所有key形成的数组
- value(obj):获取对象的所有value形成的数组
- entries(obj):获取对象所有的key和value形成的二维数组
const person = { name: "qiyue", age: 23, language: ["java", "js", "css"] } console.log(Object.keys(person)) //["name","age","language"] console.log(Object.values(person)) // ["qiyue",23,Array(3)] console.log(Object.entries(person)) //[Array(2),Array(2),Array(2)]
2】Object.assign方法的第一个参数是目标对象,后面的参数都是源对象;将源对象的属性赋值到目标对象中
onst target = { a: 1 } const source1 = { b: 2 } const source2 = { c: 3 } Object.assign(target, source1, source2); console.log(target) //{a: 1, b: 2, c: 3}
3】声明对象简化
//以前 const name = 'sanyue' const age = 21 //将属性值name,age分别赋给person1对象的name,age,后面是属性值 const person1 = { name: name, age: age } console.log(person1) //{name: "sanyue", age: 21} //es6:属性名和属性值变量名一样,可以省略 const person2 = {name,age} console.log(person2) //{name: "sanyue", age: 21}
4】对象函数属性简写
let person3 = { name: "qiyue", //以前 eat: function (food) { console.log(this.name + "在吃" + food); }, //箭头函数中this不能使用,用对象.属性 eat2: food => console.log(person3.name + "在吃" + food), eat3(food) { console.log(this.name + "在吃" + food) } } person3.eat("苹果") //qiyue在吃苹果 person3.eat2("香蕉") // qiyue在吃香蕉 person3.eat3("西瓜") //qiyue在吃西瓜
5】对象扩展运算符
//拷贝对象(深拷贝) let p1 = { name: "qiyue", age: 23 } let obj = { ...p1 } console.log(obj)//{name: "qiyue", age: 23} //合并对象 let age1 = { age: 24 } let name1 = { name: "qiyue" } let p2 = {} p2 = { ...age1, ...name1 } console.log(p2) //{age: 24, name: "qiyue"} //如果p2中原本有name,age属性会被覆盖
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南