JavaScript typing test

JavaScript is punctuation. Braces, brackets, arrows, backticks and semicolons — this test makes you type all of them at speed.

0 wpm100% acc0/176
const active = items.filter((item) => item.active);
const ranked = active.sort((a, b) => b.votes - a.votes);
return ranked.slice(0, 10).map(({ id, votes }) => ({ id, votes }));

Why JavaScript is slow to type

Prose uses twenty-seven keys. JavaScript uses those and then asks your right pinky to reach the braces, your ring finger to find the underscore, and your left pinky to stretch up to the backtick. The language reads fast and types slowly.

The cost is almost never the letters. It is the modifier work around them: every opening brace is shift plus a bracket key, an arrow function is two unrelated characters, and a template literal costs three modifier presses before you have typed a single word.

The characters that cost you the most

  • Curly braces — shift plus bracket, then a second reach to close it at the end of the block.
  • The arrow operator — an equals sign followed by a shifted period, two different fingers in sequence.
  • Backtick — top left, under Escape, where almost nobody trains.
  • Dollar signs inside template literals — shift plus four, immediately followed by another brace.
  • Semicolons — a right-pinky reach that breaks your rhythm at the end of every statement.

What a realistic score looks like

If you type prose at 90 WPM, expect your first JavaScript run to land between 40 and 60 WPM. That gap is symbol latency, not a lack of typing ability, and it is the same gap every developer has on their first run.

Practise one language for a week at roughly 90% of your maximum speed. Sprinting produces errors that teach your fingers the wrong pattern, and the errors cost more than the speed gains.

Compare with another language

Questions

What is a good JavaScript typing speed?

For a working developer, 40–60 WPM on code is solid and 70 or above is fast. Code is not typed continuously the way prose is, so a lower number here does not mean you are slow at your job.

Does this test include TypeScript?

The snippets are plain JavaScript. TypeScript adds angle brackets for generics but leaves the rest of the symbol set unchanged, so practice here transfers directly.

Why is my JavaScript WPM lower than my English WPM?

Because every brace, bracket and brace-adjacent symbol is two keys, not one, and each one interrupts the rhythm of ordinary letters. Typing English never asks you to press shift in the middle of a word.

Does semicolon style matter here?

The snippets use semicolons consistently. If your codebase omits them, ignore the trailing semicolons while typing and your raw score will run a little lower without telling you anything useful.

Last updated 2026-11-11. Written by the GeekType team.