es6一共有5種方法可以遍歷物件的屬性:
(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或字串,也不管是否可列舉
以上5種方法遍歷物件的鍵名,都遵守同樣的屬性遍歷的次序規則。
首先遍歷所有數值鍵,按照數值公升序排列
其次遍歷所有字串鍵,按照所有加入時間公升序排列
最後遍歷所有symbol鍵,按照加入時間公升序排列
reflect.ownkeys()
// ['2', '10', 'b', 'a', symbol()]
上面**中,reflect.ownkeys
方法返回乙個陣列,包含了引數物件的所有屬性。這個陣列的屬性次序是這樣的,首先是數值屬性2
和10
,其次是字串屬性b
和a
,最後是 symbol 屬性。 屬性名的遍歷
symbol作為屬性名,不會出現在for in,for of迴圈中,也不會被object.keys object.getownpropertynames json.stringify 返回,但是它也不是私有屬性,有乙個object.getownpropertysymbols方法,可以獲取指定物件的所...
屬性的遍歷,刪除,檢測
先定義三種不同型別的屬性 方法也可當作屬性來看待 宣告類和類的建構函式 function person name,age this.setname function name this.setage function age var person new person xiao 21 類的靜態屬性方...
Javascript 遍歷物件的屬性
我們可以用 for in 來遍歷物件的屬性。function computer brand,price var mycomputer new computer acer 500 for var prop in mycomputer 上面的 中,computer有兩個屬性,brand 和 price....