對象遍歷
方法 | 是否可遍歷不可枚舉屬性 | 是否可遍歷Symbol屬性 | 是否可原型鏈屬性 |
---|---|---|---|
Object.keys | --- | --- | --- |
for...in | --- | --- | true |
Object.getOwnPropertyNames | true | --- | --- |
Object.prototype.hasOwnProperty | true | true | --- |
Object.assign | --- | true | --- |
JSON.stringify | --- | --- | --- |
Reflect.ownKeys | true | true | --- |
Object.getOwnPropertySymbols | --- | true | --- |
數(shù)組遍歷中各個方法的特點
- Array.prototype.forEach:
- 無法跳出循環(huán)
- for...in:
- 數(shù)組的鍵名是數(shù)字息楔,但是for...in循環(huán)是以字符串作為鍵名“0”痴施、“1”、“2”等等。
- for...in循環(huán)不僅遍歷數(shù)字鍵名燎孟,還會遍歷手動添加的其他鍵窿克,甚至包括原型鏈上的鍵树枫。
- for...of:
- 有著同for...in一樣的簡潔語法募舟,但是沒有for...in那些缺點。
- 不同于forEach方法盹兢,它可以與break邻梆、continue和return配合使用。
- 提供了遍歷所有數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一操作接口绎秒。