| # | title | topic | type | difficulty |
|---|---|---|---|---|
| 31 | Copy or alias? | Patterns & Performance | Multiple choice | Easy |
| 32 | Factory functions vs constructors | Patterns & Performance | Multiple choice | Easy |
| 33 | localStorage, sessionStorage, cookies | Web Platform | Multiple choice | Easy |
| 34 | The call stack: push, run, pop | Event Loop & Memory | Multiple choice | Easy |
| 35 | Test the tester: total() |
| Unit Testing |
| Write the tests |
| Easy |
| 36 | Test the tester: maxOf() | Unit Testing | Write the tests | Easy |
| 37 | Test the tester: capitalize() | Unit Testing | Write the tests | Easy |
| 38 | Test the tester: reverseString() | Unit Testing | Write the tests | Easy |
| 39 | Test the tester: isPalindrome() | Unit Testing | Write the tests | Easy |
| 40 | Coercion flow: false + 4 | Type Coercion | Drag & drop | Easy |
| 41 | Coercion flow: '5' + 1 | Type Coercion | Drag & drop | Easy |
| 42 | Coercion flow: '5' - 1 | Type Coercion | Drag & drop | Easy |
| 43 | Coercion flow: typeof typeof false | Type Coercion | Drag & drop | Easy |
| 44 | Coercion flow: !!'0' | Type Coercion | Drag & drop | Easy |
| 45 | Coercion flow: 1 + true | Type Coercion | Drag & drop | Easy |
| 46 | Coercion flow: '' || 'anon' | Type Coercion | Drag & drop | Easy |
| 47 | Coercion flow: null + 1 | Type Coercion | Drag & drop | Easy |
| 48 | Reading a var before its line | Scope & Hoisting | Multiple choice | Easy |
| 49 | Reading a let before its line | Scope & Hoisting | Multiple choice | Easy |
| 50 | Calling a function above its declaration | Scope & Hoisting | Multiple choice | Easy |
| 51 | Calling a function expression above its line | Scope & Hoisting | Multiple choice | Easy |
| 52 | var leaks, let doesn't | Scope & Hoisting | Multiple choice | Easy |
| 53 | Hoisting flow: console.log(x); var x = 5 | Scope & Hoisting | Drag & drop | Easy |
| 54 | Hoisting flow: hi(); function hi() {…} | Scope & Hoisting | Drag & drop | Easy |
| 55 | Event loop machine: sync, a timer, and a promise | Event Loop & Memory | Runtime machine | Easy |
| 56 | Hoisting machine: the creation pass | Scope & Hoisting | Runtime machine | Easy |
| 57 | Scope machine: the lookup walks outward | Scope & Hoisting | Runtime machine | Easy |
| 58 | target vs currentTarget | DOM Events | Multiple choice | Easy |
| 59 | The once option | DOM Events | Multiple choice | Easy |
| 60 | Smuggling data in CustomEvent | DOM Events | Multiple choice | Easy |