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
1. implement curry()
JavaScript
easy
30923 accepted
3. implement Array.prototype.flat()
JavaScript
medium
23566 accepted
4. implement basic throttle()
JavaScript
Lodash
medium
17214 accepted
6. implement basic debounce()
JavaScript
Lodash
easy
16687 accepted
19. find corresponding node in two identical DOM tree
JavaScript
easy
10498 accepted
16. create an Event Emitter
JavaScript
medium
10403 accepted
11. what is Composition? create a pipe()
JavaScript
easy
9424 accepted
2. implement curry() with placeholder support
JavaScript
medium
8889 accepted
17. Create a simple store for DOM element
JavaScript
easy
8117 accepted
14. Implement a general memoization function - `memo()`
JavaScript
medium
8065 accepted
32. implement `Promise.all()`
JavaScript
medium
8025 accepted
18. Improve a function
JavaScript
easy
7299 accepted
8. can you shuffle() an array?
JavaScript
easy
7118 accepted
28. implement clearAllTimeout()
JavaScript
easy
7001 accepted
176. undefined to null
JavaScript
easy
6554 accepted
23. create a sum()
JavaScript
medium
6337 accepted
7. implement debounce() with leading & trailing option
JavaScript
Lodash
medium
6208 accepted
9. decode message
JavaScript
medium
6079 accepted
5. implement throttle() with leading & trailing option
JavaScript
Lodash
medium
5929 accepted
10. first bad version
JavaScript
Algorithm
medium
5912 accepted
167. Intersection of unsorted arrays
JavaScript
Algorithm
easy
5590 accepted
58. get DOM tree height
JavaScript
Algorithm
DOM
medium
5351 accepted
151. implement Array.prototype.map()
JavaScript
medium
5199 accepted
15. implement a simple DOM wrapper to support method chaining like jQuery
JavaScript
easy
5046 accepted
25. Reorder array with new indexes
JavaScript
Algorithm
easy
5041 accepted
162. find the single integer
JavaScript
Algorithm
easy
4757 accepted
35. implement `Promise.race()`
JavaScript
easy
4432 accepted
29. implement async helper - `sequence()`
JavaScript
medium
4376 accepted
33. implement `Promise.allSettled()`
JavaScript
medium
4354 accepted
165. remove characters
Algorithm
medium
4346 accepted
155. create a count function
JavaScript
easy
4279 accepted
34. implement `Promise.any()`
JavaScript
medium
4202 accepted
159. implement promisify()
JavaScript
easy
4142 accepted
64. auto-retry Promise on rejection
JavaScript
medium
4093 accepted
92. throttle Promises
JavaScript
medium
3857 accepted
148. create a counter object
JavaScript
easy
3842 accepted
113. Virtual DOM I
JavaScript
Algorithm
DOM
medium
3748 accepted
161. toBe() or not.toBe()
JavaScript
medium
3433 accepted
13. Implement a Queue by using Stack
JavaScript
Algorithm
medium
3396 accepted
154. Two-way binding
JavaScript
DOM
easy
3205 accepted
39. implement range()
JavaScript
easy
3107 accepted
57. create an Observable
JavaScript
medium
2990 accepted
104. Traverse DOM level by level
JavaScript
Algorithm
DOM
medium
2986 accepted
146. implement Array.prototype.reduce()
JavaScript
medium
2986 accepted
68. get DOM tags
JavaScript
Algorithm
DOM
medium
2921 accepted
91. invert a binary tree
JavaScript
Algorithm
easy
2894 accepted
30. implement async helper - `parallel()`
JavaScript
medium
2816 accepted
67. create your own Promise
JavaScript
medium
2797 accepted
20. Detect data type in JavaScript
JavaScript
medium
2756 accepted
26. implement Object.assign()
JavaScript
medium
2726 accepted
12. implement Immutability helper
JavaScript
medium
2689 accepted
89. Next Right Sibling
JavaScript
DOM
easy
2630 accepted
37. implement Binary Search (unique)
JavaScript
easy
2620 accepted
157. semver compare
JavaScript
easy
2610 accepted
168. move zeros
JavaScript
Algorithm
medium
2540 accepted
31. implement async helper - `race()`
JavaScript
easy
2499 accepted
46. implement `_.once()`
JavaScript
Lodash
medium
2495 accepted
60. create your own `new` operator
JavaScript
easy
2460 accepted
63. create `_.cloneDeep()`
JavaScript
Algorithm
Lodash
medium
2459 accepted
110. serialize and deserialize binary tree
JavaScript
Algorithm
medium
2424 accepted
47. reverse a linked list
JavaScript
Algorithm
easy
2361 accepted
40. implement Bubble Sort
JavaScript
Algorithm
easy
2241 accepted
21. implement JSON.stringify()
JavaScript
hard?
2212 accepted
145. most frequently occurring character
JavaScript
easy
2197 accepted
56. call APIs with pagination
JavaScript
medium
2181 accepted
85. implement `_.get()`
JavaScript
Lodash
medium
2105 accepted
61. create your own `Function.prototype.call`
JavaScript
medium
2082 accepted
118. Virtual DOM II - createElement
JavaScript
easy
2032 accepted
133. roman numerals to integer
JavaScript
easy
2024 accepted
125. implement classNames()
JavaScript
medium
1994 accepted
69. implement deep equal `_.isEqual()`
JavaScript
Lodash
medium
1969 accepted
123. implement Promise.prototype.finally()
JavaScript
medium
1967 accepted
103. implement Math.sqrt()
JavaScript
Algorithm
medium
1954 accepted
163. integer to roman numerals
JavaScript
Algorithm
easy
1942 accepted
81. merge sorted arrays
JavaScript
Algorithm
easy
1858 accepted
121. A number sequence
JavaScript
easy
1801 accepted
107. Find the largest difference
JavaScript
Algorithm
easy
1800 accepted
105. find the first duplicate character in a string
JavaScript
string
easy
1783 accepted
83. create an interval
JavaScript
medium
1779 accepted
38. implement `jest.spyOn()`
JavaScript
easy
1763 accepted
130. create LazyMan()
JavaScript
medium
1687 accepted
173. uncompress string
JavaScript
string
algorithm
medium
1663 accepted
48. search first index with Binary Search(possible duplicate array)
JavaScript
Algorithm
easy
1656 accepted
102. validate string of parentheses
JavaScript
Algorithm
string
easy
1652 accepted
120. create `isPrime()`
JavaScript
Algorithm
easy
1627 accepted
106. Find two numbers that sum up to 0
JavaScript
Algorithm
easy
1624 accepted
94. implement your own `Object.create`
JavaScript
easy
1623 accepted
158. Previous Left Sibling
JavaScript
DOM
medium
1616 accepted
138. Intersection of two sorted arrays
JavaScript
Algorithm
easy
1611 accepted
53. write your own `extends` in es5
JavaScript
medium
1603 accepted
87. longest substring with unique characters
JavaScript
Algorithm
easy
1595 accepted
122. implement memoizeOne()
JavaScript
medium
1540 accepted
131. implement _.chunk()
JavaScript
Lodash
medium
1528 accepted
54. flatten Thunk
JavaScript
easy
1524 accepted
140. Virtual DOM III - Functional Component
JavaScript
easy
1514 accepted
86. Generate Fibonacci Number
JavaScript
Algorithm
medium
1505 accepted
97. compress a string
JavaScript
string
easy
1472 accepted
66. remove duplicates from an array
JavaScript
Algorithm
medium
1414 accepted
49. search last index with Binary Search(possible duplicate array)
JavaScript
Algorithm
easy
1353 accepted
109. implement `Math.pow()`
JavaScript
Algorithm
easy
1353 accepted
116. implement Object.is()
JavaScript
easy
1349 accepted
36. create a fake timer(setTimeout)
JavaScript
medium
1314 accepted
42. implement Insertion Sort
JavaScript
Algorithm
easy
1309 accepted
156. implement `_.set()`
JavaScript
Lodash
medium
1306 accepted
24. create a Priority Queue in JavaScript
JavaScript
Algorithm
medium
1295 accepted
135. localStorage with expiration
JavaScript
medium
1281 accepted
65. add comma to number
JavaScript
medium
1273 accepted
59. create a browser history
JavaScript
medium
1261 accepted
90. write your own `instanceof`
JavaScript
medium
1230 accepted
152. Find Top k Elements
JavaScript
Algorithm
medium
1230 accepted
147. Pick up stones
JavaScript
easy
1206 accepted
93. Generate Fibonacci Number with recursion
JavaScript
easy
1204 accepted
55. highlight keywords in HTML string
JavaScript
Algorithm
medium
1184 accepted
22. implement JSON.parse()
JavaScript
medium
1175 accepted
100. detect circle in linked list
JavaScript
Algorithm
easy
1175 accepted
43. implement Quick Sort
JavaScript
Algorithm
medium
1155 accepted
27. implement completeAssign()
JavaScript
medium
1141 accepted
44. implement Selection Sort
JavaScript
Algorithm
easy
1123 accepted
41. implement Merge Sort
JavaScript
Algorithm
medium
1110 accepted
50. search element right before target with Binary Search(possible duplicate array)
JavaScript
Algorithm
easy
1108 accepted
101. merge identical API calls
JavaScript
medium
1090 accepted
139. implement _.partial()
JavaScript
Lodash
medium
1067 accepted
52. create a middleware system
JavaScript
medium
1053 accepted
95. implement String.prototype.trim()
JavaScript
medium
988 accepted
82. find available meeting slots
JavaScript
Algorithm
medium
986 accepted
79. convert snake_case to camelCase
JavaScript
medium
978 accepted
51. search element right after target with Binary Search(possible duplicate array)
JavaScript
Algorithm
easy
956 accepted
170. Generate CSS Selector for target element
JavaScript
medium
945 accepted
96. count "1" in binary form
JavaScript
easy
896 accepted
88. support negative Array index in JavaScript
JavaScript
medium
879 accepted
45. find the K-th largest element in an unsorted array
JavaScript
Algorithm
medium
876 accepted
62. implement BigInt addition
JavaScript
Algorithm
easy
860 accepted
166. validate number string
JavaScript
Algorithm
string
medium
856 accepted
117. event delegation
JavaScript
medium
822 accepted
136. find median of two sorted array
JavaScript
Algorithm
medium
813 accepted
149. interpolation
JavaScript
medium
799 accepted
111. Count palindromic substrings
JavaScript
Algorithm
string
medium
735 accepted
108. Implement a Stack by using Queue
JavaScript
Algorithm
medium
715 accepted
132. the angle between hour hand and minute hand of a clock
JavaScript
medium
697 accepted
142. lit-html 1 - tagged templates
JavaScript
lit-html
easy
693 accepted
177. Implement Object.groupBy()
JavaScript
medium
687 accepted
119. create a tokenizer
JavaScript
medium
664 accepted
112. remove duplicate characters in a string
JavaScript
Algorithm
string
medium
626 accepted
134. create your own Cookie
JavaScript
medium
621 accepted
153. uglify CSS class names
JavaScript
medium
599 accepted
172. implement `Math.clz32()`
JavaScript
medium
593 accepted
70. implement Observable.from()
JavaScript
medium
584 accepted
80. implement your own URLSearchParams
JavaScript
hard?
576 accepted
84. create a fake timer (setInterval)
JavaScript
medium
551 accepted
137. binary tree vertical traversal
JavaScript
Algorithm
hard?
546 accepted
71. implement Observable Subject
JavaScript
medium
524 accepted
171. create callback on message channel
JavaScript
medium
495 accepted
99. extract all anchor element from HTML string
JavaScript
medium
493 accepted
72. implement Observable interval()
JavaScript
easy
486 accepted
164. implement Immer produce()
JavaScript
medium
475 accepted
75. implement BigInt subtraction
JavaScript
Algorithm
medium
467 accepted
74. implement Observable Transformation Operators
JavaScript
easy
438 accepted
73. implement Observable fromEvent()
JavaScript
easy
419 accepted
98. validate an IP address
JavaScript
medium
405 accepted
169. LRU - Chrome storage automatic eviction
JavaScript
Algorithm
medium
382 accepted
78. convert HEX color to RGBA
JavaScript
medium
342 accepted
143. Virtual DOM IV - JSX 1
JavaScript
medium
312 accepted
141. implement btoa()
JavaScript
easy
277 accepted
124. calculate arithmetic expression
JavaScript
Algorithm
medium
246 accepted
76. implement BigInt addition with sign
JavaScript
medium
221 accepted
160. implement atob()
JavaScript
medium
199 accepted
144. serialize and deserialize data types not supported in JSON
JavaScript
medium
173 accepted
114. implement BigInt multiplication
JavaScript
medium
170 accepted
150. Virtual DOM V - JSX 2
JavaScript
medium
167 accepted
77. implement BigInt subtraction with sign
JavaScript
medium
133 accepted
115. implement BigInt division
JavaScript
medium
83 accepted
126. BigDecimal addition
JavaScript
Algorithm
medium
82 accepted
174. CSS Grid Layout auto-placement algorithm - sparse
JavaScript
CSS
hard?
58 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