Intermediate — Your JavaScript Skill Level
Everyday application code is solid; the edge is how scope and this resolve
Intermediate handles everyday application code comfortably — functions, array methods, straightforward control flow — without being slowed down by routine feature work.
The gap to Advanced is mostly in what happens when JavaScript's scoping and timing rules interact: a var captured inside a loop's callbacks all reading the same final value, a this that silently stops pointing at the object once a method is detached from it, a spread copy that looks deep but only copies one level. Those are the kind of bugs that pass a quick read-through and only show up under a specific runtime condition.
Strengths
- Everyday application code — functions, array methods, straightforward control flow — does not slow you down.
- You would not be the bottleneck on routine feature work in an existing codebase.
- You handle multi-function scripts comfortably: matching call signatures, picking the right array method for the situation.
- You read a function for what it returns, not just for what it looks like it should return.
- This is the level most day-to-day application code actually requires.
Growth Edges
- var is function-scoped rather than block-scoped, so every callback inside a var-based for loop closes over the exact same variable, which has already finished the loop by the time any of them runs.
- this is determined by how a function is called, not where it is defined — detach a method from its object or pass it as a callback and this silently stops pointing where you expect.
- A spread or Object.assign only copies the top level of an object; a nested array or object inside the copy is still the exact same reference as in the original.
- The microtask-vs-macrotask ordering behind the event loop is easy to reason about in isolation and easy to get backwards once a promise and a setTimeout are mixed in the same function.
- Following an existing multi-function script is comfortable; designing the async flow for a new one is a different, not-yet-practiced skill.
Career Matches
Compare
Frequently Asked Questions
What does an Intermediate JavaScript result mean?
You handle everyday application code comfortably. The gap to the next band is mostly bugs that appear when scope and timing interact, not general function-writing ability.
What should I learn next from this band?
How this is resolved by how a function is called rather than where it is written, why a var-based loop hands every callback the same final counter value while let does not, why a spread copy only goes one level deep, and how the event loop orders microtasks ahead of macrotasks.
Why do all my setTimeout callbacks print the same value?
If the loop variable is declared with var, it is function-scoped, not block-scoped — every callback closes over the exact same variable rather than its own copy. By the time any of the callbacks actually runs, the loop has already finished and the variable holds its final value. Declaring the loop with let instead gives each iteration its own fresh binding, which fixes it.
Why does this stop working when I pass a method as a callback?
this is set by how a function is called, not by where it was defined. A method called as obj.method() has this bound to obj, but the same function passed elsewhere as a plain callback loses that binding — this then depends on the caller, and is often undefined or the wrong object. Arrow functions avoid this by not having their own this at all; they inherit it from the surrounding scope instead.
How is the JavaScript Test scored?
30 code-reading questions across four sections — core syntax and coercion, functions/scope/closures and this, objects/arrays and data structures, and the event loop/async/prototype idioms. Your band comes from the total, and the breakdown is shown by category.
Is this a certified JavaScript qualification?
No. This is a self-check that places you in one of four bands so you know what to learn next. It is not a certification and it is not a validated assessment instrument.
Explore all results in depth
Already taken the test, or just curious? Read the in-depth guide for any result — strengths, challenges, career matches, famous people, and FAQs.
Results Library content is educational, not a clinical assessment.