Back to Prep Library
Category Blueprint

JavaScript Interview Library

Closures, async programming & the engine core

Questions196
Views119.8k
Upvotes8.4k
Filter

Question Catalog

(196 visible)
JavaScript· Frontend

What are template literals?

1.2k52
easy
JavaScript· Frontend

Tricky JavaScript Scenario #41: Object.groupBy

1.2k53
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #36: Page Visibility API interval freezing

1.2k10
easy
JavaScript· Frontend

What is the difference between var, let, and const?

1.2k75
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #46: Array.prototype.with

1.1k20
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #40: strict mode this bindings binding rules

1.1k71
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #43: Array.prototype.toSorted

1.1k71
easy
JavaScript· Frontend

What is the difference between for...of and for...in?

98641
easy
JavaScript· Frontend

What does Array.filter do?

9491
easy
JavaScript· Phone Screen

What is hoisting in JavaScript?

94475
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #44: Array.prototype.toReversed

92980
easy
JavaScript· Frontend

What are static methods and properties?

92716
easy
JavaScript· Frontend

Tricky JavaScript Scenario #63: Passive event listener scroll enhancements

91916
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #76: Array.prototype.with

88353
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #73: Array.prototype.toSorted

8782
easy
JavaScript· Frontend

What are optional chaining and nullish coalescing?

87220
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #100: strict mode this bindings binding rules

8261
easy
JavaScript· Frontend

What is the difference between includes and indexOf?

80776
easy
JavaScript· Phone Screen

Describe the concept of 'scope' in JavaScript.

79574
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #70: strict mode this bindings binding rules

77968
easy
JavaScript· Frontend

Tricky JavaScript Scenario #11: Object.groupBy

75258
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #66: Page Visibility API interval freezing

72280
easy
JavaScript· Frontend

What is the difference between preventDefault and stopPropagation?

66613
easy
JavaScript· Phone Screen

What are `let`, `const`, and `var`? What are their differences?

61476
easy
JavaScript· Frontend

What is the difference between null and undefined?

58436
easy
JavaScript· Frontend

What is the difference between find and filter?

57231
easy
JavaScript· Frontend

What is globalThis?

53160
easy
JavaScript· Frontend

Tricky JavaScript Scenario #93: Passive event listener scroll enhancements

52711
easy
JavaScript· Phone Screen

What is the difference between Object.is, ==, and ===?

52165
easy
JavaScript· Frontend

What is short-circuit evaluation?

50569
easy
JavaScript· Frontend

Tricky JavaScript Scenario #71: Object.groupBy

47148
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #35: High Resolution Time API precision

46928
easy
JavaScript· Frontend

What are the quirks of the typeof operator?

46537
easy
JavaScript· Frontend

What is event bubbling and capturing?

45922
easy
JavaScript· Frontend

What do Array.some and Array.every do?

43866
easy
JavaScript· Frontend

What is the difference between synchronous and asynchronous code?

42051
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #65: High Resolution Time API precision

36475
easy
JavaScript· Frontend

What is the difference between localStorage, sessionStorage, and cookies?

35125
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #74: Array.prototype.toReversed

29865
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #14: Array.prototype.toReversed

28414
easy
JavaScript· Frontend

Tricky JavaScript Scenario #33: Passive event listener scroll enhancements

26321
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #95: High Resolution Time API precision

25941
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #96: Page Visibility API interval freezing

25969
easy
JavaScript· Frontend

How does instanceof work?

25640
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #16: Array.prototype.with

22268
easy
JavaScript· Frontend

What is the difference between map and forEach?

21380
easy
JavaScript· Frontend

What is destructuring?

19878
easy
JavaScript· Frontend

What do Object.keys, values, and entries return?

17720
easy
JavaScript· Phone Screen

What is JSON and why is it commonly used?

16750
easy
JavaScript· Frontend

What is the difference between == and ===?

1600
easy
JavaScript· Phone Screen

Tricky JavaScript Scenario #13: Array.prototype.toSorted

9159
easy
JavaScript· Frontend

How does `try...catch` work in JavaScript?

6033
easy
JavaScriptNetflix· Frontend2024, 2022

Debounce vs throttle — implement debounce

3.7k194
medium
JavaScript· Phone Screen

How do you implement infinite currying in JavaScript?

1.2k54
medium
JavaScript· Frontend

What is the difference between Object.freeze, seal, and preventExtensions?

1.2k0
medium
JavaScript· Frontend

Tricky JavaScript Scenario #90: BroadcastChannel multi-tab updates

1.1k48
medium
JavaScript· Frontend

How do you convert a callback-based function to a Promise?

1.1k60
medium
JavaScript· Frontend

Explain 'this' keyword in JavaScript.

1.1k66
medium
JavaScript· Frontend

How does the fetch API work?

1.1k20
medium
JavaScript· Frontend

When should you use Map and Set over objects and arrays?

1.1k3
medium
JavaScript· Frontend

What is memoization?

1.1k18
medium
JavaScript· Frontend

How does WeakMap allow garbage collection of keys?

1.1k35
medium
JavaScript· Frontend

Tricky JavaScript Scenario #78: Proxy traps custom sets

1.1k1
medium
JavaScript· DSA

Implement a robust Event Emitter class.

1.1k5
medium
JavaScript· Frontend

Tricky JavaScript Scenario #34: navigator.sendBeacon final telemetry

1.0k68
medium
JavaScript· Frontend

Tricky JavaScript Scenario #31: History API route state handling

1.0k80
medium
JavaScript· Frontend

Tricky JavaScript Scenario #68: ResizeObserver sizing alterations tracking

1.0k71
medium
JavaScript· Frontend

Tricky JavaScript Scenario #18: Proxy traps custom sets

97424
medium
JavaScript· Frontend

What does Object.create do?

97374
medium
JavaScript· Frontend

How do you correctly check for NaN?

95344
medium
JavaScript· Frontend

What are modules in JavaScript?

94180
medium
JavaScript· Frontend

What is lexical scoping and the scope chain?

93662
medium
JavaScript· Frontend

How do you implement a deepFreeze function recursively?

93545
medium
JavaScript· Frontend

What is a Promise and what are its states?

92260
medium
JavaScript· Frontend

Explain event delegation.

89949
medium
JavaScript· Frontend

What is an IIFE?

88253
medium
JavaScript· Frontend

How does Array.reduce work?

82167
medium
JavaScript· Frontend

What is event delegation?

81439
medium
JavaScript· Frontend

What is the difference between call, apply, and bind?

80026
medium
JavaScript· DSA

Tricky JavaScript Scenario #47: Reflect.ownKeys

78575
medium
JavaScript· Frontend

How do you handle asynchronous operations in JavaScript?

78478
medium
JavaScript· Frontend

Tricky JavaScript Scenario #79: Proxy traps custom gets

77554
medium
JavaScript· Frontend

Tricky JavaScript Scenario #45: Array.prototype.toSpliced

75255
medium
JavaScript· DSA

How do you implement a custom Promise.all polyfill?

72468
medium
JavaScript· Frontend

Tricky JavaScript Scenario #15: Array.prototype.toSpliced

71337
medium
JavaScript· Frontend

What do flat and flatMap do?

69176
medium
JavaScript· Frontend

How does the 'this' keyword work?

69038
medium
JavaScript· Frontend

Tricky JavaScript Scenario #19: Proxy traps custom gets

68277
medium
JavaScript· Frontend

Tricky JavaScript Scenario #75: Array.prototype.toSpliced

67824
medium
JavaScript· Frontend

Why is 0.1 + 0.2 not exactly 0.3?

66625
medium
JavaScript· Frontend

What are the spread and rest operators?

65852
medium
JavaScript· Frontend

Tricky JavaScript Scenario #98: ResizeObserver sizing alterations tracking

64466
medium
JavaScript· Frontend

What is the difference between arrow and regular functions?

63732
medium
JavaScript· Frontend

What are the basics of regular expressions in JavaScript?

60464
medium
JavaScript· Frontend

How do you deep clone an object in JavaScript?

58616
medium
JavaScript· Frontend

Tricky JavaScript Scenario #64: navigator.sendBeacon final telemetry

57664
medium
JavaScript· Frontend

What is the purpose of the `bind`, `call`, and `apply` methods?

57361
medium
JavaScript· Frontend

What does setTimeout with 0 delay actually do?

56612
medium
JavaScript· Frontend

Explain prototypal inheritance.

5577
medium
JavaScript· Frontend

What are closures in JavaScript?

54652
medium
JavaScript· Frontend

Tricky JavaScript Scenario #97: IntersectionObserver lazy loaded content

54219
medium
JavaScript· Frontend

What are the logical assignment operators?

52051
medium
JavaScript· Frontend

Tricky JavaScript Scenario #99: MutationObserver tree monitoring

51772
medium
JavaScript· Frontend

What is the difference between Object.freeze and const?

51411
medium
JavaScript· Frontend

What is the difference between ES modules and CommonJS?

50116
medium
JavaScript· Frontend

Tricky JavaScript Scenario #22: WeakSet garbage collection behavior

49417
medium
JavaScript· Frontend

What is the prototype chain?

49122
medium
JavaScript· Frontend

What does the delete operator do?

48942
medium
JavaScript· Frontend

Tricky JavaScript Scenario #92: DOM Layout Thrashing remedies

48056
medium
JavaScript· Frontend

Tricky JavaScript Scenario #62: DOM Layout Thrashing remedies

44257
medium
JavaScript· Frontend

Tricky JavaScript Scenario #48: Proxy traps custom sets

44053
medium
JavaScript· Frontend

Tricky JavaScript Scenario #69: MutationObserver tree monitoring

44058
medium
JavaScript· Frontend

Why must you pass the same function reference to removeEventListener?

43127
medium
JavaScript· Frontend

How do getters and setters work?

41666
medium
JavaScript· Frontend

Tricky JavaScript Scenario #25: custom debounce with cancel method

39748
medium
JavaScript· Frontend

How do you make an AJAX request?

38721
medium
JavaScript· Frontend

Tricky JavaScript Scenario #39: MutationObserver tree monitoring

36344
medium
JavaScript· Frontend

Tricky JavaScript Scenario #67: IntersectionObserver lazy loaded content

35627
medium
JavaScript· Frontend

Tricky JavaScript Scenario #52: WeakSet garbage collection behavior

35263
medium
JavaScript· Frontend

Tricky JavaScript Scenario #85: custom debounce with cancel method

30061
medium
JavaScript· Frontend

Tricky JavaScript Scenario #55: custom debounce with cancel method

29214
medium
JavaScript· Frontend

Tricky JavaScript Scenario #32: DOM Layout Thrashing remedies

29126
medium
JavaScript· Frontend

What are private class fields?

2904
medium
JavaScript· Frontend

Tricky JavaScript Scenario #12: Map.groupBy

28874
medium
JavaScript· Frontend

Tricky JavaScript Scenario #37: IntersectionObserver lazy loaded content

28335
medium
JavaScript· Frontend

What is the difference between slice and splice?

27242
medium
JavaScript· DSA

Tricky JavaScript Scenario #77: Reflect.ownKeys

26746
medium
JavaScript· Frontend

Tricky JavaScript Scenario #38: ResizeObserver sizing alterations tracking

26776
medium
JavaScript· Frontend

Tricky JavaScript Scenario #42: Map.groupBy

24640
medium
JavaScript· Frontend

What are computed property names?

24438
medium
JavaScript· Frontend

What does 'use strict' do?

22833
medium
JavaScript· Frontend

What is BigInt?

21413
medium
JavaScript· Frontend

Tricky JavaScript Scenario #82: WeakSet garbage collection behavior

21028
medium
JavaScript· Frontend

Tricky JavaScript Scenario #72: Map.groupBy

2046
medium
JavaScript· Frontend

Tricky JavaScript Scenario #30: BroadcastChannel multi-tab updates

18935
medium
JavaScript· Frontend

How does async/await work?

17880
medium
JavaScript· Frontend

Tricky JavaScript Scenario #49: Proxy traps custom gets

14825
medium
JavaScript· Frontend

Tricky JavaScript Scenario #91: History API route state handling

14627
medium
JavaScript· DSA

Tricky JavaScript Scenario #17: Reflect.ownKeys

14272
medium
JavaScript· Frontend

What do Array.from and Array.of do?

13449
medium
JavaScript· Frontend

What is a pure function?

13143
medium
JavaScript· Frontend

What is a higher-order function?

12231
medium
JavaScript· Frontend

Tricky JavaScript Scenario #94: navigator.sendBeacon final telemetry

10960
medium
JavaScript· Frontend

Tricky JavaScript Scenario #60: BroadcastChannel multi-tab updates

841
medium
JavaScript· Frontend

What is the difference between client-side and server-side rendering?

8353
medium
JavaScript· Frontend

Tricky JavaScript Scenario #61: History API route state handling

6913
medium
JavaScript· Frontend

How do you abort a Fetch API request using AbortController?

5819
medium
JavaScript· Frontend

Explain the event loop, call stack, and task queues.

1.2k48
hard
JavaScript· DSA

Tricky JavaScript Scenario #81: Symbol.asyncIterator paging fetches

1.1k31
hard
JavaScript· Frontend

What are function composition and pipe?

1.1k2
hard
JavaScript· System Design

Tricky JavaScript Scenario #58: SharedArrayBuffer thread isolation

1.1k51
hard
JavaScript· Frontend

What is the difference between Promise.all, allSettled, race, and any?

1.1k25
hard
JavaScript· Frontend

What is CORS?

1.1k80
hard
JavaScript· System Design

Tricky JavaScript Scenario #87: Array element kinds optimization

1.1k77
hard
JavaScript· System Design

Implement an async task queue with a concurrency limit.

1.1k44
hard
JavaScript· Frontend

What does yield* do in a generator?

1.0k26
hard
JavaScript· Frontend

What are async iterators and for await...of?

1.0k16
hard
JavaScript· System Design

Tricky JavaScript Scenario #88: SharedArrayBuffer thread isolation

1.0k17
hard
JavaScript· System Design

Tricky JavaScript Scenario #57: Array element kinds optimization

98163
hard
JavaScript· DSA

Tricky JavaScript Scenario #80: Symbol.iterator custom generator

93611
hard
JavaScript· Frontend

What is the Reflect API?

88464
hard
JavaScript· Frontend

What are Symbols and what are they used for?

87464
hard
JavaScript· DSA

Tricky JavaScript Scenario #50: Symbol.iterator custom generator

85978
hard
JavaScript· Frontend

What is a generator function?

80644
hard
JavaScript· System Design

Tricky JavaScript Scenario #27: Array element kinds optimization

79149
hard
JavaScript· Frontend

In what order do console.log, setTimeout, and Promise.then run?

77511
hard
JavaScript· Frontend

Explain how prototypal inheritance differs from classical inheritance.

74810
hard
JavaScript· DSA

Tricky JavaScript Scenario #83: deepClone with cycles detection

67650
hard
JavaScript· DSA

Tricky JavaScript Scenario #20: Symbol.iterator custom generator

66932
hard
JavaScript· Frontend

How do you implement a throttle function?

66031
hard
JavaScript· Frontend

What are tagged template literals?

58862
hard
JavaScript· Frontend

What is currying?

56341
hard
JavaScript· DSA

How do you implement a custom Promise.any polyfill?

54122
hard
JavaScript· DSA

Tricky JavaScript Scenario #53: deepClone with cycles detection

52976
hard
JavaScript· System Design

Tricky JavaScript Scenario #89: postMessage transferable streams

47816
hard
JavaScript· Frontend

What is the event loop?

47363
hard
JavaScript· Frontend

What is the temporal dead zone?

46559
hard
JavaScript· Frontend

How do iterators and the iterable protocol work?

43315
hard
JavaScript· Frontend

What is the difference between microtasks and macrotasks?

41771
hard
JavaScript· System Design

Tricky JavaScript Scenario #59: postMessage transferable streams

4012
hard
JavaScript· Frontend

Tricky JavaScript Scenario #56: custom throttle with leading flags

3320
hard
JavaScript· System Design

Tricky JavaScript Scenario #29: postMessage transferable streams

32469
hard
JavaScript· Frontend

Tricky JavaScript Scenario #26: custom throttle with leading flags

3242
hard
JavaScript· Frontend

What does the 'new' keyword do?

3117
hard
JavaScript· DSA

Tricky JavaScript Scenario #24: Function currying with placeholder inputs

2712
hard
JavaScript· DSA

Tricky JavaScript Scenario #23: deepClone with cycles detection

26953
hard
JavaScript· DSA

Tricky JavaScript Scenario #21: Symbol.asyncIterator paging fetches

26469
hard
JavaScript· DSA

Tricky JavaScript Scenario #54: Function currying with placeholder inputs

26342
hard
JavaScript· DSA

Tricky JavaScript Scenario #84: Function currying with placeholder inputs

2551
hard
JavaScript· Frontend

Tricky JavaScript Scenario #86: custom throttle with leading flags

22747
hard
JavaScript· Frontend

What are WeakMap and WeakSet?

21062
hard
JavaScript· DSA

How do you implement a simple Promise library from scratch?

17922
hard
JavaScript· DSA

Tricky JavaScript Scenario #51: Symbol.asyncIterator paging fetches

12234
hard
JavaScript· Frontend

What is debouncing and throttling?

11334
hard
JavaScript· System Design

Tricky JavaScript Scenario #28: SharedArrayBuffer thread isolation

534
hard
JavaScript· Frontend

What is a Proxy in JavaScript?

4214
hard

Difficulty Distribution

Easy52 (27%)
Medium95 (48%)
Hard49 (25%)

Hiring Companies

Tested Topics

#tricky#real-world#es2023#utility#observers#promises#rendering#proxy

Study Guide

Study prototypical inheritance, memory leaks in closures, V8 compilation stages, event loop task queues, and advanced asynchronous patterns.