JavaScript
The language the web runs on: types and coercion, closures, prototypes, the event loop, promises and async.
0/818
- 1Data types in JavaScriptJunior
- 2Data types in JSJunior
- 3Difference between primitives and non-primitives in JavaScriptJunior
- 4Loose (==) vs strict (===) equality in JavaScriptJunior
- 5== vs ===Junior
- 6Ways to declare a variable: var, let, constJunior
- 7Ways to declare a variableJunior
- 8What is the difference between null and undefined?Junior
- 9Scope in JavaScriptJunior
- 10What is scope (variable visibility)?Junior
- 11Variable before declarationJunior
- 13Hoisting mechanismJunior
- 14Boxing and unboxing in JavaScriptMiddle
- 15Dynamic typingJunior
- 16The typeof operator in JavaScriptMiddle
- 17The typeof operatorMiddle
- 18Why typeof null is objectJunior
- 19typeof nullJunior
- 20NaNMiddle
- 21Type CoercionJunior
- 22Strict mode in JavaScriptMiddle
- 24Explicit and implicit type conversionJunior
- 25Why [] == false returns trueJunior
- 26[] == false ??Junior
- 27Template literalsJunior
- 28Increment and decrementJunior
- 29Increment and decrementJunior
- 30The ! operator (logical NOT)Junior
- 31The ! operatorJunior
- 33The in operatorJunior
- 34The in operatorJunior
- 35The delete operatorJunior
- 36The delete operatorJunior
- 37The instanceof operatorJunior
- 38The instanceof operator?Junior
- 39The new operatorJunior
- 41The void operatorJunior
- 42The void operatorJunior
- 43Ternary operatorJunior
- 44The && operatorJunior
- 45The && operatorJunior
- 46The nullish coalescing operator (??)Junior
- 47Nullish coalescing operatorJunior
- 48Truthy/falsy valuesJunior
- 50Accessing a non-existent object propertyMiddle
- 51Nonexistent object propertyMiddle
- 52String concatenationJunior
- 53What is JSON?Junior
- 54Working with JSON: stringify and parseJunior
- 55Working with JSONJunior
- 56Checking whether a value is an arrayJunior
- 57Checking for an arrayJunior
- 58By reference or by valueJunior
- 59Pass by value vs pass by referenceJunior
- 60Primitives and objects in memoryJunior
- 62Immutable and mutable dataMiddle
- 63Immutable/mutable dataMiddle
- 64Symbol in JavaScriptMiddle
- 65Symbol in JSMiddle
- 66BigInt vs IntJunior
- 67BigInt vs NumberJunior
- 69Property presence in an objectJunior
- 70Checking whether a property exists in an objectJunior
- 71Creating an objectMiddle
- 72Ways to create an objectMiddle
- 73Spread operatorJunior
- 74Errors and error handlingJunior
- 75Errors and their handlingJunior
- 76Optional chaining operatorJunior
- 77Optional chaining operatorJunior
- 78Conditional constructsJunior
- 79Conditional statementsJunior
- 81break in switchMiddle
- 82Types of loops in JSJunior
- 83Types of loops in JSJunior
- 84The continue keywordJunior
- 85The continue keywordJunior
- 86The break keywordJunior
- 87The break keywordJunior
- 88The for of loopJunior
- 89The for in loopJunior
- 90The label statement in JavaScriptMiddle
- 91The label operatorMiddle
- 92The throw statement in JavaScriptJunior
- 94Global variablesJunior
- 95Why is eval dangerous?Junior
- 96Why eval is dangerousJunior
- 1Arrow functions vs regular functionsMiddle
- 2Function declarationsJunior
- 3Difference between FD and FEJunior
- 4Anonymous functionsJunior
- 5hoistingJunior
- 7Arguments by valueJunior
- 8ClosuresMiddle
- 9Function contextJunior
- 10The arguments keywordJunior
- 11...rest parametersJunior
- 12Default parametersJunior
- 14spread when calling a functionJunior
- 15When is it better not to use arrow functions?Junior
- 16IIFEJunior
- 17Function ConstructorJunior
- 18Function.prototype.callJunior
- 19Function.prototype.applyJunior
- 20call vs applyJunior
- 21Function.prototype.bind?Middle
- 23toString() on a functionJunior
- 24Function factoryJunior
- 25wrapper functionMiddle
- 26Decorator functionJunior
- 27GeneratorsMiddle
- 28function* in JSMiddle
- 29Yield in generatorsJunior
- 30Generator return valueMiddle
- 31Yield inside () => {}Middle
- 32Generators and iteratorsMiddle
- 34this in JavaScriptJunior
- 35Losing contextJunior
- 36Benefits of closuresJunior
- 37Mistake with var in closures and loopJunior
- 38Scope of a functionJunior
- 39Scope with var | let | constJunior
- 40use strictJunior
- 41Global variablesJunior
- 42Callback functionJunior
- 44Callback in another functionJunior
- 45Parameters in a callbackJunior
- 46Async/sync callbackMiddle
- 47setTimeout(fn, 0)Junior
- 48RecursionJunior
- 49Base case in recursionJunior
- 50What problems does recursion solveJunior
- 51Tail recursionJunior
- 53Deep recursionMiddle
- 54Higher-order functionJunior
- 55Pure functionJunior
- 56Side effectsJunior
- 57Stateless functionJunior
- 58Immutability in functionsJunior
- 59CurryingMiddle
- 60Partial applicationJunior
- 61Currying vs partial applicationMiddle
- 62Function compositionJunior
- 63Implementing composeJunior
- 65Errors inside functionsJunior
- 1Object in JSMiddle
- 2Ways to declare an objectJunior
- 3Object vs arrayJunior
- 4Key-valueJunior
- 5New property in an objectJunior
- 6Deleting a property from an objectJunior
- 7Checking whether a property exists in an objectJunior
- 8Object.keys()Junior
- 10Object.entries()Junior
- 11Copying an objectJunior
- 12Shallow vs deep object copyingJunior
- 13How do you make a deep copy of an object?Junior
- 14Why can't you copy an object with the = operator?Junior
- 15Copying through Object.assignJunior
- 16structuredCloneJunior
- 17Object literalJunior
- 18Bracket notationJunior
- 19Missing propertyJunior
- 20Property shorthand ({ x, y })Junior
- 22Object methods after creationJunior
- 23Readonly propertiesJunior
- 24What does Object.defineProperty() do?Junior
- 25What does Object.assign() do?Junior
- 26What does Object.create() do?Junior
- 27What does Object.freeze() do?Junior
- 28What does Object.seal() do?Junior
- 29What does Object.preventExtensions() do?Middle
- 30What is a prototype?Junior
- 31Prototype chainJunior
- 33How does __proto__ differ from prototype?Junior
- 34Pure object without prototypeJunior
- 35Property lookup in the prototype chainJunior
- 36instanceof and prototypesJunior
- 37this inside an object methodJunior
- 38toString() on an objectMiddle
- 40What does the toJSON() method do?Junior
- 41What is a "property descriptor"?Middle
- 42The writable, enumerable, configurable flags?Middle
- 43What does Reflect.defineProperty() do?Middle
- 44How does Reflect differ from Object?Middle
- 45What does the Proxy object do?Middle
- 46What is a trap (traps)?Senior
- 2Filter in an arrayMiddle
- 3forEach in an arrayJunior
- 4find() in an arrayJunior
- 5reduce() in an arrayJunior
- 6some() in an arrayJunior
- 7every() in an arrayJunior
- 8sort() in an arrayJunior
- 9flatMap() vs map()Junior
- 11How to work with an arrayJunior
- 12Array indexJunior
- 13typeof []Junior
- 14Array checkJunior
- 15Different data types in an arrayJunior
- 16Changing length manuallyJunior
- 17delete arr[0]Junior
- 19Accessing a nonexistent indexJunior
- 20"dense" and "sparse" arrayJunior
- 21How to get the last element of an array?Junior
- 22What does push() do?Junior
- 23What does pop() do?Junior
- 24What does shift() do?Junior
- 25What does unshift() do?Junior
- 26push() vs concat()Junior
- 27What does splice() do?Junior
- 29What does reverse() do?Middle
- 30Sorting an array of numbersJunior
- 31What does join() do?Junior
- 32Shallow copy of an arrayJunior
- 33What does Array.from() do?Junior
- 34What does Array.of() do?Junior
- 35What is an array-like object?Junior
- 37What does copyWithin() do?Middle
- 38What does toReversed() do?Middle
- 39What does toSorted() do?Junior
- 40What does toSpliced() do?Junior
- 41for...in VS for...of in an arrayJunior
- 42The ... spread operatorJunior
- 43Destructuring with skipped elementsJunior
- 44What is a two-dimensional array?Junior
- 45How to iterate a two-dimensional array?Junior
- 46Flat array from a multidimensional arrayJunior
- 48What is WeakSet?Junior
- 49What is Map?Junior
- 50map VS objectJunior
- 51WeakMap VS MapJunior
- 1async/await for asynchronous requestsJunior
- 2What is asynchrony in JavaScript?Junior
- 3Why is JS considered single-threaded?Junior
- 5Synchronous VS asynchronous codeJunior
- 6Multithreading in JS?Middle
- 7Blocking operationJunior
- 8What is the event loop?Junior
- 9What is the call stack (call stack)?Middle
- 10What is the task queue?Junior
- 11What are microtasks (microtasks)?Junior
- 12Micro vs Macro tasksJunior
- 13Infinite loopJunior
- 15Types of asynchronous operationsJunior
- 16What does setTimeout() do and return?Junior
- 17What does setInterval() do?Junior
- 18setTimeout(fn, 0)Junior
- 19Timer execution guaranteeJunior
- 20Nested timersJunior
- 21What does queueMicrotask() do?Junior
- 22What does requestAnimationFrame() do?Junior
- 23What does requestIdleCallback() do?Middle
- 24What is a callback function?Junior
- 25What is "callback hell"?Junior
- 27What is a Promise?Junior
- 28When is a promise considered "fulfilled"?Junior
- 29Promise statesJunior
- 30How does resolve differ from reject?Middle
- 31then, catch, finallyJunior
- 32How does promise chaining work?Junior
- 33What does Promise.all() do?Junior
- 35What does Promise.race() do?Junior
- 36What does Promise.any() do?Junior
- 37How to cancel a promise?Junior
- 38What do AbortController and AbortSignal do?Junior
- 39What does Promise.withResolvers() do?Middle
- 40How does a "promise microtask" work?Junior
- 42What does an async function return?Junior
- 43What does await do?Junior
- 44What happens if you don't use await?Junior
- 45Blocking the current function with awaitJunior
- 46await and arrow functionsJunior
- 47Errors in asyncJunior
- 48What does the Web API do in the browser?Junior
- 50What is the "microtask queue"?Junior
- 51How does WebSocket work?Middle
- 52How do streams (ReadableStream, WritableStream) work?Senior
- 53What does a Web Worker do?Senior
- 54What does postMessage() do between threads?Senior
- 55Why doesn't a Web Worker have access to the DOM?Senior
- 56What does SharedWorker do?Senior
- 57What does a Service Worker do?Senior
- 1What is the DOM tree?Junior
- 3What is document?Junior
- 4What is window?Junior
- 5How does window differ from document?Junior
- 6What does navigator do?Junior
- 7What does the history object do?Junior
- 8Selectors for working with DOM elementsJunior
- 9How do you create an element in the DOM?Junior
- 10How to remove an element from the DOM?Junior
- 12Security and innerHTMLJunior
- 13Attributes vs properties of a DOM elementJunior
- 14What are data-* attributes?Junior
- 15What is an event in the DOM?Junior
- 16What do addEventListener() and removeEventListener() do?Middle
- 17How does onclick differ from addEventListener()?Junior
- 18What does event.target do?Junior
- 19How does event.target differ from event.currentTarget?Junior
- 21What does event.preventDefault() do?Junior
- 22Event delegation (Event Delegation)Junior
- 23Event bubblingJunior
- 24Event capturingJunior
- 25What is "event delegation"?Junior
- 26await in an event handlerJunior
- 27An anonymous function as a handlerJunior
- 29What does form.reset() do?Junior
- 30How to disable page scrolling?Junior
- 31What does IntersectionObserver do?Middle
- 32How does MutationObserver work?Middle
- 33What does window.location do?Junior
- 34What does localStorage do?Junior
- 35What does sessionStorage do?Junior
- 36localStorage VS sessionStorageJunior
- 38How does DOMContentLoaded differ from load?Middle
- 39What does the beforeunload event do?Junior
- 40What does the unload event do?Junior
- 41What does defer do in <script>?Junior
- 42What does async do in <script>?Junior
- 43What is the Canvas API?Middle
- 44What is Shadow DOM?Middle
- 45Shadow DOM vs DOMJunior
- 46What is indexedDB?Middle
- 1What is a class constructor?Junior
- 3What is a class in JavaScript?Junior
- 4Class vs constructor functionJunior
- 5How does a class differ from a constructor function?Junior
- 6Is it possible not to define a constructor?Junior
- 7Can you omit the constructorJunior
- 8How do you add a method to a class?Junior
- 9How to add a method to a classJunior
- 10Class method VS function in an object propertyJunior
- 12What does this do inside a class?Junior
- 13How do arrow methods differ from regular ones?Junior
- 14Arrow methods vs regular methodsJunior
- 15Class as an expression const A = class {}Junior
- 16A class as an expression const A = class {}Junior
- 18The extends keywordJunior
- 19The super keywordJunior
- 20What does the super() keyword do?Junior
- 21Multiple constructors in a classJunior
- 22Multiple constructors in a classJunior
- 23What does return do inside a constructor?Junior
- 24return inside a constructorJunior
- 25Default values for propertiesJunior
- 27What does the static keyword do?Junior
- 28The static keyword in classesJunior
- 29How to call a static methodJunior
- 30How do you call a static method?Junior
- 31Private propertiesJunior
- 32Private class propertiesJunior
- 34Private class fields outside a classJunior
- 35Inheriting private class fieldsJunior
- 36Can private properties be inherited?Junior
- 37Getters and setters in a classJunior
- 38Getters and settersJunior
- 39Classes and prototypesJunior
- 40How are classes related to prototypes?Junior
- 41Checking a class instanceJunior
- 42Checking for a class instanceJunior
- 1What is an error in JavaScript?Junior
- 3Syntax error VS runtime errorJunior
- 4What is an exception?Junior
- 5What does the throw operator do?Junior
- 6What types of errors exist in JavaScript?Junior
- 7How do you create a custom error type?Junior
- 8What does the try...catch construct do?Junior
- 9When does the catch block run?Junior
- 10What does the finally block do?Junior
- 11Does finally run if try has a return?Junior
- 13How do you create an error manually?Junior
- 14What does the call stack (stack trace) contain?Junior
- 15What does instanceof Error do?Junior
- 16How to extend Error with custom properties?Junior
- 17What does catch() do in promises?Junior
- 18Errors in async functionsMiddle
- 19What is debugging?Junior
- 20Browser debugging methodsJunior
- 21What does the debugger statement do?Junior
- 2ES6 and why it is the most important updateJunior
- 3How do let and const differ from var?Junior
- 4What are arrow functions?Junior
- 5What is destructuring?Junior
- 6Default values in destructuringJunior
- 7What does the ... operator do?Junior
- 9Template literalsJunior
- 10What does a "tagged template literal" do?Junior
- 11Classes in JSJunior
- 12import/exportJunior
- 13What is "tree shaking"?Junior
- 14What did ES6 bring for asynchrony?Junior
- 15What is a promise?Junior
- 16What is Map?Junior
- 17What does Set do?Junior
- 18What is Symbol?Junior
- 19What is an iterator?Middle
- 21Proxy, trapsMiddle
- 22What does Reflect do?Middle
- 23What is BigInt?Junior
- 24What does structuredClone() do?Junior
- 1Metrics for evaluating performanceJunior
- 2Bottlenecks in JS codeJunior
- 4Single-threaded JSJunior
- 5What does "non-blocking code" mean?Junior
- 6What is memoization?Junior
- 7How do you implement function memoization?Junior
- 8Input data sizeJunior
- 9What is a "bottleneck" in algorithms?Junior
- 10What is a memory leak in JS?Junior
- 12What does the garbage collector (GC) do?Junior
- 13What is "tree shaking"?Junior
- 14Timers and event listenersJunior
- 15How to profile memory usage?Junior
- 16What are "reflow" and "repaint"?Middle
- 17Batching DOM changesJunior
- 18Why is virtual DOM used?Middle
- 19Array methods vs loopsJunior
- 20Why not to block the event loop?Junior
- 22What does a Web Worker do?Middle
- 23Minimizing HTTP requestsJunior
- 24What is "lazy loading"?Junior
- 25What is "code splitting"?Junior
- 26What does "tree shaking" do?Junior
- 27Code minificationJunior
- 28How does "defer" differ from "async" in <script>?Junior
- 29Scripts in headJunior
- 31How to measure JS code performance?Junior
- 32How do WeakMap and WeakSet help the garbage collector?Middle
- 33What does "debounce" do?Junior
- 34What does "throttle" do?Junior
- 35What does Core Web Vitals measure?Junior
- 1Execution contextSenior
- 2What is an execution context made of?Senior
- 3Scope chain (chain of scopes)Senior
- 4Lexical scope in JavaScriptMiddle
- 5Global objectJunior
- 6Loop with var and setTimeoutJunior
- 8Event loop in detailMiddle
- 9What does AbortController do?Junior
- 10What is the garbage collector (Garbage Collector)? Explain in detail how it is structuredMiddle
- 11How do you avoid memory leaks?Junior
- 12What is a property descriptor?Middle
- 13What does Proxy do?Middle
- 14What does Reflect do?Middle
- 15Why is Reflect needed together with Proxy?Middle
- 16What is an iterator?Junior
- 17What is a generator (function*)?Middle
- 19How does "tree shaking" work?Middle
- 20What is "top-level await"?Junior
- 21Dynamic importJunior
- 22Why is eval() dangerous?Junior
- 23What does WeakRef do?Senior
- 24What does SharedArrayBuffer do?Senior
- 25What is the Temporal API?Middle
- 1Destructuring assignment in JavaScriptJunior
- 2Ways to declare functionsJunior
- 3Spread and REST operators in JavaScript: differences and examplesJunior
- 4Function declaration vs function expressionJunior
- 6What is a polyfill?Junior
- 7Passing arguments by value or by referenceJunior
- 8ClosuresMiddle
- 9Function contextJunior
- 10The arguments objectJunior
- 11IIFE, immediately invoked function expressionJunior
- 13Function.prototype.applyJunior
- 14call vs applyJunior
- 15Function.prototype.bindMiddle
- 16Explicitly setting this in JavaScriptJunior
- 17Factory functionJunior
- 18Wrapper functionMiddle
- 19Generator functionsMiddle
- 20The function* keywordMiddle
- 21The yield operator in generatorsJunior
- 22What a generator call returnsMiddle
- 23Yield inside an arrow functionMiddle
- 25The this keywordJunior
- 26Losing the this contextJunior
- 27What closures are used forJunior
- 28The var and closures pitfall in a loopJunior
- 29Scope of var, let and constJunior
- 30The use strict directiveJunior
- 32Callback functionJunior
- 33Callback hellJunior
- 34Passing a callback to another functionJunior
- 35Parameters in a callbackJunior
- 36Synchronous and asynchronous callbackMiddle
- 37setTimeout(fn, 0)Junior
- 38Tasks solved with recursionJunior
- 40Replacing recursion with a loopJunior
- 41Deep recursionMiddle
- 42Higher-order functionJunior
- 43Pure functionJunior
- 44Side effectsJunior
- 45Stateless functionJunior
- 46Immutability in functionsJunior
- 47CurryingMiddle
- 48Implementing composeJunior
- 49Errors inside functionsJunior
- 50Differences between arrow Function, Function declaration and Function expressionMiddle
- 52Ways to declare an objectJunior
- 53Key-value pairsJunior
- 54Adding a property to an objectJunior
- 55Call, apply and bind methods in JavaScriptMiddle
- 56Removing a property from an objectJunior
- 57What are higher-order functions in JavaScript (hof)Middle
- 58Checking whether a property exists in an objectJunior
- 59The Object.keys() methodJunior
- 60Pure functions and side effects in JavaScriptMiddle
- 61The Object.values() methodJunior
- 62The Object.entries() methodJunior
- 64Deep copy of an objectJunior
- 65Why the = operator does not copy an objectJunior
- 66Copying with Object.assignJunior
- 67structuredCloneJunior
- 68Missing property vs undefined valueJunior
- 69Property shorthandJunior
- 70Getters and setters in an objectJunior
- 71Adding methods after an object is createdJunior
- 72Read-only propertiesJunior
- 74Object.create()Junior
- 75Object.freeze() in JavaScriptJunior
- 76Object.seal() in JavaScriptJunior
- 77Object.preventExtensions() in JavaScriptMiddle
- 78What is stored in __proto__Junior
- 79Clean object without a prototypeJunior
- 80Property lookup in the prototype chainJunior
- 82The toJSON() method in JavaScriptJunior
- 83The writable, enumerable and configurable flagsMiddle
- 84Reflect.defineProperty()Middle
- 85Proxy trapsSenior
- 86scope in JavaScript: types and working principlesMiddle
- 87Array map methodJunior
- 88Array filter methodMiddle
- 90Array find methodJunior
- 91Lexical environment in JavaScriptMiddle
- 92Array reduce() methodJunior
- 93Array some() methodJunior
- 94Array every() methodJunior
- 95Array sort() methodJunior
- 97Creating an arrayJunior
- 98typeof for an arrayJunior
- 99Checking whether a value is an arrayJunior
- 100Mixed data types in one arrayJunior
- 101Changing an array length manuallyJunior
- 102The delete operator on an arrayJunior
- 103delete vs splice()Junior
- 104Accessing a non-existent array indexJunior
- 105Dense and sparse arraysJunior
- 106The push() methodJunior
- 107The pop() methodJunior
- 109The unshift() methodJunior
- 110The splice() methodJunior
- 111What the reverse() method doesMiddle
- 112Sorting an array of numbersJunior
- 113What the join() method doesJunior
- 114What the split() method doesJunior
- 115Shallow copy of an arrayJunior
- 116The Array.from() methodJunior
- 118The copyWithin() methodMiddle
- 119The toSorted() methodJunior
- 120The toSpliced() methodJunior
- 121for...in vs for...of on an arrayJunior
- 122Two-dimensional arrayJunior
- 123Iterating a two-dimensional arrayJunior
- 124Flattening a nested arrayJunior
- 125WeakSet in JavaScriptJunior
- 126Map vs objectJunior
- 127WeakMap vs MapJunior
- 129Difference between in operator and hasOwnProperty() method in JavaScriptMiddle
- 130Asynchrony in JavaScriptJunior
- 131Object.freeze(), object.seal() and object.assign() in JavaScriptMiddle
- 132Why JavaScript is considered single threadedJunior
- 133How to copy an Object in JavaScript?Middle
- 134What the term non-blocking meansJunior
- 135Synchronous vs asynchronous codeJunior
- 136OOP in JavaScript (Object-oriented programming)Middle
- 138Prototypes and prototypal inheritance in JavaScriptMiddle
- 139Blocking operationJunior
- 140Static methods in JavaScriptMiddle
- 141What is the event loopJunior
- 142Task queue in JavaScriptJunior
- 143Microtasks in JavaScriptJunior
- 144Microtasks vs macrotasksJunior
- 145Infinite loopJunior
- 146What setTimeout() does and returnsJunior
- 148setTimeout(fn, 0)Junior
- 149Timer accuracy guaranteeJunior
- 150Nested timersJunior
- 151The queueMicrotask() functionJunior
- 152The requestAnimationFrame() functionJunior
- 153The requestIdleCallback() functionMiddle
- 154Callback functionJunior
- 155What is callback hellJunior
- 156PromiseJunior
- 158Difference between resolve and rejectMiddle
- 159Promise chainingJunior
- 160Promise.all() in JavaScriptJunior
- 161Promise.allSettled() in JavaScriptJunior
- 162Promise.race() in JavaScriptJunior
- 163Promise.any() in JavaScriptJunior
- 165Promise.withResolvers()Middle
- 166The promise microtaskJunior
- 167The async keywordJunior
- 168What await doesJunior
- 169What happens if you omit awaitJunior
- 170Why await pauses only the current functionJunior
- 171await in arrow functionsJunior
- 172Error handling in async functionsJunior
- 173What Web API does in the browserJunior
- 174Macrotask queueJunior
- 176Streams: ReadableStream and WritableStreamSenior
- 177Web Workers in JavaScriptSenior
- 178postMessage() between threadsSenior
- 179Why a Web Worker has no DOM accessSenior
- 180SharedWorker in JavaScriptSenior
- 181Service WorkerSenior
- 183The DOM treeJunior
- 184Mutating and non-mutating Array methods in JavaScriptJunior
- 185Difference between DOM and HTMLJunior
- 186Set, Map, WeakSet and WeakMap in JavaScriptMiddle
- 187The document objectJunior
- 188The window objectJunior
- 189The difference between window and documentJunior
- 190The navigator objectJunior
- 191DOM selectors in JavaScriptJunior
- 192Creating a DOM elementJunior
- 193Security and innerHTMLJunior
- 195addEventListener and removeEventListenerMiddle
- 196onclick vs addEventListenerJunior
- 197The event.target propertyJunior
- 198The event.stopPropagation() methodJunior
- 199The event.preventDefault() methodJunior
- 200Event bubblingJunior
- 201Event delegationJunior
- 202await inside an event handlerJunior
- 204Cancelling form submissionJunior
- 205The form.reset() methodJunior
- 206Blocking page scrollJunior
- 207IntersectionObserverMiddle
- 208MutationObserverMiddle
- 209window.locationJunior
- 210localStorageJunior
- 211sessionStorageJunior
- 213The beforeunload eventJunior
- 214The unload eventJunior
- 215The defer attribute in scriptJunior
- 216The async attribute in scriptJunior
- 217Shadow DOM vs regular DOMJunior
- 218setTimeout and setInterval in JavaScriptJunior
- 219What is promise chaining in JavaScriptMiddle
- 220Promise.all, promise.race, promise.allsettled, promise.anyMiddle
- 221What is the difference between async/await and chaining?Junior
- 223Event propagation in JavaScript and its phasesMiddle
- 224What happens when an error occursJunior
- 225Difference between event.preventdefault() and event.stoppropagation()Middle
- 226Syntax error vs runtime errorJunior
- 227What is an exceptionJunior
- 228What the throw statement doesJunior
- 229Types of errors in JavaScriptJunior
- 230How to create a custom error typeJunior
- 231The try...catch statementJunior
- 232When the catch block runsJunior
- 233The finally blockJunior
- 235A new error thrown inside catchJunior
- 236Throwing an error manuallyJunior
- 237What a stack trace containsJunior
- 238Extending Error with custom propertiesJunior
- 239Errors in async functionsMiddle
- 240Browser debugging techniquesJunior
- 241The debugger statementJunior
- 242How can algorithm complexity be determined?Junior
- 243ES6 as the most important JS updateJunior
- 245The difference between let, const and varJunior
- 246DestructuringJunior
- 247Spread and rest operatorJunior
- 248Difference between spread and restJunior
- 249Tagged template literalsJunior
- 250Classes in JavaScriptJunior
- 251JavaScript modules: import/exportJunior
- 252What ES6 brought for async codeJunior
- 254The Map collection in JavaScriptJunior
- 255The Set collection in JavaScriptJunior
- 256The Symbol type in JavaScriptJunior
- 257Proxy and the get and set trapsMiddle
- 258The Reflect objectMiddle
- 259The structuredClone() functionJunior
- 260Performance evaluation metricsJunior
- 261Bottlenecks in JS codeJunior
- 262CPU-bound and I/O-bound tasksMiddle
- 263Non-blocking codeJunior
- 265Function memoizationJunior
- 266Input size and performanceJunior
- 267Memory leaks in JSJunior
- 268The garbage collector (GC) in JavaScriptJunior
- 269Timers and event listenersJunior
- 270Profiling memory usageJunior
- 271Reflow and repaintMiddle
- 272Batching DOM updatesJunior
- 274Array methods vs loopsJunior
- 275Blocking the event loopJunior
- 276Splitting a heavy task into chunksJunior
- 277Minimizing HTTP requestsJunior
- 278Tree shakingJunior
- 279Code minificationJunior
- 280defer vs async in a script tagJunior
- 281Scripts in headJunior
- 282Dynamic import()Junior
- 283Measuring JS code performanceJunior
- 285Throttle in JavaScriptJunior
- 286Core Web VitalsJunior
- 287What is idempotence?Senior
- 288What is a dead letter queue?Senior
- 289Execution context componentsSenior
- 290Lexical scopeMiddle
- 291A loop with var and setTimeoutJunior
- 292Temporal dead zone (TDZ)Middle
- 294AbortController in JavaScriptJunior
- 295Garbage collector (GC)Middle
- 296How to avoid memory leaksJunior
- 297Property descriptorMiddle
- 298The Proxy objectMiddle
- 299The Reflect objectMiddle
- 301IteratorJunior
- 302Generators and yieldMiddle
- 303Async generatorMiddle
- 304Tree shakingMiddle
- 305Top-level awaitJunior
- 306Dynamic importJunior
- 307Why eval() is dangerousJunior
- 308What WeakRef doesSenior
- 309What SharedArrayBuffer doesSenior
- 310Temporal API in JavaScriptMiddle