Object.getOwnPropertyNames(obj) returns all the properties of the object obj. Object.keys(obj) returns all enumerable properties.
They provide the same result unless you set enumerable: false to any property.
In the following example, the screen object has two properties, branch and size.
const screen = {
    branch: 'Dell',
    size: '27inch',
};
Object.getOwnPropertyNames(screen); 
Object.keys(screen); 
 
Let's define one more property named resolution but it is set as enumerable: false:
Object.defineProperties(screen, {
    resolution: {
        enumerable: false,
        value: '2560 x 1440',
    },
});
 
The resolution property then doesn't appear in the list of Object.keys:
Object.getOwnPropertyNames(screen); 
Object.keys(screen);