Como verificar se um objeto está vazio em JavaScript? (formas simples e confiáveis)
Olá! Comecei a estudar JavaScript recentemente e me deparei com uma tarefa: preciso verificar se um objeto está vazio (ou seja, não contém nenhuma propriedade própria). À primeira vista parece simples, mas na prática acabou sendo mais complicado.
Aqui está um exemplo: tenho um objeto `userSettings` que pode estar vazio se o usuário não configurou nada:
```javascript
let userSettings = {};
```
Quero escrever uma condição como:
```javascript
if (userSettings === {}) {
console.log("Sem configurações");
}
```
Mas isso não funciona. Entendi que o operador `===` compara referências, e não o conteúdo dos objetos. Depois tentei `Object.keys(userSettings).length === 0`, mas ouvi dizer que esse método pode ter problemas. Também vi alguém usando `JSON.stringify(userSettings) === '{}'`, mas isso parece um gambiarra.
Por favor, me diga qual é a forma mais correta e confiável? É importante que a solução funcione em todos os navegadores modernos e não quebre em casos complicados (por exemplo...