Como verificar se objeto está vazio em JavaScript
Neste artigo você vai aprender a como verificar se objeto está vazio em JavaScript de uma forma fácil, apenas utilizando recursos de JS!

Fala programador(a), beleza? Bora aprender mais sobre objetos e JavaScript!
Para esta tarefa temos duas boas abordagens, isso por que a versão de JavaScript ES6 ainda não está totalmente padronizada nos navegadores
Então é interessante ter uma abordagem cross browser e outra que possa ser utilizada nas versões mais recentes da linguagem, para Node ou TypeScript, por exemplo
Vamos então a abordagem padronizada primeiramente!
Nela vamos checar se o objeto possui alguma propriedade e também se o objeto é um objeto vazio
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
E retornar um booleano baseado nestas verificações feitas, veja o código:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop)) {
return false;
}
}
return JSON.stringify(obj) === JSON.stringify({});
}
console.log(isEmpty({})); // true
console.log(isEmpty({nome: "Matheus"})); // false
Perceba que no primeiro teste temos true, objeto vazio, e na segunda temos false, já que o objeto possui valores
Objeto vazio em ES6
Agora vamos para a próxima abordagem, utilizando a versão ES6+ da linguagem JS
Aqui temos acesso as chaves do objeto e podemos verificar a sua length
Outra possibilidade é também checar a presença de um constructor, já que esta versão da linguagem já o possui
Veja a abordagem:
function isEmpty(obj) {
return Object.keys(obj).length === 0 && obj.constructor === Object;
}
console.log(isEmpty({})); // true
console.log(isEmpty({nome: "Matheus"})); // false
Muito mais simples esta abordagem, por que com a evolução da linguagem temos acessos a mais recursos e também mais avançados
Conclusão
Neste artigo vimos como verificar se objeto está vazio em JavaScript
Utilizamos duas abordagens, uma com as funcionalidades padronizadas em todos os navegadores, ou seja antes da versão ES6
Onde verificamos cada uma das propriedades do objeto para então dar o retorno
E já na versão ES6 temos acessos a propriedades novas como as keys, e também podemos validar a presença do constructor
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
E se o objeto for null ou undefined?
Aqui mora um perigo que pega muita gente
Se você jogar null ou undefined dentro dessas funções, o Object.keys quebra e estoura um erro na sua cara
Então antes de checar se está vazio, vale garantir que a variável é realmente um objeto
function isEmpty(obj) { if (obj == null) return true return Object.keys(obj).length === 0 && obj.constructor === Object }
console.log(isEmpty(null)) // true console.log(isEmpty(undefined)) // true console.log(isEmpty({})) // true console.log(isEmpty({ nome: "Matheus" })) // false
Com esse if no começo tu trata null e undefined como vazio e não corre risco do código explodir em produção
Como verificar se o objeto NÃO está vazio:
Muita vez o que tu quer é o contrário, saber se o objeto TEM alguma coisa dentro
A boa notícia é que não precisa de função nova, é só negar o resultado
function isNotEmpty(obj) { return Object.keys(obj).length > 0 }
console.log(isNotEmpty({ nome: "Matheus" })) // true console.log(isNotEmpty({})) // false
Ou, se já tiver a função isEmpty pronta, dá pra usar o ! na frente e reaproveitar tudo
if (!isEmpty(usuario)) { // faz algo com o objeto preenchido }
Perguntas frequentes
Object.keys funciona pra checar array vazio também?
Funciona, mas tem pegadinha
Agora aquela checagem de obj.constructor === Object vai dar false num array, porque o constructor dele é Array e não Object
Então pra array, o mais direto é usar array.length === 0 mesmo
Qual das duas abordagens eu uso?
Se você precisa rodar em navegador mais antigo, a primeira abordagem (com hasOwnProperty) é a mais segura
Se é Node, TypeScript ou navegador atual, a versão com Object.keys é mais limpa e faz o mesmo trabalho
Dá pra usar em objeto vindo de JSON.parse?
Dá tranquilo
O retorno do JSON.parse é um objeto comum, então as duas abordagens funcionam nele sem ajuste nenhum
Leia também
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const

Como redirecionar para outra página com JavaScript
Exercícios de lógica de programação JavaScript com gabarito
Quais são os melhores exercícios lógica de programação JavaScript? Colocar em prática os exercícios de lógica de programação em JavaScript é de extrema importância para […]
