A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Overview

Front-end Developer Interview Questions

This repository contains a number of front-end interview questions that can be used when vetting potential candidates. It is by no means recommended to use every single question here on the same candidate (that would take hours). Choosing a few items from this list should help you vet the intended skills you require.

Note: Keep in mind that many of these questions are open-ended and could lead to interesting discussions that tell you more about the person's capabilities than a straight answer would.

You can read more about this project & its history here.

Table of Contents

  1. General Questions
  2. HTML Questions
  3. CSS Questions
  4. JS Questions
  5. Accessibility Questions (external link)
  6. Testing Questions
  7. Performance Questions
  8. Network Questions
  9. Coding Questions
  10. Fun Questions

Getting Involved

  1. Contributors
  2. How to Contribute
  3. License

The project is currently maintained by:

Contributors

Feeling inspired? Check our Contributing guide to get started!

Darcy Clarke
Darcy Clarke

๐Ÿค” ๐Ÿ“– ๐Ÿš‡ ๐Ÿ‘€ ๐Ÿ’ฌ ๐Ÿ“ข ๐Ÿšง
Bo-Yi Wu
Bo-Yi Wu

๐Ÿ“– ๐Ÿ‘€
Nikolay Kostov
Nikolay Kostov

๐ŸŒ
Jan Hancic
Jan Hancic

๐ŸŒ
Rich Gilbank
Rich Gilbank

๐Ÿ“– ๐Ÿ‘€
Mattias Wallander
Mattias Wallander

๐ŸŒ
Songhun
Songhun

๐Ÿ“– ๐ŸŒ
Giulia Alfonsi
Giulia Alfonsi

๐ŸŒ
Mike Myat Min Han
Mike Myat Min Han

๐ŸŒ
SunLn
SunLn

๐ŸŒ
Yi, Hangehee
Yi, Hangehee

๐ŸŒ
shawnqiang
shawnqiang

๐ŸŒ
Guilherme Pontes
Guilherme Pontes

๐ŸŒ
lufeihaidao
lufeihaidao

๐ŸŒ
Donald Zhan
Donald Zhan

๐ŸŒ
Mina Markham
Mina Markham

๐Ÿ“–
Paul Irish
Paul Irish

๐Ÿ“–
Mathieu Hays
Mathieu Hays

๐ŸŒ
Yong Yin
Yong Yin

๐Ÿ“–
Dale Sande / @anotheruiguy
Dale Sande / @anotheruiguy

๐Ÿ“– ๐Ÿš‡ ๐Ÿ‘€
Marco Biedermann
Marco Biedermann

๐Ÿš‡
Victor Coulon
Victor Coulon

๐ŸŒ ๐Ÿ‘€
Paulo รvila
Paulo รvila

๐Ÿ“–
Ekrem Karaca
Ekrem Karaca

๐ŸŒ
Achal Varma
Achal Varma

๐Ÿ“–
Aurelio De Rosa
Aurelio De Rosa

๐Ÿ“–
Min Zhao
Min Zhao

๐ŸŒ
Cฤƒtฤƒlin Mariศ™
Cฤƒtฤƒlin Mariศ™

๐Ÿ“– ๐ŸŒ
Simon Owen
Simon Owen

๐Ÿ“–
Maxim Khlobystov
Maxim Khlobystov

๐Ÿ“– ๐Ÿ‘€
Sara
Sara

๐Ÿ“– ๐ŸŒ
Jason Hummel
Jason Hummel

๐Ÿ“–
Kunal Sachdeva
Kunal Sachdeva

๐Ÿ“–
AJ Jordan
AJ Jordan

๐Ÿ“–
paulalexandru
paulalexandru

๐Ÿ“– ๐ŸŒ
dot
dot

๐Ÿš‡ ๐ŸŒ
Everardo Medina
Everardo Medina

๐ŸŒ
Gaurav Nanda
Gaurav Nanda

๐Ÿ“–
Andrii Malaman
Andrii Malaman

๐Ÿ“–
Daniele Zanni
Daniele Zanni

๐ŸŒ
Fernando Freitas Alves
Fernando Freitas Alves

๐ŸŒ
John Wu
John Wu

๐Ÿ“–
Pablo Nevares
Pablo Nevares

๐Ÿ“– ๐ŸŒ
Felipe Ramos
Felipe Ramos

๐Ÿ“–
Arthur Verschaeve
Arthur Verschaeve

๐Ÿ“– ๐Ÿ‘€ ๐ŸŒ
Richard Denton
Richard Denton

๐Ÿ“–
Andrey Fadeyev
Andrey Fadeyev

๐ŸŒ
rimager
rimager

๐Ÿ“–
Rishabh Jain
Rishabh Jain

๐Ÿ“–
Kaijun Chen
Kaijun Chen

๐ŸŒ
Nithya
Nithya

๐Ÿ“–
Erwan Jegouzo
Erwan Jegouzo

๐Ÿ“–
Tieme van Veen
Tieme van Veen

๐Ÿ“–
Hsun
Hsun

๐ŸŒ
Adrien CHRETIEN
Adrien CHRETIEN

๐ŸŒ
Alan Rodrรญguez
Alan Rodrรญguez

๐ŸŒ
Adam Haris
Adam Haris

๐ŸŒ
Toshimaru
Toshimaru

๐ŸŒ
Shankar Cabus
Shankar Cabus

๐ŸŒ
Ash
Ash

๐ŸŒ
Hank Wang
Hank Wang

๐ŸŒ
KILLHAPPY.
KILLHAPPY.

๐Ÿ“–
Marko ล valjek
Marko ล valjek

๐ŸŒ
Antonio Laguna
Antonio Laguna

๐Ÿ“– ๐ŸŒ
Mithun Dhiman
Mithun Dhiman

๐ŸŒ
Kรฉvin Rocher / @Darklg
Kรฉvin Rocher / @Darklg

๐ŸŒ
Dmitry Pashkevich
Dmitry Pashkevich

๐ŸŒ
karmeljuk
karmeljuk

๐ŸŒ
Dirk Schรผrjohann
Dirk Schรผrjohann

๐ŸŒ
Bjรถrn Sรถderqvist
Bjรถrn Sรถderqvist

๐ŸŒ
Nitin Hayaran
Nitin Hayaran

๐Ÿ“–
Peter Galiba
Peter Galiba

๐Ÿ“–
Neil Heinrich
Neil Heinrich

๐Ÿ“–
Ohgyun Ahn
Ohgyun Ahn

๐ŸŒ
nerdog
nerdog

๐ŸŒ
Leo Picado
Leo Picado

๐ŸŒ
Romain Dardour
Romain Dardour

๐ŸŒ
Alex Seville
Alex Seville

๐Ÿ“–
่ƒกๅฐ็ฟไธถ
่ƒกๅฐ็ฟไธถ

๐ŸŒ
Vitalii Petrychuk
Vitalii Petrychuk

๐ŸŒ
Tairraos
Tairraos

๐Ÿ“– ๐ŸŒ
Dmitrii Raev
Dmitrii Raev

๐ŸŒ
Bartek
Bartek

๐ŸŒ
Vitor Balocco
Vitor Balocco

๐Ÿ“–
Jonathan Neal
Jonathan Neal

๐Ÿ“–
Christoffer Lans
Christoffer Lans

๐ŸŒ
Felipe Fialho
Felipe Fialho

๐ŸŒ
Piotrek Mierzejewski
Piotrek Mierzejewski

๐ŸŒ
Patrik Wibron
Patrik Wibron

๐ŸŒ
Dmitry Vislov
Dmitry Vislov

๐ŸŒ
Krzysztof Romanowski
Krzysztof Romanowski

๐Ÿ“–
Albert Yu
Albert Yu

๐ŸŒ
Sebastian Lara Menares
Sebastian Lara Menares

๐ŸŒ
sunnylost
sunnylost

๐ŸŒ
Daniel Yang
Daniel Yang

๐Ÿ“–
Michael P. Pfeiffer
Michael P. Pfeiffer

๐ŸŒ
Tyll WeiรŸ
Tyll WeiรŸ

๐ŸŒ
Andrei Sebastian Cรฎmpean
Andrei Sebastian Cรฎmpean

๐ŸŒ
Denis Sokolov
Denis Sokolov

๐Ÿ“–
Harijs Deksnis
Harijs Deksnis

๐ŸŒ
Rob Larsen
Rob Larsen

๐Ÿค” ๐Ÿ‘€ ๐Ÿšง
Cezar Augusto
Cezar Augusto

๐Ÿค” ๐Ÿš‡ ๐Ÿ‘€ ๐Ÿšง
Vasiliy Vanchuk
Vasiliy Vanchuk

๐Ÿค” ๐Ÿ‘€ ๐Ÿšง

License

Copyright (c) Contributors of the Front-end Developer Interview Questions

Comments
  • Create a new website

    Create a new website

    from #435

    While GitHub is popular, there are developers that rarely use source control at all, or just prefer another platform, so the website should be the go-to place for interview questions. Ours is kind of old and would be cool to have a better website.

    I thought about Docusaurus but any other tool would be great to have.

    Please note that after #445 each topic should have its own dedicated page.

    Things to discuss:

    • which tool?
    • which design?

    I definitely don't have time to build this in the near future but can definitely help/guide anyone who's interested.

    help-wanted 
    opened by cezaraugusto 26
  • Sources to learn for interview questions

    Sources to learn for interview questions

    I tried to find javascript books which go beyond just basic DOM manipulation and help us to answer interview questions like "Explain event delegation" (and more). I could not find any so far. Most books don't cover js in enough detail. So, can we also have a list of books to read ?

    opened by raj4dev 17
  • Adding question about promises

    Adding question about promises

    Maybe adding questions about promises and also difference between promise and jquery deffer would be nice. With recent changes promises will play important roles.

    opened by omer-demir 15
  • Added a JS q regarding window.onload and $(document).ready()

    Added a JS q regarding window.onload and $(document).ready()

    One of my favorite interview questions. You'd be surprised how many interviewees messed this up. An excellent answer (and discussion) can be found on StackOverflow. I'm not sure if this question belongs to JavaScript or jQuery though -- it's a bit of both.

    opened by phanan 12
  • Hindi translation #565

    Hindi translation #565

    Fixes # 565

    Type of change

    • [x] Other (please elaborate) Added Hindi translation for questions

    Checklist:

    • [x] My content follows the style guidelines of this project
    • [x] I have performed a self-review of my own content

    This pull request is for adding Hindi translation of questions. I have just added the folder hindi in src/translations folder and given source path in src/data/translations JSON file. Branch created for this purpose is named as hindi_translation#565. I am new to open source so if there is any error or mistake please let me know. Thank you.

    opened by swati-gwc 11
  • Overall improvements list

    Overall improvements list

    So at the time of this writing, this project counts 31.661 stars which indicate how popular it is -- hanking in 60th in number of stars, just 2 positions behind Angular.

    However, the web evolves fast and while most questions here remain relevant, I guess we're in a good time for an update -- there are lots of improvements we can do to help more developers. I tried to list some:

    Better guidelines: what questions do we want? what makes a good question? (related: #307, #331, #335, #361, #421, #433)

    We should describe more fully what questions we want to be added. Plus, in this project standards, what makes a good question? Being crystal clear here reduces stale PRs and encourage more contributors. Even a small addition such as a descriptive issue/PR template is helpful.

    Also, I think questions regarding performance, http(s) and some front-end security best practices are valid and should be included too.

    Re-organize questions (#257)

    The web evolved a lot since this project was created -- specially JavaScript. Breaking down questions and dividing into sub-groups seems to be a necessity. How can we make it in a nice way?

    Indicate resources with good answers (#338)

    I like the idea of a "questions only" project but if we really want to help interviewers/candidates the best we can, having an area with some resources is a nice to have. While some searching might give the answer users are looking for, they might be misleading. The side effect of this might be that resources can potentially be oppinionated but I'd like to open discussion for this.

    Create a new website

    While GitHub is popular, there are developers that rarely use source control at all, or just prefer other platform, so the website should be the go-to place for interview questions. Ours is kind of old and would be cool to have a better website.

    I spoke to a friend (@edkf) who's interested in making a design mockup to make it look cooler. I thought about using Docusaurus just because it's easy and designed for docs but if overkill I'm open for any other tool to make it.

    Automate translations

    As far as I know, the electron-i18n project was very successful using Crowdin as a tool for translating the project. Accepting translation PRs means that we rely 100% on maintainers which usually do not speak the translated language. Having it open for live edits might have better eyes to review translations. I'm not familiar with the tool but this might take some work to automate things, but would be nice.

    Dedicate a -- very special area -- for contributors.

    I really like the All Contributors specification and we should definitely use it. The website has some early contributors and a link to show all the other 100 ones. While this is cool this can be better with a cool link/avatar exposed for each contributor so maybe some of them might use this project's popularity to land a good opportunity, who knows? that's why we're doing this!

    cc @h5bp/frontend-interview team. This is just a tracking list of nice's-to-have, we can break it down in smaller issues and address each idea separately as we define things.

    By the way this is not tied to maintainers only and all feedback is welcome.

    help-wanted pinned 
    opened by cezaraugusto 10
  • Website...

    Website...

    Last week, while being interviewed on the changelog podcast, I was asked why this project doesn't have a proper website. It's not well known but we do have a Github Page that is just a nicer looking version of the markdown file at http://h5bp.github.io/Front-end-Developer-Interview-Questions/.

    I've also been asked countless times about what questions a "Junior" or a "Senior" Developer should know or be asked from this document. Terminology like this, of course, can be polarizing. Everyone's concept of a Junior or Senior Developer is different and every role has it's own specific challenges and knowledge requirements. Although those specific labels aren't helpful, I've begun to think that including meta-data and having the ability to label questions would be infinitely helpful for discoverability.

    Sub-categorization is already being talked about in @richgilbank's issue #257, although I think we need to think about this a bit more broadly. Currently, we're extremely limited in how we can format and showcase content based on using only a markdown file. That said, I think there's a serious need to broaden the horizons of this project and build a proper website.

    The HTML5 Please site is a good example of the kind of labelling/filtering we could add to questions to make search/discoverability much easier. But that's just the beginning.

    Thoughts, feedback and suggestions are welcomed.

    opened by darcyclarke 10
  • GitHub Action to autobuild to gh-pages branch

    GitHub Action to autobuild to gh-pages branch

    this looks like it could do the trick: https://github.com/marketplace/actions/eleventy-action

    name: Eleventy Build
    on: [push]
    
    jobs:
      build_deploy:
        runs-on: ubuntu-20.04
        steps:
          - uses: actions/checkout@master
          - name: Build
            uses: TartanLlama/actions-eleventy@master
          - name: Deploy
            uses: peaceiris/actions-gh-pages@v3
            with:
              publish_dir: _site 
              publish_branch: gh-pages
              github_token: ${{ secrets.GITHUB_TOKEN }}
    
    infrastructure 
    opened by coliff 9
  • adds a couple of ES6 related questions (partly addresses #421)

    adds a couple of ES6 related questions (partly addresses #421)

    Here is an addition to JS section: 4 questions about latest ES6 standard.

    1. What is the most modern approach to accessing the list of arguments passed to a function?

    This question identifies if candidate is aware of rest syntax, which is the modern standard for handling parameters passed to a function. Explaining what is the problem with arguments, imo, should count as bonus points.

    2. What are the benefits of using spread syntax and how is it different from rest syntax?

    If a candidate knows in which cases to opt for spread syntax, it means that he/she is writing more concise, cleaner code (e.g. replacing apply). Knowing the difference is really important since both syntaxes look exactly the same, but the aims are different.

    3. How can you share code between files?

    This one tests candidate's knowledge about ES6 modules, which is an essential part of modern day web development.

    4. Why you might want to create static class members?

    The purpose is to elicit an explanation of "static vs. private", plus common use case for static class methods.

    opened by Powell-v2 9
  • To be or not to be?

    To be or not to be?

    This is actually my last question in my interview just about 3 weeks ago. My interviewer wrote out this sentence 2B || !2B and asked me what is the result.

    My answer: true as I considered 2B as a variable and it would be true. His answer: 43, consider this 0x2B || !0x2B

    What is yours ?

    opened by thovo 9
  • Fix indonesian translation

    Fix indonesian translation

    • The document in Indonesian was horribly translated by google translate. It was also a little outdated in comparison to its english version. My changes are mostly fixing weird sentences and keeping the doc up to date. Hopefully it is more legible now for Indonesian readers. :tada:
    • While I am at it, I added a couple of missing links to the table of content for english version. And fix a little typo for consistency. :smile:
    opened by dermatobia 9
  • feat(js-questions):added some js questions

    feat(js-questions):added some js questions

    Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

    Fixes # (issue)

    Type of change

    Please delete options that are not relevant.

    • [ ] New Question
    • [ ] Revision of an existing question
    • [ ] Infrastructure change (automation, etc.)
    • [x] Other (please elaborate)

    Checklist:

    • [x] My content follows the style guidelines of this project
    • [x] I have performed a self-review of my own content

    Pull requests should be thought of as a conversation. There will be some back and forth when trying to get code merged into this or any other project. With all but the simplest changes you can and should expect that the maintainers of the project will request changes to your code. Please be aware of that and check in after you open your PR in order to get your code merged in cleanly.

    Thanks!

    opened by g-umac 1
  • Interim translations update

    Interim translations update

    Adding a list of files to translate and a list of language codes and folder names. I'm going to, one time, update the translations to get this into the shape we expect the project to be in, in the future.

    help-wanted 
    opened by roblarsen 5
  • Automating Translations

    Automating Translations

    Workflow?

    1. Questions are edited in English
    2. There are no translations in development or PR branches
    3. development a new (soon to be) protected branch, is the target for PRs and ongoing development.
    4. We create an Action for merges into main (monthly?) that
      1. Runs tranlsate.mjs (not the garbage version in this PR as of this writing, but a good version) which uses Azure translator api to translate to our target languages. We can add as many languages as we can translate for less than 2,000,000 characters a month.
      2. Creates a GitHub release (because why not)
      3. Build eleventy and pushes to gh-pages

    Questions:

    1. Still use eleventy and link to translations?
    2. Would we want to copy the same multiple md file structure of the root for the translated folders?
    3. What would we have to do to make sure we can still use eleventy on the automated translated markdown files.
    4. Would it be better to serve the users preferred language?
    (เฉญ*หŠแต•ห‹)เฉญโ™ฅ translation 
    opened by roblarsen 4
  • Adding Dynamic programming and Data Structures questions

    Adding Dynamic programming and Data Structures questions

    Would it be possible to add some dynamic programming questions or data structures

    eg) Implementing a Hashtable or Linked List or implementing Conway's Game of Life, seems like recruiters ask those types of questions even if you are probably just getting hired to maintain a landing page ๐Ÿค”.

    opened by iamziike 1
  • automate translations

    automate translations

    from #435

    As far as I know, the electron-i18n project was very successful using Crowdin as a tool for translating the project. Accepting translation PRs means that we rely 100% on maintainers which usually do not speak the translated language. Having it open for live edits might have better eyes to review translations. I'm not familiar with the tool but this might take some work to automate things, but would be nice.

    help-wanted 
    opened by cezaraugusto 6
Market Watcher - a blog where you can inform yourself about the latest economic-related news

Market Watcher - a blog where you can inform yourself about the latest economic-related news

Adrien 4 Aug 5, 2022
List of 1000 JavaScript Interview Questions

JavaScript Interview Questions & Answers Click โญ if you like the project. Pull Requests are highly appreciated. Follow me @SudheerJonna for technical

Sudheer Jonna 13.3k Dec 31, 2022
Weirdest JavaScript Interview Questions & Answers

Part 3 - JavaScript Pro Tips - Learn with Sumit Table of Contents How to run Contact How to run Different lessons taught in the Youtube Tutorial are o

Learn with Sumit 34 Dec 28, 2022
Example questions for a manager interview

Manager Interview Questions A list of interview questions for manager roles. Follow Ryan Burgess on Twitter Management How would you describe your man

Ryan Burgess 136 Dec 12, 2022
Coding Interview Questions solved with Javascript ๐Ÿ’ก

ยฉ๏ธ Coding Interview Questions Coding Interview Questions solved with Javascript ?? ?? Problems Name Description Tag Code Balanced Parentheses Check if

Lais Frigรฉrio 21 Dec 1, 2022
A website that will curate recently-asked interview questions from FAANG+ to help people practice & prep!

defaang.io A website that will curate recently-asked interview questions from FAANG+ to help people practice & prep! The questions will be submitted a

YK 488 Dec 12, 2022
Easy-to-use tool to inform you about potential risks in your project dependencies list

sdc-check Easy-to-use tool to inform you about potential risks in your project dependencies list Usage Add to your project Add new npm command to scri

Maksim Balabash 132 Dec 4, 2022
Show a helpful summary of test results in GitHub Actions CI/CD workflow runs

Test Summary Produce an easy-to-read summary of your project's test data as part of your GitHub Actions CI/CD workflow. This helps you understand at-a

Test Summary 293 Jan 2, 2023
๐ŸŽฒ An exact-results dice-rolling library, for answering dice-related stat questions.

Roll.js ?? An exact-results dice-rolling library, for answering dice-related stat questions. I'm an avid D&D player, as is my brother, and we both lik

Tab Atkins Jr. 8 Dec 28, 2022
Google meet re-joiner when you can't rejoin yourself.

Doreamon(BETA) Product Demo Auto meeting re-joiner for google meet. Supports Google Chrome Opera Edge(not tested) Firefox Installation Guidelines: Ins

Muneeb Ur Rehman 4 Jun 14, 2021
10lift Applicant Test Senior Front End Development

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

BarฤฑลŸ ร–ZDEMฤฐRCฤฐ 2 Sep 27, 2021
Sample project to demonstrate Playwright Test usage, pointing to ServeRest API and Front-end

demo-playwright-test This is a sample project to demonstrate Playwright Test usage, running tests against ServeRest API and Front-end. Pre-requisites

Stefan Teixeira 30 Oct 24, 2022
A website where all the members can participate and ask questions. anybody can comment and give the answer.

A website where all the members can participate and ask questions. anybody can comment and give the answer. if the creator of the question feels that answer is correct then he/she can mark the answer as correct. The project is under construction. Open source contributions are most welcome.??

CODEINPYTHON 17 Dec 19, 2022
No-code test automation solution for end-to-end testing

No-code test automation tool for end-to-end testing Table of Contents About Features Installation Usage Creating tests Running tests Roadmap Our Team

OSLabs Beta 63 Oct 18, 2022
Personal Blog - a project developed with Angular for the front-end interface and Wordpress for the back-end API served with Docker containers

PersonalBlog This project was generated with Angular CLI version 13.0.1. Front-end Interface Development server Run ng serve or ng serve --configurati

null 9 Oct 5, 2022
Pass trust from a front-end Algorand WalletConnect session, to a back-end web service

AlgoAuth Authenticate to a website using only your Algorand wallet Pass trust from a front-end Algorand WalletConnect session, to a back-end web servi

Nullable Labs 16 Dec 15, 2022
It consists of a recreation of Twitter, to put into practice both Front-end and Back-end knowledge by implementing the MERN Stack together with other technologies to add more value to the project.

Twitter-Clone_Back-end โœจ Demo. ?? About the project. ?? Descriptions. It consists of a recreation of Twitter, to put into practice knowledge of both F

Mario Quirรณs Luna 5 Apr 12, 2022