for...in
遍歷的對象的屬性名稱,一個Array數組也是一個對象,它的每一個對象的索引值被視爲一個屬性。當手動給Array對象添加額外的屬性name
後,for…in循環將把name
包括在內,但Array的length
屬性卻不包括在內。而for…of循環只循環集合自己的元素。數組
該方法是對象內置的屬性方法,它返回一個數組,數組內包括對象內可枚舉屬性
以及方法名稱
。數組中屬性名的排列順序和使用 for…in 遍歷該對象時返回的順序一致。svg
// 建立對象 let person = { name: "aaa", age: "16", sayHello: function() { console.log("Hello"); } }; // 經過調用Object.keys()方法,獲取對象上已定義(可枚舉)的屬性和方法 let keys = Object.keys(person); console.log(keys); //輸出 (3) ["name", "age", "sayHello"]
該方法返回一個指定對象全部自身屬性的屬性名(包括不可枚舉屬性但不包括Symbol值做爲名稱的屬性)組成的數組。 數組中枚舉屬性的順序與經過for...in
循環(或Object.keys()
迭代該對象屬性時一致,不可枚舉屬性的順序未定義。spa
// 建立對象 let person = { name: "aaa", age: "16", sayHello: function() { console.log("Hello"); } }; let keys = Object.getOwnPropertyNames(person); console.log(keys); // 輸出 keys ["name", "age", "action"]
嗯,基本就這樣吧,後來一想實際上是很基礎很基礎的東西了,居然沒想起來,最近真的要好好惡補基礎了…code