BFE
.dev
EN
Practice
Explore
EN
JavaScript Coding Questions
As a Front-End developer, JavaScript is the core skill of everything
Sort
Difficulty
Solved status
Company
Sort: most accepted
Difficulty: medium
3. implement Array.prototype.flat()
JavaScript
medium
24135 accepted
4. implement basic throttle()
JavaScript
Lodash
medium
17720 accepted
16. create an Event Emitter
JavaScript
medium
10619 accepted
2. implement curry() with placeholder support
JavaScript
medium
9186 accepted
32. implement `Promise.all()`
JavaScript
medium
8300 accepted
14. Implement a general memoization function - `memo()`
JavaScript
medium
8280 accepted
8. can you shuffle() an array?
JavaScript
medium
7365 accepted
23. create a sum()
JavaScript
medium
6513 accepted
7. implement debounce() with leading & trailing option
JavaScript
Lodash
medium
6371 accepted
9. decode message
JavaScript
medium
6250 accepted
5. implement throttle() with leading & trailing option
JavaScript
Lodash
medium
6117 accepted
10. first bad version
JavaScript
Algorithm
medium
6064 accepted
58. get DOM tree height
JavaScript
Algorithm
DOM
medium
5417 accepted
151. implement Array.prototype.map()
JavaScript
medium
5314 accepted
33. implement `Promise.allSettled()`
JavaScript
medium
4527 accepted
29. implement async helper - `sequence()`
JavaScript
medium
4519 accepted
165. remove characters
Algorithm
medium
4372 accepted
34. implement `Promise.any()`
JavaScript
medium
4350 accepted
64. auto-retry Promise on rejection
JavaScript
medium
4257 accepted
92. throttle Promises
JavaScript
medium
3968 accepted
113. Virtual DOM I
JavaScript
Algorithm
DOM
medium
3798 accepted
161. toBe() or not.toBe()
JavaScript
medium
3497 accepted
13. Implement a Queue by using Stack
JavaScript
Algorithm
medium
3491 accepted
57. create an Observable
JavaScript
medium
3070 accepted
146. implement Array.prototype.reduce()
JavaScript
medium
3068 accepted
104. Traverse DOM level by level
JavaScript
Algorithm
DOM
medium
3020 accepted
68. get DOM tags
JavaScript
Algorithm
DOM
medium
2962 accepted
30. implement async helper - `parallel()`
JavaScript
medium
2905 accepted
20. Detect data type in JavaScript
JavaScript
medium
2883 accepted
67. create your own Promise
JavaScript
medium
2839 accepted
26. implement Object.assign()
JavaScript
medium
2820 accepted
12. implement Immutability helper
JavaScript
medium
2768 accepted
46. implement `_.once()`
JavaScript
Lodash
medium
2582 accepted
168. move zeros
JavaScript
Algorithm
medium
2562 accepted
63. create `_.cloneDeep()`
JavaScript
Algorithm
Lodash
medium
2549 accepted
110. serialize and deserialize binary tree
JavaScript
Algorithm
medium
2447 accepted
56. call APIs with pagination
JavaScript
medium
2233 accepted
85. implement `_.get()`
JavaScript
Lodash
medium
2161 accepted
61. create your own `Function.prototype.call`
JavaScript
medium
2130 accepted
125. implement classNames()
JavaScript
medium
2052 accepted
69. implement deep equal `_.isEqual()`
JavaScript
Lodash
medium
2047 accepted
123. implement Promise.prototype.finally()
JavaScript
medium
2022 accepted
103. implement Math.sqrt()
JavaScript
Algorithm
medium
1991 accepted
83. create an interval
JavaScript
medium
1829 accepted
130. create LazyMan()
JavaScript
medium
1723 accepted
173. uncompress string
JavaScript
string
algorithm
medium
1681 accepted
53. write your own `extends` in es5
JavaScript
medium
1661 accepted
158. Previous Left Sibling
JavaScript
DOM
medium
1631 accepted
122. implement memoizeOne()
JavaScript
medium
1568 accepted
131. implement _.chunk()
JavaScript
Lodash
medium
1566 accepted
86. Generate Fibonacci Number
JavaScript
Algorithm
medium
1550 accepted
66. remove duplicates from an array
JavaScript
Algorithm
medium
1451 accepted
36. create a fake timer(setTimeout)
JavaScript
medium
1356 accepted
24. create a Priority Queue in JavaScript
JavaScript
Algorithm
medium
1336 accepted
65. add comma to number
JavaScript
medium
1326 accepted
156. implement `_.set()`
JavaScript
Lodash
medium
1318 accepted
135. localStorage with expiration
JavaScript
medium
1317 accepted
59. create a browser history
JavaScript
medium
1302 accepted
90. write your own `instanceof`
JavaScript
medium
1253 accepted
152. Find Top k Elements
JavaScript
Algorithm
medium
1237 accepted
55. highlight keywords in HTML string
JavaScript
Algorithm
medium
1213 accepted
43. implement Quick Sort
JavaScript
Algorithm
medium
1207 accepted
22. implement JSON.parse()
JavaScript
medium
1198 accepted
27. implement completeAssign()
JavaScript
medium
1171 accepted
41. implement Merge Sort
JavaScript
Algorithm
medium
1160 accepted
101. merge identical API calls
JavaScript
medium
1133 accepted
52. create a middleware system
JavaScript
medium
1096 accepted
139. implement _.partial()
JavaScript
Lodash
medium
1085 accepted
95. implement String.prototype.trim()
JavaScript
medium
1018 accepted
82. find available meeting slots
JavaScript
Algorithm
medium
1012 accepted
79. convert snake_case to camelCase
JavaScript
medium
1006 accepted
170. Generate CSS Selector for target element
JavaScript
medium
956 accepted
88. support negative Array index in JavaScript
JavaScript
medium
899 accepted
45. find the K-th largest element in an unsorted array
JavaScript
Algorithm
medium
896 accepted
166. validate number string
JavaScript
Algorithm
string
medium
861 accepted
117. event delegation
JavaScript
medium
839 accepted
136. find median of two sorted array
JavaScript
Algorithm
medium
822 accepted
149. interpolation
JavaScript
medium
805 accepted
111. Count palindromic substrings
JavaScript
Algorithm
string
medium
743 accepted
108. Implement a Stack by using Queue
JavaScript
Algorithm
medium
732 accepted
177. Implement Object.groupBy()
JavaScript
medium
726 accepted
132. the angle between hour hand and minute hand of a clock
JavaScript
medium
707 accepted
119. create a tokenizer
JavaScript
medium
677 accepted
112. remove duplicate characters in a string
JavaScript
Algorithm
string
medium
634 accepted
134. create your own Cookie
JavaScript
medium
630 accepted
153. uglify CSS class names
JavaScript
medium
609 accepted
70. implement Observable.from()
JavaScript
medium
596 accepted
172. implement `Math.clz32()`
JavaScript
medium
595 accepted
84. create a fake timer (setInterval)
JavaScript
medium
563 accepted
71. implement Observable Subject
JavaScript
medium
539 accepted
99. extract all anchor element from HTML string
JavaScript
medium
501 accepted
171. create callback on message channel
JavaScript
medium
495 accepted
75. implement BigInt subtraction
JavaScript
Algorithm
medium
488 accepted
164. implement Immer produce()
JavaScript
medium
483 accepted
98. validate an IP address
JavaScript
medium
411 accepted
169. LRU - Chrome storage automatic eviction
JavaScript
Algorithm
medium
387 accepted
78. convert HEX color to RGBA
JavaScript
medium
346 accepted
143. Virtual DOM IV - JSX 1
JavaScript
medium
313 accepted
124. calculate arithmetic expression
JavaScript
Algorithm
medium
255 accepted
76. implement BigInt addition with sign
JavaScript
medium
229 accepted
160. implement atob()
JavaScript
medium
200 accepted
114. implement BigInt multiplication
JavaScript
medium
179 accepted
144. serialize and deserialize data types not supported in JSON
JavaScript
medium
174 accepted
150. Virtual DOM V - JSX 2
JavaScript
medium
167 accepted
77. implement BigInt subtraction with sign
JavaScript
medium
138 accepted
115. implement BigInt division
JavaScript
medium
86 accepted
126. BigDecimal addition
JavaScript
Algorithm
medium
82 accepted
128. BigDecimal multiplication
JavaScript
Algorithm
medium
46 accepted
129. BigDecimal Division
JavaScript
Algorithm
medium
44 accepted
127. BigDecimal subtraction
JavaScript
Algorithm
medium
39 accepted
175. CSS Grid Layout auto-placement algorithm - dense
JavaScript
CSS
medium
21 accepted