js中获取属性的方式

1.获取属性的方式

获取方式 获取形式
Object.keys; 获取属性名集合,只处理 obj 自身的可枚举字符串属性。
Object.values; 获取属性值的集合,只处理 obj 自身的可枚举字符串属性。
Object.entries; 获取属性键值对的集合,只处理 obj 自身的可枚举字符串属性。
Object.getOwnPropertyNames(obj); 获取对象的自身属性集合,返回了 obj 自身的所有字符串属性(包括不可枚举的),也不包括symbol属性。
Object.getOwnPropertySymbols(obj); 返回obj所有的symbol属性(包含了不可枚举的),但是不包括字符串属性。
Object.ownKeys(obj) 获取obj的所有属性,其实就是等于Object.getOwnPropertyNames(obj)+Object.getOwnPropertySymbols(obj)
Object.ownKeys(obj) //包含自身所有可枚举,不可以枚举的,symbol属性
for-in 返回的是对象自身及所在原型链上的所有可枚举字符串属,for-in加上obj.hasOwnProperty(prop)获取的属性等于Object.keys/values/entries三者的联合。

2.obj的数据结构

js中获取属性的方式_第1张图片  

3.获取的代码

Object.keys(obj) // ["str"]
Object.values(obj) // ["This is a String property"]
Object.entries(obj) // [ ["str", "This is a String property"] ]
var obj = {
  str: 'This is a String property',
  [Symbol()]: 'This is a Symbol property'
}
for(let prop in obj){
    if(obj.hasOwnProperty(prop)){
        console.log({ key: prop, value: obj[prop], pair: [prop, obj[prop]] });
    }
    
}

js中获取属性的方式_第2张图片

 for-in加上obj.hasOwnProperty(prop)获取的属性等于Object.keys/values/entries三者的联合。

你可能感兴趣的:(javascript,开发语言,ecmascript)