├── .all-contributorsrc
├── .editorconfig
├── .github
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
├── dependabot.yml
└── stale.yml
├── .gitignore
├── CONTRIBUTORS.md
├── LICENSE.md
├── README.md
├── config
├── deploy.sh
└── eleventy.config.js
├── package-lock.json
├── package.json
└── src
├── 404.njk
├── _data
├── contributors.json
├── maintainers.json
├── og.json
├── questions.json
├── site.json
└── translations.json
├── _includes
├── assets
│ ├── css
│ │ ├── content.css
│ │ ├── defaults.css
│ │ ├── footer.css
│ │ ├── header.css
│ │ ├── navigation.css
│ │ ├── prism.css
│ │ └── variables.css
│ └── js
│ │ └── app.js
├── components
│ ├── footer.njk
│ └── navigation.njk
└── layouts
│ ├── default.njk
│ └── page.njk
├── about.njk
├── assets
└── images
│ ├── apple-touch-icon.png
│ ├── bg.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── gradient.svg
│ └── og-image.png
├── index.njk
├── questions
├── coding-questions.md
├── css-questions.md
├── fun-questions.md
├── general-questions.md
├── html-questions.md
├── javascript-questions.md
├── network-questions.md
├── performance-questions.md
└── testing-questions.md
├── sitemap.xml.njk
├── translations.njk
└── translations
├── arabic
└── README.md
├── bulgarian
└── README.md
├── burmese
└── README.md
├── chinese-traditional
└── README.md
├── chinese
└── README.md
├── croatian
└── README.md
├── czech
└── README.md
├── danish
└── README.md
├── dutch
└── README.md
├── farsi
└── README.md
├── french
└── README.md
├── german
└── README.md
├── greek
└── README.md
├── hebrew
└── README.md
├── hindi
└── README.md
├── hungarian
└── README.md
├── indonesian
└── README.md
├── italian
└── README.md
├── japanese
└── README.md
├── korean
├── README.md
└── Reference.md
├── latvian
└── README.md
├── polish
└── README.md
├── portuguese
└── README.md
├── romanian
└── README.md
├── russian
└── README.md
├── serbian
└── README.md
├── slovakian
└── README.md
├── slovenian
└── README.md
├── spanish
└── README.md
├── swedish
└── README.md
├── turkish
└── README.md
├── ukrainian
└── README.md
└── vietnamese
└── README.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | end_of_line = lf
8 | indent_size = 2
9 | indent_style = space
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | trim_trailing_whitespace = false
15 |
--------------------------------------------------------------------------------
/.github/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | education, socio-economic status, nationality, personal appearance, race,
10 | religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at rob@htmlcssjavascript.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
--------------------------------------------------------------------------------
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to Front-end Developer Interview Questions
2 |
3 | Please take a moment to review this document in order to make the contribution
4 | process easy and effective for everyone involved.
5 |
6 | Following these guidelines helps to communicate that you respect the time of
7 | the developers managing and developing this open source project. In return,
8 | they should reciprocate that respect in addressing your issue or assessing
9 | patches and features.
10 |
11 |
12 | ## Using the issue tracker
13 |
14 | The [issue tracker](https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues) is
15 | the preferred channel for spelling mistakes, errors or any general feedback. Please respect the following restrictions:
16 |
17 | * Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others.
18 |
19 | * Please **do not** open issues or pull requests that involve including **answers** to any of the questions.
20 |
21 |
22 | ## Pull requests
23 |
24 | Please adhere to the coding conventions used throughout the project (spelling, indentation, punctuation etc.).
25 |
26 | Adhering to the following process is the best way to get your work included in the project:
27 |
28 | 1. [Fork](https://help.github.com/articles/fork-a-repo) the project, clone your fork, and configure the remotes:
29 |
30 | ```bash
31 | # Clone your fork of the repo into the current directory
32 | git clone https://github.com//Front-end-Developer-Interview-Questions.git
33 | # Navigate to the newly cloned directory
34 | cd Front-end-Developer-Interview-Questions
35 | # Assign the original repo to a remote called "upstream"
36 | git remote add upstream https://github.com/h5bp/Front-end-Developer-Interview-Questions.git
37 | ```
38 |
39 | 2. If you cloned a while ago, get the latest changes from upstream:
40 |
41 | ```bash
42 | git checkout master
43 | git pull upstream master
44 | ```
45 |
46 | 3. Create a new topic branch (off the main project development branch) to
47 | contain your feature, change, or fix:
48 |
49 | ```bash
50 | git checkout -b
51 | ```
52 |
53 | 4. Locally merge (or rebase) the upstream development branch into your topic branch:
54 |
55 | ```bash
56 | git pull [--rebase] upstream master
57 | ```
58 |
59 | 5. Set-up the website
60 |
61 | ```bash
62 | # install dependencies
63 | npm install
64 | # run the website and watch for changes (http://localhost:9090)
65 | npm start
66 | ```
67 |
68 | Our website is made with [Eleventy](https://11ty.io).
69 |
70 | * If you are looking to edit infrastructure/templating files of the website and not sure how to, [check their docs](https://11ty.io/docs).
71 | * If you are looking to change a question/translation file, just change the markdown file you want and the website will be updated once it is deployed.
72 |
73 | 6. Squash your commits down to a single one (we want to keep the master branch nice and clean)
74 |
75 | 7. Push your topic branch up to your fork:
76 |
77 | ```bash
78 | git push origin
79 | ```
80 |
81 | 8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
82 | with a clear title and description.
83 |
84 | **IMPORTANT**: By submitting patches, you agree to allow the project owners to license your work under the terms of the [MIT License](../LICENSE.md).
85 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | The issue tracker is the preferred channel for feedback on the project, bugs relating to the publishing infrastructure (which is still a a work-in-progress) or other discussion points.
2 |
3 | Note:
4 |
5 | - *Please do not open issues or pull requests that involve including answers to any of the questions.*
6 | - *If you have a proposal for a new question or revision of an existing question, please just open a pull request.*
7 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | 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.
2 |
3 | Fixes # (issue)
4 |
5 | ## Type of change
6 |
7 | Please delete options that are not relevant.
8 |
9 | - [ ] New Question
10 | - [ ] Revision of an existing question
11 | - [ ] Infrastructure change (automation, etc.)
12 | - [ ] Other (please elaborate)
13 |
14 |
15 | # Checklist:
16 |
17 | - [ ] My content follows the style guidelines of this project
18 | - [ ] I have performed a self-review of my own content
19 |
20 | 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.
21 |
22 | Thanks!
23 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: npm
4 | directory: "/"
5 | schedule:
6 | interval: weekly
7 | time: "03:00"
8 | open-pull-requests-limit: 10
9 |
--------------------------------------------------------------------------------
/.github/stale.yml:
--------------------------------------------------------------------------------
1 | # Number of days of inactivity before an issue becomes stale
2 | daysUntilStale: 30
3 | # Number of days of inactivity before a stale issue is closed
4 | daysUntilClose: 7
5 | # Issues with these labels will never be considered stale
6 | exemptLabels:
7 | - pinned
8 | - security
9 | - help-wanted
10 | # Label to use when marking an issue as stale
11 | staleLabel: wontfix
12 | # Comment to post when marking an issue as stale. Set to `false` to disable
13 | markComment: >
14 | This issue has been automatically marked as stale because it has not had
15 | recent activity. It will be closed if no further activity occurs. Thank you
16 | for your contributions.
17 | # Comment to post when closing a stale issue. Set to `false` to disable
18 | closeComment: This issue has been automatically closed because it has not had
19 | recent activity. Thank you for your contributions.
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | _site
4 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012 - 2019 Contributors to https://github.com/h5bp/Front-end-Developer-Interview-Questions
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/config/deploy.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | if [ `git branch --list gh-pages` ]
4 | then
5 | git branch -D gh-pages
6 | git checkout -b gh-pages
7 | else
8 | git checkout -b gh-pages
9 | fi
10 | rm -f .gitignore
11 | npm run build
12 | git add _site
13 | git commit -m 'Update Website'
14 | git push upstream `git subtree split --prefix _site gh-pages`:gh-pages -f
15 | git checkout -f
16 | git checkout master
17 |
--------------------------------------------------------------------------------
/config/eleventy.config.js:
--------------------------------------------------------------------------------
1 | const { DateTime } = require('luxon')
2 | const CleanCSS = require('clean-css')
3 | const UglifyJS = require('uglify-es')
4 | const htmlmin = require('html-minifier')
5 | const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight')
6 | const markdown = require('markdown-it')({
7 | html: true,
8 | breaks: true,
9 | linkify: true,
10 | typographer: true
11 | }).use(require('markdown-it-anchor'), {
12 | level: [2],
13 | permalink: true,
14 | permalinkBefore: true,
15 | permalinkSymbol: ''
16 | })
17 |
18 | module.exports = eleventyConfig => {
19 | eleventyConfig.addPlugin(syntaxHighlight)
20 |
21 | eleventyConfig.setLibrary('md', markdown)
22 |
23 | eleventyConfig.addFilter('cssmin', code => {
24 | return new CleanCSS({}).minify(code).styles
25 | })
26 |
27 | eleventyConfig.addFilter('jsmin', (code) => {
28 | let minified = UglifyJS.minify(code)
29 | if (minified.error) {
30 | console.error('UglifyJS error: ', minified.error)
31 | return code
32 | }
33 | return minified.code
34 | })
35 |
36 | // Minify HTML output
37 | eleventyConfig.addTransform('htmlmin', (content, outputPath) => {
38 | if (outputPath.indexOf('.html') > -1) {
39 | let minified = htmlmin.minify(content, {
40 | useShortDoctype: true,
41 | removeComments: true,
42 | collapseWhitespace: true
43 | })
44 | return minified
45 | }
46 | return content
47 | })
48 |
49 | eleventyConfig.addFilter('markdownify', str => {
50 | return markdown.render(str)
51 | })
52 |
53 | eleventyConfig.addFilter('markdownify_inline', str =>
54 | markdown.renderInline(str)
55 | )
56 |
57 | eleventyConfig.addFilter('strip_html', str => {
58 | return str.replace(/|||<.*?>/g, '')
59 | })
60 |
61 | // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
62 | eleventyConfig.addFilter('html_date_string', dateObj => {
63 | return DateTime.fromJSDate(dateObj).toFormat('yyyy-LL-dd')
64 | })
65 |
66 | eleventyConfig.addFilter('github_permalink', str => {
67 | return str.replace(/\/index.html/g, '.md')
68 | })
69 |
70 | eleventyConfig.addFilter('permalink', str => {
71 | return str.replace(/\.html/g, '')
72 | })
73 |
74 | eleventyConfig.addPassthroughCopy('src/assets')
75 |
76 | return {
77 | templateFormats: ['njk', 'md', 'html'],
78 | dir: {
79 | input: 'src',
80 | includes: '_includes',
81 | data: '_data',
82 | output: '_site'
83 | },
84 | markdownTemplateEngine: 'njk',
85 | htmlTemplateEngine: 'njk',
86 | dataTemplateEngine: 'njk',
87 | passthroughFileCopy: true
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "front-end-developer-interview-questions",
3 | "version": "1.0.0",
4 | "description": "A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.",
5 | "scripts": {
6 | "build": "eleventy --config=config/eleventy.config.js --pathprefix='Front-end-Developer-Interview-Questions/'",
7 | "deploy": "sh ./config/deploy.sh",
8 | "contributors:add": "all-contributors add",
9 | "contributors:generate": "all-contributors generate && cp .all-contributorsrc ./src/_data/contributors.json",
10 | "start": "eleventy --config=config/eleventy.config.js --serve --port 9090 --quiet"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/h5bp/Front-end-Developer-Interview-Questions.git"
15 | },
16 | "keywords": [
17 | "css",
18 | "front-end",
19 | "html",
20 | "interview",
21 | "js",
22 | "questions"
23 | ],
24 | "author": "H5BP",
25 | "contributors": [
26 | {
27 | "name": "Cezar Augusto",
28 | "email": "boss@cezaraugusto.net"
29 | },
30 | {
31 | "name": "Darcy Clarke",
32 | "email": "darcy@darcyclarke.me"
33 | }
34 | ],
35 | "license": "MIT",
36 | "bugs": {
37 | "url": "https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues"
38 | },
39 | "homepage": "https://github.com/h5bp/Front-end-Developer-Interview-Questions#readme",
40 | "devDependencies": {
41 | "@11ty/eleventy": "^0.12.1",
42 | "@11ty/eleventy-plugin-syntaxhighlight": "^3.1.2",
43 | "all-contributors-cli": "^6.20.0",
44 | "clean-css": "^5.2.0",
45 | "html-minifier": "^4.0.0",
46 | "luxon": "^2.0.2",
47 | "markdown-it": "^12.2.0",
48 | "markdown-it-anchor": "^8.3.0",
49 | "uglify-es": "^3.3.9"
50 | },
51 | "resolutions": {
52 | "axios": "0.18.1"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/404.njk:
--------------------------------------------------------------------------------
1 | ---
2 | title: 404 - Page not found
3 | description: Think this is wrong? [Open an issue](https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues/new)
4 | permalink: /404.html
5 | excludeFromSitemap: true
6 | ---
7 | {% extends 'layouts/page.njk' %}
8 |
9 | {% set content %}
10 | {% endset %}
11 |
12 | {% block main %}
13 |
25 | {% endblock %}
26 |
--------------------------------------------------------------------------------
/src/about.njk:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | permalink: /about/index.html
4 | ---
5 | {% extends 'layouts/page.njk' %}
6 |
7 | {% set content %}
8 | ## Overview 📦
9 |
10 | This project started in 2009 by [Darcy Clarke](https://darcyclarke.me), releasing in [2012](http://web.archive.org/web/20120909134303/http://darcyclarke.me/development/front-end-job-interview-questions) to the public. Many of the initial questions were sourced from a shared **etherpad** document started by [Paul Irish](https://twitter.com/paul_irish).
11 |
12 | At its core, the project contains a number of front-end questions that can be used when vetting potential candidates, test yourself or used as a guide for concepts you may want to learn. It is by no means recommended to use these questions verbatim, nor expected that someone would know all the "answers". These questions are intentionally written to be open-ended and hopefully lead to interesting discussions that tell you more about a person's thought process then reference memory.
13 |
14 | #### This project was featured on [The Changelog](https://changelog.com/podcast/143) – Episode #143 (Feb 21, 2015)
15 |
16 |
17 |
18 | ## Current Maintainers 🦄
19 |
20 |
13 | A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about it here. Better in your language? See one of our translations.
14 |
15 |
16 | Since this project begun, thousands of questions were added by an amazing group of people, and translated to more than 30 different languages. Want to contribute? See our contribute guide.
17 |
18 |
19 | {% endblock %}
20 | {% block main %}{% endblock %}
21 |
--------------------------------------------------------------------------------
/src/questions/coding-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Coding Questions
3 | layout: layouts/page.njk
4 | permalink: /questions/coding-questions/index.html
5 | ---
6 |
7 | Question: What is the value of `foo`?
8 | ```javascript
9 | var foo = 10 + '20';
10 | ```
11 |
12 | Question: What will be the output of the code below?
13 | ```javascript
14 | console.log(0.1 + 0.2 == 0.3);
15 | ```
16 |
17 | Question: How would you make this work?
18 | ```javascript
19 | add(2, 5); // 7
20 | add(2)(5); // 7
21 | ```
22 |
23 | Question: What value is returned from the following statement?
24 | ```javascript
25 | "i'm a lasagna hog".split("").reverse().join("");
26 | ```
27 |
28 | Question: What is the value of `window.foo`?
29 | ```javascript
30 | ( window.foo || ( window.foo = "bar" ) );
31 | ```
32 |
33 | Question: What is the outcome of the two alerts below?
34 | ```javascript
35 | var foo = "Hello";
36 | (function() {
37 | var bar = " World";
38 | alert(foo + bar);
39 | })();
40 | alert(foo + bar);
41 | ```
42 |
43 | Question: What is the value of `foo.length`?
44 | ```javascript
45 | var foo = [];
46 | foo.push(1);
47 | foo.push(2);
48 | ```
49 |
50 | Question: What is the value of `foo.x`?
51 | ```javascript
52 | var foo = {n: 1};
53 | var bar = foo;
54 | foo.x = foo = {n: 2};
55 | ```
56 |
57 | Question: What does the following code print?
58 | ```javascript
59 | console.log('one');
60 | setTimeout(function() {
61 | console.log('two');
62 | }, 0);
63 | Promise.resolve().then(function() {
64 | console.log('three');
65 | })
66 | console.log('four');
67 | ```
68 |
69 | Question: What is the difference between these four promises?
70 | ```javascript
71 | doSomething().then(function () {
72 | return doSomethingElse();
73 | });
74 |
75 | doSomething().then(function () {
76 | doSomethingElse();
77 | });
78 |
79 | doSomething().then(doSomethingElse());
80 |
81 | doSomething().then(doSomethingElse);
82 | ```
83 |
84 | Question: What will the code below output to the console and why?
85 | ```javascript
86 | (function(){
87 | var a = b = 3;
88 | })();
89 |
90 | console.log("a defined? " + (typeof a !== 'undefined'));
91 | console.log("b defined? " + (typeof b !== 'undefined'));
92 | ```
93 |
94 | Question: Consider the two functions below. Will they both return the same thing? Why or why not?
95 | ```javascript
96 | function foo1()
97 | {
98 | return {
99 | bar: "hello"
100 | };
101 | }
102 |
103 | function foo2()
104 | {
105 | return
106 | {
107 | bar: "hello"
108 | };
109 | }
110 | ```
111 |
--------------------------------------------------------------------------------
/src/questions/css-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: CSS Questions
3 | layout: layouts/page.njk
4 | permalink: /questions/css-questions/index.html
5 | ---
6 |
7 | * What is CSS selector specificity and how does it work?
8 | * What's the difference between "resetting" and "normalizing" CSS? Which would you choose, and why?
9 | * Describe Floats and how they work.
10 | * Describe z-index and how stacking context is formed.
11 | * Describe BFC (Block Formatting Context) and how it works.
12 | * What are the various clearing techniques and which is appropriate for what context?
13 | * How would you approach fixing browser-specific styling issues?
14 | * How do you serve your pages for feature-constrained browsers?
15 | * What techniques/processes do you use?
16 | * What are the different ways to visually hide content (and make it available only for screen readers)?
17 | * Have you ever used a grid system, and if so, what do you prefer?
18 | * Have you used or implemented media queries or mobile specific layouts/CSS?
19 | * Are you familiar with styling SVG?
20 | * Can you give an example of an `@media` property other than `screen`?
21 | * What are some of the "gotchas" for writing efficient CSS?
22 | * What are the advantages/disadvantages of using CSS preprocessors?
23 | * Describe what you like and dislike about the CSS preprocessors you have used.
24 | * How would you implement a web design comp that uses non-standard fonts?
25 | * Explain how a browser determines what elements match a CSS selector.
26 | * Describe pseudo-elements and discuss what they are used for.
27 | * Explain your understanding of the box model and how you would tell the browser in CSS to render your layout in different box models.
28 | * What does ```* { box-sizing: border-box; }``` do? What are its advantages?
29 | * What is the CSS `display` property and can you give a few examples of its use?
30 | * What's the difference between inline and inline-block?
31 | * What's the difference between the "nth-of-type()" and "nth-child()" selectors?
32 | * What's the difference between a relative, fixed, absolute and statically positioned element?
33 | * What existing CSS frameworks have you used locally, or in production? How would you change/improve them?
34 | * Have you used CSS Grid?
35 | * Can you explain the difference between coding a web site to be responsive versus using a mobile-first strategy?
36 | * Have you ever worked with retina graphics? If so, when and what techniques did you use?
37 | * Is there any reason you'd want to use `translate()` instead of *absolute positioning*, or vice-versa? And why?
38 | * How is clearfix css property useful?
39 | * Can you explain the difference between px, em and rem as they relate to font sizing?
40 | * Can you give an example of a pseudo class? Can you provide an example use case for a pseudo class?
41 | * What is the difference between a block level element and an inline element. Can you provide examples of each type of element?
42 | * What is the difference between CSS Grid and Flexbox? When would you use one over the other?
--------------------------------------------------------------------------------
/src/questions/fun-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Fun Questions
3 | layout: layouts/page.njk
4 | permalink: /questions/fun-questions/index.html
5 | ---
6 |
7 | * What's a cool project that you've recently worked on?
8 | * What are some things you like about the developer tools you use?
9 | * Who inspires you in the front-end community?
10 | * Do you have any pet projects? What kind?
11 | * What's your favorite feature of Internet Explorer?
12 |
--------------------------------------------------------------------------------
/src/questions/general-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: General Questions
3 | layout: layouts/page.njk
4 | permalink: /questions/general-questions/index.html
5 | ---
6 |
7 | * What did you learn yesterday/this week?
8 | * What excites or interests you about coding?
9 | * What is a recent technical challenge you experienced and how did you solve it?
10 | * When building a new web site or maintaining one, can you explain some techniques you have used to increase performance?
11 | * Can you describe some SEO best practices or techniques you have used lately?
12 | * Can you explain any common techniques or recent issues solved in regards to front-end security?
13 | * What actions have you personally taken on recent projects to increase maintainability of your code?
14 | * Talk about your preferred development environment.
15 | * Which version control systems are you familiar with?
16 | * Can you describe your workflow when you create a web page?
17 | * If you have 5 different stylesheets, how would you best integrate them into the site?
18 | * Can you describe the difference between progressive enhancement and graceful degradation?
19 | * How would you optimize a website's assets/resources?
20 | * How many resources will a browser download from a given domain at a time?
21 | * What are the exceptions?
22 | * Name 3 ways to decrease page load (perceived or actual load time).
23 | * If you jumped on a project and they used tabs and you used spaces, what would you do?
24 | * Describe how you would create a simple slideshow page.
25 | * If you could master one technology this year, what would it be?
26 | * Explain the importance of standards and standards bodies.
27 | * What is Flash of Unstyled Content? How do you avoid FOUC?
28 | * Explain what ARIA and screenreaders are, and how to make a website accessible.
29 | * Explain some of the pros and cons for CSS animations versus JavaScript animations.
30 | * What does CORS stand for and what issue does it address?
31 | * How did you handle a disagreement with your boss or your collaborator?
32 | * What resources do you use to learn about the latest in front end development and design?
33 | * What skills are needed to be a good front-end developer?
34 | * What role do you see yourself?
35 | * Explain the difference between cookies, session storage, and local storage?
36 |
--------------------------------------------------------------------------------
/src/questions/html-questions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HTML Questions
3 | layout: layouts/page.njk
4 | permalink: /questions/html-questions/index.html
5 | ---
6 |
7 | * What does a `doctype` do?
8 | * How do you serve a page with content in multiple languages?
9 | * What kind of things must you be wary of when designing or developing for multilingual sites?
10 | * What are `data-` attributes good for?
11 | * Consider HTML5 as an open web platform. What are the building blocks of HTML5?
12 | * Describe the difference between a `cookie`, `sessionStorage` and `localStorage`.
13 | * Describe the difference between `