- Node.js 12實戰(zhàn)
- 趙榮嬌
- 400字
- 2022-07-27 19:19:01
3.5.7 屬性的遍歷
ES6一共有5種方法可以遍歷對象的屬性。
(1)for...in
for...in循環(huán)遍歷對象自身的和繼承的可枚舉屬性(不含Symbol屬性)。
(2)Object.keys(obj)
Object.keys返回一個數(shù)組,包括對象自身的(不含繼承的)所有可枚舉屬性(不含Symbol屬性)。
(3)Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames返回一個數(shù)組,包含對象自身的所有屬性(不含Symbol屬性,但是包括不可枚舉屬性)。
(4)Object.getOwnPropertySymbols(obj)
Object.getOwnPropertySymbols返回一個數(shù)組,包含對象自身的所有Symbol屬性。
(5)Reflect.ownKeys(obj)
Reflect.ownKeys返回一個數(shù)組,包含對象自身的所有屬性,不管屬性名是Symbol或字符串,也不管是否可枚舉。
以上的5種方法遍歷對象的屬性遵守同樣的屬性遍歷的次序規(guī)則:
· 首先遍歷所有屬性名為數(shù)值的屬性,按照數(shù)字排序。
· 其次遍歷所有屬性名為字符串的屬性,按照生成時間排序。
· 最后遍歷所有屬性名為Symbol值的屬性,按照生成時間排序。
Reflect.ownKeys({ [Symbol()]:0, b:0, 10:0, 2:0, a:0 }) // ['2', '10', 'b', 'a', Symbol()]
上面的代碼中,Reflect.ownKeys方法返回一個數(shù)組,包含參數(shù)對象的所有屬性。這個數(shù)組的屬性次序是這樣的,首先是數(shù)值屬性2和10,其次是字符串屬性b和a,最后是Symbol屬性。
推薦閱讀
- C語言程序設(shè)計基礎(chǔ)與實驗指導
- C語言程序設(shè)計教程(第2版)
- The DevOps 2.5 Toolkit
- C語言程序設(shè)計
- Visual Basic程序設(shè)計
- Getting Started with Eclipse Juno
- Vue.js應(yīng)用測試
- HTML5移動Web開發(fā)
- Mastering Apache Camel
- 精通Spring:Java Web開發(fā)與Spring Boot高級功能
- JavaScript Unit Testing
- 精益軟件開發(fā)管理之道
- WCF全面解析
- C#網(wǎng)絡(luò)編程高級篇之網(wǎng)頁游戲輔助程序設(shè)計
- React.js實戰(zhàn)