Back to all AlgoDaily courses

Frontend Interview Questions

A series of interview questions for frontend engineering, spanning Javascript/Typescript, HTML, CSS, and web development best practices.

Section Menu

How do I use this section?

1. LESSON

Typescript Syntax and Features Interview Questions

The Typescript language verifies your Javascript code ahead of time with static type checking. Javascript is a dynamic programming language where we can do all sorts of crazy things, like reference variables that don't exist or work with unknown objects. The code is interpreted by a browser...

2. LESSON

Advanced Javascript Interview Questions

Setting the Stage for Advanced JavaScript Mastery JavaScript isn't just another language; it's the lifeblood of modern web development. With the rise of web development stacks like MERN (MongoDB, Express, React, Node.js), MEAN (MongoDB, Express, Angular, Node.js), and MEVN (MongoDB, Express, Vue.js, Node.js), mastering JavaScript b...

3. LESSON

HTML Interview questions

HTML is the language in which everything on the web is built, and thus, it is the web's fundamental building block. When searching for a job in the software development industry, no matter for what type of position, it is very likely that HTML will be one of the requirements for the position. In this article, we are going to point out some of t...

4. LESSON

CSS Interview Questions

In a world where the web is the most fundamental source of information and virtual interaction, everything relies on having a well-structured, readable, and attractive website or web application. The main technology to achieve this is CSS (Cascade Style Sheets), which gives each website a nice look and feel. Whether you are a web designer, web d...

5. LESSON

React Interview Questions Cheat Sheet

What is React? React is a front-end JavaScript library developed by Facebook in 2011. It follows the component-based approach which helps in building reusable UI components. It is used for developing complex and interactive web (and mobile, with React Native) UI. Even though it was open-sourced only in 2015, it has one of the largest communit...

6. LESSON

Common Angular Interview Questions

What is Angular? Angular is a free and open-source web application framework, developed by Google. It is based on NodeJS, and it uses Typescript as its main development language. It was introduced to create Single Page applications, it brings structure and consistency to web applications and it provides scalability and maintainability. What ar...

7. CHALLENGE

Hoisting and Call Stack

Understanding Variable Scoping in JavaScript Let's dig into a fascinating JavaScript example to unravel the mystery of variable scoping. The Code Snippet Here's the code we'll be examining: var numOfBeers = 5; function getMoreBeers() { console.log('I have this many beers: ' + numOfBeers); var numOfBeer...

8. CHALLENGE

Closures and Dependency Injection

In JavaScript, closures and dependency injection are powerful concepts that enable modular, maintainable, and flexible code. In this challenge, you will explore these concepts by implementing a specific functionality using closures and then using closures for dependency injection. Part 1: Closures Closures allow...

9. CHALLENGE

Get Data Type

Detecting JavaScript Data Types: A Universal Method The Challenge Imagine a universe of data types in JavaScript! It's a colorful world with characters like Array, ArrayBuffer, Map, Set, Date, and the mysterious Function. Your mission, should you choose to accept it, is to create a universal method that identifi...

10. CHALLENGE

Implement Promise.all

According to the MDN docs, the Promise.all() method "takes an iterable of promises as an input, and returns a single Promise that resolves to an array of the results of the input promises". It is useful when there is a collection of promises that you need to resolve prior to some other code execution work that neeeds to be done. H...

11. CHALLENGE

Implement Array.shuffle

Shuffling an array is an operation that generates a random inline permutation of the elements of a given array. Can you implement a shuffle method, that will accept one parameter - the array to shuffle, and will shuffle its elements in a random order? An example of how your method should work, would be to generate one of the poss...

12. CHALLENGE

Implement Throttling

Both debouncing and throttling are intended to enhance a website's performance. They accomplish this primarily by limiting the number of times a function can execute. In the case of throttling, the exact definition is that it's a technique where a function can be executed only once in any given time interval-- **regardless of how...

13. CHALLENGE

Create Curry Function

In mathematics and computer science, currying is the technique of converting a function that takes multiple arguments into a sequence of functions that each takes a single argument. Currying provides a way for working with functions that take multiple arguments, and using them in frameworks where functions might take onl...

14. CHALLENGE

Implement JSON.parse

In JavaScript by default, there is a method that can parse a given JSON string, and it can be invoked by calling JSON.parse(). The way this method works is constructing the JavaScript value or object described by the string. Can you implement your own version of this method, called parseJSON, accepting one parameter (the JSON...

15. CHALLENGE

Create Event Emitter

In modern applications, we often need asynchronous functions. These wait for responses from operations with unknown completion times. So many frameworks use an event-driven architecture. Certain objects called emitters emit named events. This triggers listener functions to execute. Each event has an ID. So listeners know wh...

16. CHALLENGE

Implement Instance Of

In Object-Oriented programming, an instance represents an object which is an instantiation of a class. An object can also be an instance of a given class A if it is instantiated from a class B that extends the class A. In a non-programming context, you could think of "cat" as a class and your particular cat as an instance o...

17. CHALLENGE

Implement JSON.stringify

In Javascript there is a method called JSON.stringify() that can convert an object or a variable into a JSON string. The method handles different data types differently, ending up with its correct JSON "translation". Some examples of how this method handles different types include: Boolean, Number, and String object...

18. CHALLENGE

Implement ClearAllTimeouts

Mastering Time Control in Browsers with window.clearAllTimeouts Imagine you have the power to control time in your browser. You can schedule events to happen in the future and even cancel them before they occur. This is exactly what window.setTimeout() and window.clearTimeout() allow you to do! Scheduling a Future Ev...

19. CHALLENGE

Create Browser History

Every modern browser has implemented a logic for keeping track of the users' browsing history. Usually, it keeps track of the websites visited, and their order, so the user can be able to go back and forth between their recently visited websites. Can you implement a simplified version of a browser history tracker, that will keep...

20. CHALLENGE

Create a Pipe Method

Composition is putting two or more different things together, and getting a combination of the inputs as a result. In terms of programming, composition is often used for combining multiple functions and getting a result at the end. Using composition leads to a cleaner and much more compact code. If we want to call multiple f...

21. CHALLENGE

Implement Array.reduce

In JavaScript there is a built-in method called reduce() that can be used over the Array prototype. What this method does, is that it executes a user-supplied "reducer" callback function on each element of the array, in order, passing in the return value from the calculation on the preceding element. The final result of ru...

22. CHALLENGE

Implement Array.flat

In Javascript there is a method for flattening an array that can be invoked by calling the function flat(array, depth). This function works in such a way that it reduces the nesting of a given array, by creating a new array with all sub-array elements concatenated into it recursively up to the given depth level. This means tha...