es6 一共有6種方法可以遍歷物件的屬性
( 1) for...in
for...in 迴圈遍歷物件自身的和繼承的可列舉屬性(不含symbol屬性) 。
( 2) object.keys(obj)
object.keys 返回乙個陣列, 包括物件自身的(不含繼承的) 所有可列舉屬性(不含symbol屬性) 。
( 3) object.getownpropertynames(obj)
object.getownpropertynames 返回乙個陣列, 包含物件自身的所有屬性(不含symbol屬性, 但是包括不可列舉屬性) 。
( 4) object.getownpropertysymbols(obj)
object.getownpropertysymbols 返回乙個陣列, 包含物件自身的所有symbol屬性。
( 5) reflect.ownkeys(obj)
reflect.ownkeys 返回乙個陣列, 包含物件自身的所有屬性, 不管是屬性名是symbol或字串, 也不管是否可列舉。
( 6) reflect.enumerate(obj)
reflect.enumerate 返回乙個iterator物件, 遍歷物件自身的和繼承的所有可列舉屬性(不含symbol屬性) , 與 for...in 循
環相同。
以上的6種方法遍歷物件的屬性, 都遵守同樣的屬性遍歷的次序規則。
首先遍歷所有屬性名為數值的屬性, 按照數字排序。
其次遍歷所有屬性名為字串的屬性, 按照生成時間排序。
最後遍歷所有屬性名為symbol值的屬性, 按照生成時間排序。
reflect.ownkeys()
// ['2', '10', 'b', 'a', symbol()]
上面**中, reflect.ownkeys 方法返回乙個陣列, 包含了引數物件的所有屬性。 這個陣列的屬性次序是這樣的, 首先是數
值屬性 2 和 10 , 其次是字串屬性 b 和 a , 最後是symbol屬性。
ES6 屬性的遍歷
1.for in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 2.obejct.keys obj 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 3.object.getownpropertynames obj 返回乙個陣列,包含物件自身的所有屬性 不...
ES6 屬性的遍歷
可列舉屬性 描述物件的 enumerable 屬性成為 可列舉性 如果該屬性為 false,就表示某些操作會忽略當前屬性。for in,object.keys json.stringify 1 for in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含 symbol 屬性 2 object.keys ...
ES6 屬性遍歷的方法
es6 一共有 5 種方法可以遍歷物件的屬性。1 for in for in迴圈遍歷物件自身的和繼承的可列舉屬性 不含 symbol 屬性 2 object.keys obj object.keys返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含 symbol 屬性 的鍵名。3 obj...