Skip to content

Instantly share code, notes, and snippets.

@MarwanShehata
Created March 3, 2024 11:16
Show Gist options
  • Save MarwanShehata/3e84b650b8ea1975fc2473177dc52c27 to your computer and use it in GitHub Desktop.
Save MarwanShehata/3e84b650b8ea1975fc2473177dc52c27 to your computer and use it in GitHub Desktop.
const obj = {
[Symbol("my_key")]: 1,
[Symbol("second_key")]: 2,
enum: 3,
nonEnum: 4,
};
Object.defineProperty(obj, "nonEnum", {
enumerable: false,
});
// Ignores symbol-valued property keys:
console.log(Object.getOwnPropertyNames(obj));
// ['enum', 'nonEnum']
// Ignores string-valued property keys:
console.log(Object.getOwnPropertySymbols(obj));
// [ Symbol("my_key"), Symbol("second_key") ]
// Considers all kinds of keys:
console.log(Reflect.ownKeys(obj));
// [ "enum", "nonEnum", Symbol("my_key"), Symbol("second_key") ]
// Only considers enumerable property keys that are strings:
console.log(Object.keys(obj));
// ['enum']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment