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或字符串,也不論是否可枚舉。 ///////Object.keys遍歷屬性///////// let obj = {a:1, b:2,c:3}; Object.keys(obj); //["a", "b", "c"]返回對象屬性數組 /////////Object.keys遍歷value///////// let obj = {a:1,b:2,c:function(){}}; Object.values(obj); //[1, 2, f]返回對象屬性value值數組 ///////Object.entries遍歷鍵值對//////// let obj = {a:1,b:2,c:function(){}}; Object.entries(obj); ////[['a',1],['b', 2], ['c',f]返回對象鍵值對數組 ///////Object.getOwnPropertyNames遍歷屬性(枚舉+不可枚舉)///////// let obj = {a:1,b:2,c:function(){}}; Object.getOwnPropertyNames(obj); ////["a", "b", "c"]返回對象包括不可枚舉的屬性數組