Interested in supporting JS Questions Lab?|Contact for Sponsorship
JSJS QuestionsLAB
QuestionsProgressLeaderboardCreditsContact

Coming Soon

React Practice

Build real components, explore patterns, and master React — with a live Sandpack IDE inside every challenge.

Coming Soon

React Practice

Build real components with a live Sandpack IDE. No config, no boilerplate — just React and you.

Sandpack IDEReact 19Live Preview
App.tsx
function Counter() {
  const [count, setCount]
    = useState(0);

  return (
    <button
      onClick={() => 
        setCount(c => c+1)}
    >
      Clicked {count} times
    </button>
  )
}

The Practice Loop

01
Read
02
Build
03
Review

Patterns

30+ React Patterns

From Lydia Hallie's javascript-react-patterns — distilled into interactive challenges.

ContainerHOCCompoundRender PropsCustom HooksObserverProviderProxyPrototypeModuleSingleton+20 more

Featured Questions

Start with these popular challenges

View all 155
#1Beginner

What's the output?

function sayHi() {
console.log(name);
console.log(age);
scopeobjects+1
Practice
#2Beginner

What's the output?

for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}
asyncscope+1
Practice
#3Beginner

What's the output?

const shape = {
radius: 10,
diameter() {
scopeobjects+1
Practice
#4Beginner

What's the output?

+true;
!'Lydia';
typesoperators
Practice
#5Beginner

Which one is true?

const bird = {
size: 'small',
};
objectstypes
Practice
#6Beginner

What's the output?

let c = { greeting: 'Hey!' };
let d;
objects
Practice
JSJS QuestionsLAB

Built by @kitsunekode. Original questions and explanations by Lydia Hallie.

XProject Repository

Product

  • Questions
  • Progress
  • Release notes
  • Credits

Resources

  • Project Repository
  • Lydia's Original Repo

Question content is based on Lydia Hallie's original 2019 repository, so newer JavaScript language features may not be covered everywhere. Learn more

JSQL · v0.1.7
JS Questions Lab

MasterJavaScript.Onequestionatatime.

Master JavaScript with interactive interview questions. Execute code in-browser, visualize the event loop, and commit the mechanics to memory. A precision instrument for interview prep.

Built by @kitsunekode. Based on Lydia Hallie's questions.

demo.js
function getAge() {
  'use strict';
  age = 21;
  console.log(age);
}

getAge();
155 Questions•12 Topics•100% Free•Open Source•149 Runnable Snippets•
155 Questions•12 Topics•100% Free•Open Source•149 Runnable Snippets•

How it works

The Practice Loop

A precision-engineered feedback cycle designed to commit advanced JavaScript to your long-term memory.

Find a question

Filter by topic, dial in the difficulty, or search directly to a concept.

01

Commit to an answer

No peeking. Force yourself to commit before the explanation reveals.

02

Run the code

Pop open the scratchpad. Execute snippets. See raw output immediately.

03

Understand why

Deep dive into the explanation. Deconstruct the event loop and execution context.

04

Coverage

Master Every Concept

Comprehensive coverage across 9 core topics

objects

82 challenges

types

48 challenges

arrays

39 challenges

scope

21 challenges

operators

17 challenges

prototypes

17 challenges

fundamentals

15 challenges

async

13 challenges

generators

7 challenges