可列舉屬性:描述物件的 enumerable 屬性成為「可列舉性」,如果該屬性為 false,就表示某些操作會忽略當前屬性。(for…in,object.keys(),json.stringify())。1、for…in:迴圈遍歷物件自身的和繼承的可列舉屬性(不含 symbol 屬性)。
2、object.keys(obj):返回乙個陣列,包括物件自身的(不含繼承的)所有可列舉屬性(不含 symbol 屬性)。
3、object.getownpropertynames(obj):返回乙個陣列,包括物件自身的所有可列舉屬性(不含 symbol 屬性,但是包括不可列舉屬性)。
4、object.getownpropertysymbols(obj):返回乙個陣列,包括物件自身的所有 symbol 屬性。
5、reflect.ownkeys(obj):返回乙個陣列,包括物件自身的所有屬性,不含屬性名是 symbol 還是字串,也不管是否可列舉。
以上 5 種方法遍歷物件的屬性時都遵守同樣的屬性便利次序規則:
var obj1 = {};
object.defineproperties(obj1, ,
age: ,
[symbol()]: ,
3: ,
1: ,
});// 可列舉(enumerable: true)
for(var key in obj1)
// 可列舉(enumerable: true)
console.log( object.keys(obj1) );
// 自身 && 不可列舉(enumerable: false)
console.log( object.getownpropertynames(obj1) );
// symbol 屬性
console.log( object.getownpropertysymbols(obj1) );
// 所有屬性
console.log( reflect.ownkeys(obj1));
ES6 屬性的遍歷
1.for in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 2.obejct.keys obj 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 3.object.getownpropertynames obj 返回乙個陣列,包含物件自身的所有屬性 不...
ES6 屬性的遍歷
es6 一共有6種方法可以遍歷物件的屬性 1 for.in for.in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 2 object.keys obj object.keys 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 3 object.geto...
ES6 屬性遍歷的方法
es6 一共有 5 種方法可以遍歷物件的屬性。1 for in for in迴圈遍歷物件自身的和繼承的可列舉屬性 不含 symbol 屬性 2 object.keys obj object.keys返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含 symbol 屬性 的鍵名。3 obj...