Practice JavaScript interview questions in your browser

A workbench in your desktop browser: a real code editor, the tests each question has to pass, three difficulty levels and a progress log. Try a question during a short walkthrough, then start a 7-day free trial of Pro for all 24 and the AI panel.

  1. Implement Array.prototype.filter in JavaScript array iteration, this binding, prototype methods · 4 tests
  2. JavaScript debounce interview question: solution and tests closures, timers, higher-order functions · 9 tests
  3. Type checking in JavaScript type checking, prototypes · 4 tests
  4. Implement JSON.stringify in JavaScript recursion, type checking, serialization · 2 tests
  5. Implement Promise.all in JavaScript promises, async coordination, error handling · 7 tests
  6. Implement Array.prototype.reduce in JavaScript array iteration, accumulator pattern, prototype methods · 6 tests
  7. Group and merge an array of objects in JavaScript array grouping, object immutability · 4 tests
  8. Implement curry in JavaScript closures, partial application, higher-order functions · 2 tests
  9. Flatten an array without flat() in JavaScript recursion, nested arrays · 8 tests
  10. Deep clone an object in JavaScript recursion, object references · 2 tests
  11. Implement memoize in JavaScript closures, caching, higher-order functions · 6 tests
  12. JavaScript throttle interview question: solution and tests closures, timers, higher-order functions · 9 tests
  13. Implement an event emitter in JavaScript classes, observer pattern, closures · 3 tests
  14. Implement deep equal in JavaScript recursion, deep comparison · 5 tests
  15. Implement getElementsByTagName in JavaScript recursion, tree traversal · 2 tests
  16. Implement classnames in JavaScript recursion, truthy/falsy checks · 3 tests
  17. Implement Promise.any in JavaScript promises, error aggregation · 4 tests
  18. Implement Function.prototype.call in JavaScript this binding, prototype methods, rest arguments · 5 tests
  19. Implement promisify in JavaScript promises, callbacks, this binding · 6 tests
  20. Filter an array of objects in JavaScript array filtering, objects · 5 tests
  21. Limit promise concurrency in JavaScript async/await, promises, concurrency control · 7 tests
  22. Deep omit keys from an object in JavaScript recursion, object/array traversal, immutability · 2 tests
  23. Flatten a nested object in JavaScript recursion, object flattening · 2 tests
  24. Format a list with commas 'and' in JavaScript array methods, string formatting · 6 tests