Your product could be here, in front of thousands of JavaScript developers. Sponsor this spot →
JavaScript Quiz

Are JavaScript classes hoisted?

Do you know what will be the output of this code?

JavaScript
const p = new Person();

class Person {}
Show answer and explanation

The answer is ReferenceError: Cannot access 'Person' before initialization.

Unlike function declarations, classes aren’t usable before their definition. They behave like let.

Take the full quiz Next question →

More Scope & Hoisting questions

  1. Why does this become undefined when you extract a method?
  2. What happens when a constructor returns an object?
  3. Do objects see prototype changes made after they're created?
  4. Can you call a static method on a class instance?
  5. What is the difference between in and hasOwnProperty?

Related topics