The main difference between function declarations and class declarations is hoisting. The function declarations are hoisted but not class declarations.
hoisting
Classes:
const user = new User(); // ReferenceError class User {}
Constructor Function:
const user = new User(); // No error function User() {}