I've learned JavaScript variables, data types, operators, control flow, arrays, objects, and basic functions. I can write small functions, but I'm not sure what to study next. My goal is to build fully functional website projects and eventually create website clones. Higher-order functions, first-class functions, and closures are currently difficult for me. Should I focus on understanding those concepts first, or start building projects and learn additional topics as I need them?
3 Answers
Start building projects now. Choose something manageable, such as a calculator, to-do list, quiz, or simple game. You’ll quickly discover which concepts you need to learn, and using them in a project will make them much easier to understand and remember.
You don’t need to master higher-order functions, first-class functions, and closures before building anything. Learn the basic idea of each, then return to them when a project gives you a practical reason to use them. After a few small projects, move on to the DOM, events, browser APIs, asynchronous JavaScript, modules, and eventually a front-end framework.
Try making a calculator without following a complete tutorial. It will expose the gaps in your knowledge and give you specific problems to solve. Looking up a focused question, such as how to attach a click handler to a button, is completely fine. Just avoid copying an entire finished project without understanding each part.

That’s the important distinction: search for the specific problem you’re facing rather than searching for a full calculator tutorial. Build the project yourself, then use documentation and targeted examples when you get stuck.