Avatar ·

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...