Skip to content

How to test for an empty object in JavaScript

Today I had the need to check if an object was empty.

Since in JavaScript objects are compared by reference, we can’t do a simple comparison like this:

const obj = {}

if (obj === {}) {
  //no
}

The solution is to pass the object to the built-in method Object.keys() and to check if the object constructor is Object:

const obj = {}

Object.keys(obj).length === 0 && obj.constructor === Object

It’s important to add the second check, to avoid false positives.


→ Here's my latest YouTube video

→ Get my JavaScript Beginner's Handbook

→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter

JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025

Bootcamp 2025

Join the waiting list