
Identify the three interview types—theoretical, coding on paper, and project check—and learn to tackle 59 JavaScript challenges while building a showcase project to discuss your code.
Learn how interviews differ from real work and combine strategies to pass interviews with the practical knowledge essential for everyday programming.
Download the course PDF file containing all JavaScript interview questions, practice offline, and work through mapping users, extracting names, and other coding problems across the videos.
Access prepared source codes for each video by downloading a zip file and starting the project in the correct state to answer the video’s specific coding question.
Learn the difference between null and undefined in JavaScript, with examples showing unassigned variables yielding undefined and assigned null giving a null value, plus guidance on when to use each.
Explore hoisting in JavaScript, where var and function declarations bubble to the top, producing undefined or errors, while let and const do not hoist.
Explore closures in JavaScript by building a private counter with increment and get value methods, illustrating how a function preserves outer scope and exposes public API.
Explore currying in JavaScript by building a multiply function and a carry function. See how a function returns another function for partial application, and apply patterns like get and map.
Learn how to add elements to an array safely by using the spread operator to return a new array, avoid mutating the original array, and understand pure functions in JavaScript.
Learn to concatenate arrays in JavaScript without mutating inputs by using concat or the spread operator to merge multiple arrays.
Learn how to check if a user with a given name exists in an array of user objects using for loop, some, find, or findIndex with a predicate on user.name.
Remove duplicates in an array by using a set as a one-line solution, or implement with forEach and includes, or with reduce to build a unique accumulator.
Learn how to sort arrays in JavaScript using the sort method with a compare function. Explore mutability, returning values, and sorting objects by properties like an author's last name.
Treat interviews as two-way conversations about fit and knowledge. Ask about company culture, team dynamics, working conditions, and office setup to assess suitability.
Write a javascript range function that builds an array from start to end (exclusive), first with for loop and push, then with a one-line approach using array keys and spread.
Implement a JavaScript shuffle function by mapping each item to a random key, sorting by that key, and returning the original values, working for numbers, objects, or arrays.
Learn to count how many times the minimum value appears in an array by using Math.min with the spread operator and a filter to count occurrences, replacing a tedious loop.
Explore how this binds in JavaScript across functions, objects, and classes, and learn how to fix incorrect this with older self-variables or arrow functions for proper context.
Design an employee class with mandatory id and name, plus salary handling via setter and getter. Extend it to a manager class with a department.
Explore using JavaScript prototypes to implement classes, moving methods to prototype, and using object.create for inheritance to build employee and manager behavior without classes.
Recognize that failing interviews is normal and keep applying until you land your first job. After each interview, write down missed questions, google them, and seek feedback.
Explore ES6 modules and CommonJS in JavaScript, export named and default functions, import them across files, and run in the browser with type=module or in Node.js via CommonJS.
Implement a debounce function that delays execution until after the user stops typing, using a timer with clear timeout to ensure a single call after a set delay.
Explore how throttle immediately executes a function and ignores calls during the timeout, compare it with the bones function, and implement a wait-and-flag approach using a boolean and setTimeout.
Highlight words longer than eight characters in a paragraph by using javascript and dom methods, querySelector, splitting the text, mapping, and wrapping long words with a yellow background.
Create a link by using document.createElement, set its href to ipsum.com, assign link text from lorem ipsum, and append the anchor to the end of the document body.
Practice turning a paragraph into separate lines by sentence using a robust regular expression, handling single and multiple dots, escaping dots, and using global and multiline flags.
Demonstrates event delegation by replacing thousands of item listeners with a single listener on the app container, checking event.target's class to handle item clicks efficiently.
Learn how to implement an XMLHttpRequest to fetch data from GitHub, handle open, send, status checks, and success or error callbacks with console logs.
Learn how the fetch API uses promises, then and catch for handling results, convert responses to JSON, and compare modern, readable code with older approaches.
Learn how callbacks enable asynchronous JavaScript, using setTimeout to simulate data fetch, and see how a generic callback lets a synchronous function defer work and handle results.
Execute a parallel async function that runs an array of asynchronous functions, waits for all to complete, and returns the results in order via a single callback.
Learn to map users with promises by fetching users and statuses in parallel using Promise.all, then merge data into id, name, and isActive via map.
Rewrite mapping data in async await to read asynchronous operations as synchronous code using get mapped users and get user statuses. Implement try/catch for error handling and resolve promises.
Master correct vocabulary in JavaScript by using terms like function, method, class, and instance. Describe your program accurately to avoid misunderstandings and project confidence in interviews.
Design a recursive request manager that fetches data from a given url, retries with increasing delay and timeout on failure for a set number of attempts, using promises.
Learn to implement shallow comparison in JavaScript to compare primitives, arrays, and objects by value rather than reference, and know when deep comparison is needed for nested data.
Learn to convert a shallow compare into a deep compare by recursively checking nested arrays and objects. See how primitives, arrays, and objects are handled, with performance notes.
Create a memorization function in JavaScript that uses a closure and cache to add 10 to a value, returning cached results on repeat calls.
Explore how to implement Fibonacci in JavaScript using recursion, understand the Fibonacci sequence, and learn interview wisdom about when to memorize formulas.
Learn how to implement a palindrome function in JavaScript by reversing a string with split, reverse, and join, and comparing it to the original to identify palindromes.
Implement a JavaScript isAnagram function that checks length, lowercases both strings, sorts their letters, and compares results with examples like listen and silent.
Count vowels in a string with a JavaScript function, exploring both for-loop and reduce approaches, using a vowel set, lowercase conversion, and character iteration for a clean, functional solution.
Convert a 12-hour time input to 24-hour format in JavaScript by lowercasing, splitting hours and minutes, applying am/pm rules (including 12 a.m. and 12 p.m.), and padding zeros with padStart.
Map data from the back end to the front end by aligning the location key with the bulk config, producing a one-to-one structure for five objects.
Learn to build a generic JavaScript function to replace URL parameters using a replacements array, iterating with reduce to update an accumulator without mutating the original URL.
Learn to transform backend validation errors into a frontend friendly format by mapping object entries, concatenating field messages, and producing a human readable 'field: message' list.
Transform a flat list into a nested list by identifying root elements and recursively attaching children by id, using non-mutating object copies to form each node’s children array.
Master JavaScript interview questions through practical homework, completing 59 coding interview problems and sharpening problem-solving skills, preparation strategies, and mindset for interview success.
This course is great preparation for any javascript programming interviews that you may have coming up. Programming interviews need a lot amount of knowledge, but the best way to prepare for interviews is a lot of practice! In this course you will complete 59 javascript interview questions that come from real javascript interviews. There are no excersises that nobody asks here. In every question we will get a task first, then you will try to solve each problem yourself, and then I will show you different solutions to each problem step-by-step for different programmer levels. We will take a deep dive into the skills, concepts, and techniques that are required to solve each problem.
When you have completed this course you will have mastered the 59 interview questions that we will cover, but you will also have learned the concepts, skills, and techniques, that are necessary for you to excel in any other interview questions you may be asked. You will feel very confident going into any javascript programming interviews you will have. On top of all this, you will strengthen your javascript programming skills and javascript fundamentals in overall.
Core topics of the course:
Closures
Hoisting
Currying
Classes & Prototypes
Modules
Working with DOM
Asyncronous Javascript (Callback, Promises, Async await)
Memoization
Transforming data with real world tasks
Creating own utility functions