How do you iterate over the properties of an object?
These three methods differ only in the shape of the result that they give you. Object.keys gives you the property names as an array. Object.values gives you the property values as an array. Object.entries gives you an array of pairs, and each pair is a two-item array with the name and the value together.
Choosing between them depends on what you plan to do with the result. If you want to look up a value by its name, then Object.keys together with bracket access is enough. If you want to work with the values directly, then Object.values saves you the lookup. If you want both halves, then Object.entries saves you from looking every value up again, and it pairs nicely with destructuring inside a for...of loop.
There is one subtlety that is worth knowing about Object.values. It gives you the values in the order in which the keys appear, but it gives you no way to tell which key a value came from. When the values are not all different, that information is lost. Object.entries is the only one of the three methods that keeps it.
Two more practical notes will save you time later. All three methods return a brand new array every time you call them, so calling one inside a loop wastes work, and it is better to call it once and reuse the result. And because they return only the own, listable, string-named properties, they will not show you anything that came from the prototype, and they will not show symbol keys either. For symbol keys you need Object.getOwnPropertySymbols.