Cómo verificar si un objeto está vacío en JavaScript (formas simples y confiables)
¡Hola! Acabo de empezar a aprender JavaScript y me encontré con una tarea: necesito verificar si un objeto está vacío (es decir, que no contiene ninguna propiedad propia). A primera vista parece simple, pero en realidad resultó más complicado.
Aquí hay un ejemplo: tengo un objeto `userSettings` que puede estar vacío si el usuario no ha configurado nada:
```javascript
let userSettings = {};
```
Quiero escribir una condición como:
```javascript
if (userSettings === {}) {
console.log("No hay configuraciones");
}
```
Pero esto no funciona. Entendí que el operador `===` compara referencias, no el contenido de los objetos. Luego probé `Object.keys(userSettings).length === 0`, pero escuché que este método puede tener problemas. También vi que alguien usa `JSON.stringify(userSettings) === '{}'`, pero parece un parche.
Por favor, indíquenme cuál es la forma más correcta y confiable. Es importante que la solución funcione en todos los navegadores modernos y no se rompa en casos complicados (por ejemplo