明天小编持续更新js中对于对象的一些新个性,期待着和大家一起提高。大家还能够关注我的微信公众号,蜗牛全栈。
一、Object.values():获取对象内值的数组

const obj = {    name:"lilei",    web:"www.baidu.com",    course:"math"}console.log(Object.values(obj)) // ["lilei","www.baidu.com","math"]

二、Object.entries():返回二位数组,每个数组蕴含key和value

const obj = {    name:"lilei",    web:"www.baidu.com",    course:"math"}console.log(Object.entries(obj))  // [["name","lilei"],["web","www.baidu.com"],["course","math"]]console.log(Object.entries(["a","b","c"])) // [["0","a"],["1","b"],["2","c"]]

三、循环遍历:与es6中的解构和字符串模板联合

const obj = {    name:"lilei",    web:"www.baidu.com",    course:"math"}for(let [key,val] of Object.entries(obj)){    console.log(`${key}:${val}`)  // name:lilei   web:www.baidu.com   course:math}

四、es8之前语法

const obj = {    name:"lilei",    web:"www.baidu.com",    course:"math"}console.log(Object.keys(obj)) // ["name","web","course"]const res = Object.keys(obj).map(key => obj[key])console.log(res) // ["lilei","www.baidu.com","math"]

五、Object.getOwnPropertyDescriptors():获取对象本身属性修饰符

const obj = {    name:"lilei",    course:"math"}const desc = Object.getOwnPropertyDescriptors(obj)console.log(desc) // {//     name:{//         value:"lilei", // 默认值//         writable:true, // 属性是否能够改//         enumerable:true,  // 是否能够通过for...in 循环遍历//         configurable:true  // 是否能够通过delete删除掉//     },//     course:{//         value:"math",//         writable:true,//         enumerable:true,//         configurable:true//     }// }

六、与Reflect联结应用

const obj= {}Reflect.defineProperty(obj,'name',{    value:"lilei",    writable:false,    configurable:false,    enumerable:true})Reflect.defineProperty(obj,'age',{    value:18,    writable:false,    configurable:false,    enumerable:false})console.log(obj) // {name:"lilei"}obj.name= "zhangsan"console.log(obj) // {name:"lilei"}delete obj.nameconsole.log(obj) // {name:"lilei"}for(let key in obj){    console.log(key)  // 只有name。没有age}

七、Object.getOwnPropertyDescriptor()

const obj = {    name:"lilei",    course:"math"}const desc = Object.getOwnPropertyDescriptor(obj,"name")console.log(desc)// {//     value:"lilei", // 默认值//     writable:true, // 属性是否能够改//     enumerable:true,  // 是否能够通过for...in 循环遍历//     configurable:true  // 是否能够通过delete删除掉// }