Skip to main content
JavaScript & the browser·Module C5 · Lesson 4
TaskWrite show(x): Date → ISO string, Error → "ERR: <message>", everything else → String(x). Log show(new Date(0)), show(new TypeError("boom")), show(42), show("hi").

instanceof for Date and custom classes

100 XP8 min
Theory

What instanceof tests

x instanceof Constructor returns true if x was made with new Constructor() (or a subclass). It's the type guard for class-based values like Date, Error, Map, Set, or your own classes.

const d = new Date();
d instanceof Date;       // true

const err = new TypeError("x");
err instanceof TypeError; // true
err instanceof Error;     // true  (TypeError extends Error)
err instanceof Date;      // false

class User { constructor(name) { this.name = name; } }
new User("Anna") instanceof User; // true

Common pattern: handle Date, Error, or plain text

function show(x) {
  if (x instanceof Date)  return x.toISOString();
  if (x instanceof Error) return "ERR: " + x.message;
  return String(x);
}

Versus typeof

typeof new Date() returns "object". Useless. instanceof Date is the actual answer.

🔒

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial — card required, cancel anytime.

Sign up — free trial →

First 10 lessons in each track are free. No card needed for those.

PreviousNext lesson →

Get one Python or web tip a day — by email

Short, hand-written, no spam. Unsubscribe in one click.