METHOD | ALGORITHM | ONLY OWN KEYS | NON-ENUMERABLE KEYS | KEYS ORDER |
---|---|---|---|---|
Reflect.ownKeys() |
[[OwnPropertyKeys]] | YES | YES | standard-compatible |
Object.getOwnPropertyNames() |
||||
Object.getOwnPropertySymbols() |
||||
Object.keys() |
[[OwnPropertyKeys]] + filtering + sorting |
YES | NO | based on an implementation |
JSON.stringify() |
||||
Reflect.enumerate() |
[[Enumerate]] | NO | NO | based on an implementation |
for...in |
- numeric keys are fetched in the ascending order
- text keys are fetched in a order they were being created
- symbols are fetched in a order they were being created