Use them where you would previously have used constructor functions with prototypes.
Don't use them just because "class" feels more authoritative than having a bunch of functions and objects.
Classes are a wonderful tool in JS and you should learn them, but just because you have a hammer that doesn't mean everything is now a nail. Try to figure out what works best and be aware of the caveats before deciding whether you need a class or not.
I think "purists" like Eric Elliott who try to pretend these language features don't exist and instead come up with their own convoluted inheritance systems have it wrong, but pretending JS is now Java simply because we have syntax that looks kinda like Java if you squint isn't the answer either.
The beautiful thing about inheritance in JS is that classical inheritance is just a special case of prototypal inheritance, the class syntax just codifies a common idiom by giving you syntactic sugar for it. But the most important thing to know about inheritance is that you rarely need inheritance. In the vast majority of cases you instead simply want composition.