From 6a1bc56977dccc500caf3a753822bdb0f169e103 Mon Sep 17 00:00:00 2001 From: Khushal Gupta Date: Wed, 3 Oct 2018 22:18:35 +0530 Subject: [PATCH 001/252] Update general-questions.md (#494) --- questions/general-questions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/questions/general-questions.md b/questions/general-questions.md index 86c93ff64..6386e54f6 100644 --- a/questions/general-questions.md +++ b/questions/general-questions.md @@ -25,3 +25,4 @@ * Explain some of the pros and cons for CSS animations versus JavaScript animations. * What does CORS stand for and what issue does it address? * How did you handle a disagreement with your boss or your collaborator? +* What resources do you use to learn about the latest in front end development and design? From 2c1d2d811feb37bd08bbac6fed2b45d343e6d708 Mon Sep 17 00:00:00 2001 From: Philip Lambok Date: Sun, 14 Oct 2018 13:21:32 +0700 Subject: [PATCH 002/252] Update README.md (#497) Correction typo in markdown format for heading 1. --- Translations/Indonesian/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Translations/Indonesian/README.md b/Translations/Indonesian/README.md index ffb0ad909..a5578ada0 100644 --- a/Translations/Indonesian/README.md +++ b/Translations/Indonesian/README.md @@ -1,4 +1,4 @@ -#Daftar Pertanyaan Wawancara Kerja Front-End +# Daftar Pertanyaan Wawancara Kerja Front-End File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancarai calon pekerja. Namun, bukan berarti anda dianjurkan untuk bertanya kepada si calon pekerja dengan semua pertanyaan dari daftar di bawah ini (karena itu akan memakan waktu beberapa jam). Dengan cukup memilih beberapa pertanyaan dari daftar ini akan membantu anda mengenal kemampuan yang anda cari dari si calon pekerja. From cb980c60b84af094addc5145bfc940b0edb84bac Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Sun, 2 Dec 2018 19:28:33 -0200 Subject: [PATCH 003/252] add a website (#505) close https://gthub.com/h5bp/Front-end-Developer-Interview-Questions/issues/448 --- .github/PULL_REQUEST_TEMPLATE.md | 4 +- _site/404.html | 1 + _site/about/index.html | 1 + _site/assets/images/apple-touch-icon.png | Bin 0 -> 18397 bytes _site/assets/images/favicon-32x32.png | Bin 0 -> 1557 bytes _site/assets/images/favicon-96x96.png | Bin 0 -> 7244 bytes _site/assets/images/gradient.svg | 17 + _site/assets/images/og-image.png | Bin 0 -> 42301 bytes _site/index.html | 1 + _site/questions/coding-questions/index.html | 1 + _site/questions/css-questions/index.html | 1 + _site/questions/fun-questions/index.html | 1 + _site/questions/general-questions/index.html | 1 + _site/questions/html-questions/index.html | 1 + .../questions/javascript-questions/index.html | 1 + _site/questions/network-questions/index.html | 1 + .../performance-questions/index.html | 1 + _site/questions/testing-questions/index.html | 1 + _site/sitemap.xml | 228 + _site/translations/arabic/index.html | 1 + _site/translations/bulgarian/index.html | 1 + _site/translations/burmese/index.html | 1 + .../chinese-traditional/index.html | 1 + _site/translations/chinese/index.html | 1 + _site/translations/croatian/index.html | 1 + _site/translations/czech/index.html | 1 + _site/translations/danish/index.html | 1 + _site/translations/dutch/index.html | 1 + _site/translations/farsi/index.html | 1 + _site/translations/french/index.html | 1 + _site/translations/german/index.html | 1 + _site/translations/greek/index.html | 1 + _site/translations/hebrew/index.html | 52 + _site/translations/hungarian/index.html | 1 + _site/translations/index.html | 1 + _site/translations/indonesian/index.html | 1 + _site/translations/italian/index.html | 1 + _site/translations/japanese/index.html | 1 + _site/translations/korean/index.html | 1 + _site/translations/korean/reference.html | 4 + _site/translations/latvian/index.html | 1 + _site/translations/polish/index.html | 1 + _site/translations/portuguese/index.html | 1 + _site/translations/romanian/index.html | 1 + _site/translations/russian/index.html | 1 + _site/translations/serbian/index.html | 1 + _site/translations/slovakian/index.html | 1 + _site/translations/slovenian/index.html | 1 + _site/translations/spanish/index.html | 1 + _site/translations/swedish/index.html | 1 + _site/translations/turkish/index.html | 1 + _site/translations/ukrainian/index.html | 1 + _site/translations/vietnamese/index.html | 1 + config/eleventy.config.js | 89 + deploy.sh | 7 + package-lock.json | 6823 +++++++++++++++-- package.json | 21 +- src/404.njk | 16 + src/_data/maintainers.json | 26 + src/_data/questions.json | 65 + src/_data/site.json | 9 + src/_data/translations.json | 133 + src/_includes/assets/css/content.css | 204 + src/_includes/assets/css/defaults.css | 17 + src/_includes/assets/css/footer.css | 7 + src/_includes/assets/css/header.css | 71 + src/_includes/assets/css/navigation.css | 24 + src/_includes/assets/css/prism.css | 146 + src/_includes/assets/css/variables.css | 17 + src/_includes/assets/js/app.js | 4 + src/_includes/components/footer.njk | 11 + src/_includes/components/navigation.njk | 15 + src/_includes/layouts/default.njk | 66 + src/_includes/layouts/page.njk | 25 + src/about.njk | 54 + src/assets/images/apple-touch-icon.png | Bin 0 -> 18397 bytes src/assets/images/favicon-32x32.png | Bin 0 -> 1557 bytes src/assets/images/favicon-96x96.png | Bin 0 -> 7244 bytes src/assets/images/gradient.svg | 17 + src/assets/images/og-image.png | Bin 0 -> 42301 bytes src/index.njk | 20 + .../questions}/coding-questions.md | 26 +- {questions => src/questions}/css-questions.md | 6 +- {questions => src/questions}/fun-questions.md | 6 +- .../questions}/general-questions.md | 6 +- .../questions}/html-questions.md | 6 +- .../questions}/javascript-questions.md | 6 +- .../questions}/network-questions.md | 6 +- .../questions}/performance-questions.md | 6 +- .../questions}/testing-questions.md | 6 +- src/sitemap.xml.njk | 16 + src/translations.njk | 27 + .../translations/arabic}/README.md | 5 + .../translations/bulgarian}/README.md | 6 + .../translations/burmese}/README.md | 8 +- .../chinese-traditional}/README.md | 6 + .../translations/chinese}/README.md | 6 + .../translations/croatian}/README.md | 10 +- .../translations/czech}/README.md | 6 + .../translations/danish}/README.md | 8 +- .../translations/dutch}/README.md | 8 +- .../translations/farsi}/README.md | 6 + .../translations/french}/README.md | 6 + .../translations/german}/README.md | 8 +- .../translations/greek}/README.md | 6 + .../translations/hebrew}/README.md | 6 + .../translations/hungarian}/README.md | 6 + .../translations/indonesian}/README.md | 14 +- .../translations/italian}/README.md | 8 +- .../translations/japanese}/README.md | 8 +- .../translations/korean}/README.md | 6 + .../translations/korean}/Reference.md | 6 + .../translations/latvian}/README.md | 8 +- .../translations/polish}/README.md | 6 + .../translations/portuguese}/README.md | 6 + .../translations/romanian}/README.md | 6 + .../translations/russian}/README.md | 6 + .../translations/serbian}/README.md | 8 +- .../translations/slovakian}/README.md | 8 +- .../translations/slovenian}/README.md | 8 +- .../translations/spanish}/README.md | 6 + .../translations/swedish}/README.md | 8 +- .../translations/turkish}/README.md | 6 + .../translations/ukrainian}/README.md | 6 + .../translations/vietnamese}/README.md | 6 + 125 files changed, 7886 insertions(+), 698 deletions(-) create mode 100644 _site/404.html create mode 100644 _site/about/index.html create mode 100644 _site/assets/images/apple-touch-icon.png create mode 100644 _site/assets/images/favicon-32x32.png create mode 100644 _site/assets/images/favicon-96x96.png create mode 100644 _site/assets/images/gradient.svg create mode 100644 _site/assets/images/og-image.png create mode 100644 _site/index.html create mode 100644 _site/questions/coding-questions/index.html create mode 100644 _site/questions/css-questions/index.html create mode 100644 _site/questions/fun-questions/index.html create mode 100644 _site/questions/general-questions/index.html create mode 100644 _site/questions/html-questions/index.html create mode 100644 _site/questions/javascript-questions/index.html create mode 100644 _site/questions/network-questions/index.html create mode 100644 _site/questions/performance-questions/index.html create mode 100644 _site/questions/testing-questions/index.html create mode 100644 _site/sitemap.xml create mode 100644 _site/translations/arabic/index.html create mode 100644 _site/translations/bulgarian/index.html create mode 100644 _site/translations/burmese/index.html create mode 100644 _site/translations/chinese-traditional/index.html create mode 100644 _site/translations/chinese/index.html create mode 100644 _site/translations/croatian/index.html create mode 100644 _site/translations/czech/index.html create mode 100644 _site/translations/danish/index.html create mode 100644 _site/translations/dutch/index.html create mode 100644 _site/translations/farsi/index.html create mode 100644 _site/translations/french/index.html create mode 100644 _site/translations/german/index.html create mode 100644 _site/translations/greek/index.html create mode 100644 _site/translations/hebrew/index.html create mode 100644 _site/translations/hungarian/index.html create mode 100644 _site/translations/index.html create mode 100644 _site/translations/indonesian/index.html create mode 100644 _site/translations/italian/index.html create mode 100644 _site/translations/japanese/index.html create mode 100644 _site/translations/korean/index.html create mode 100644 _site/translations/korean/reference.html create mode 100644 _site/translations/latvian/index.html create mode 100644 _site/translations/polish/index.html create mode 100644 _site/translations/portuguese/index.html create mode 100644 _site/translations/romanian/index.html create mode 100644 _site/translations/russian/index.html create mode 100644 _site/translations/serbian/index.html create mode 100644 _site/translations/slovakian/index.html create mode 100644 _site/translations/slovenian/index.html create mode 100644 _site/translations/spanish/index.html create mode 100644 _site/translations/swedish/index.html create mode 100644 _site/translations/turkish/index.html create mode 100644 _site/translations/ukrainian/index.html create mode 100644 _site/translations/vietnamese/index.html create mode 100644 config/eleventy.config.js create mode 100644 deploy.sh create mode 100644 src/404.njk create mode 100644 src/_data/maintainers.json create mode 100644 src/_data/questions.json create mode 100644 src/_data/site.json create mode 100644 src/_data/translations.json create mode 100644 src/_includes/assets/css/content.css create mode 100644 src/_includes/assets/css/defaults.css create mode 100644 src/_includes/assets/css/footer.css create mode 100644 src/_includes/assets/css/header.css create mode 100644 src/_includes/assets/css/navigation.css create mode 100644 src/_includes/assets/css/prism.css create mode 100644 src/_includes/assets/css/variables.css create mode 100644 src/_includes/assets/js/app.js create mode 100644 src/_includes/components/footer.njk create mode 100644 src/_includes/components/navigation.njk create mode 100644 src/_includes/layouts/default.njk create mode 100644 src/_includes/layouts/page.njk create mode 100644 src/about.njk create mode 100644 src/assets/images/apple-touch-icon.png create mode 100644 src/assets/images/favicon-32x32.png create mode 100644 src/assets/images/favicon-96x96.png create mode 100644 src/assets/images/gradient.svg create mode 100644 src/assets/images/og-image.png create mode 100644 src/index.njk rename {questions => src/questions}/coding-questions.md (60%) rename {questions => src/questions}/css-questions.md (95%) rename {questions => src/questions}/fun-questions.md (74%) rename {questions => src/questions}/general-questions.md (94%) rename {questions => src/questions}/html-questions.md (89%) rename {questions => src/questions}/javascript-questions.md (97%) rename {questions => src/questions}/network-questions.md (83%) rename {questions => src/questions}/performance-questions.md (64%) rename {questions => src/questions}/testing-questions.md (70%) create mode 100644 src/sitemap.xml.njk create mode 100644 src/translations.njk rename {Translations/Arabic => src/translations/arabic}/README.md (99%) rename {Translations/Bulgarian => src/translations/bulgarian}/README.md (99%) rename {Translations/Burmese => src/translations/burmese}/README.md (98%) rename {Translations/Chinese-Traditional => src/translations/chinese-traditional}/README.md (98%) rename {Translations/Chinese => src/translations/chinese}/README.md (99%) rename {Translations/Croatian => src/translations/croatian}/README.md (98%) rename {Translations/Czech => src/translations/czech}/README.md (98%) rename {Translations/Danish => src/translations/danish}/README.md (98%) rename {Translations/Dutch => src/translations/dutch}/README.md (98%) rename {Translations/Farsi => src/translations/farsi}/README.md (99%) rename {Translations/French => src/translations/french}/README.md (99%) rename {Translations/German => src/translations/german}/README.md (98%) rename {Translations/Greek => src/translations/greek}/README.md (99%) rename {Translations/Hebrew => src/translations/hebrew}/README.md (99%) rename {Translations/Hungarian => src/translations/hungarian}/README.md (99%) rename {Translations/Indonesian => src/translations/indonesian}/README.md (96%) rename {Translations/Italian => src/translations/italian}/README.md (98%) rename {Translations/Japanese => src/translations/japanese}/README.md (98%) rename {Translations/Korean => src/translations/korean}/README.md (99%) rename {Translations/Korean => src/translations/korean}/Reference.md (97%) rename {Translations/Latvian => src/translations/latvian}/README.md (98%) rename {Translations/Polish => src/translations/polish}/README.md (98%) rename {Translations/Portuguese => src/translations/portuguese}/README.md (98%) rename {Translations/Romanian => src/translations/romanian}/README.md (98%) rename {Translations/Russian => src/translations/russian}/README.md (99%) rename {Translations/Serbian => src/translations/serbian}/README.md (98%) rename {Translations/Slovakian => src/translations/slovakian}/README.md (98%) rename {Translations/Slovenian => src/translations/slovenian}/README.md (98%) rename {Translations/Spanish => src/translations/spanish}/README.md (99%) rename {Translations/Swedish => src/translations/swedish}/README.md (98%) rename {Translations/Turkish => src/translations/turkish}/README.md (98%) rename {Translations/Ukrainian => src/translations/ukrainian}/README.md (99%) rename {Translations/Vietnamese => src/translations/vietnamese}/README.md (99%) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0de8e3e13..17898f472 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,8 +16,8 @@ Please delete options that are not relevant. # Checklist: -- [ ] My prose follows the style guidelines of this project -- [ ] I have performed a self-review of my own prose +- [ ] My content follows the style guidelines of this project +- [ ] 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. diff --git a/_site/404.html b/_site/404.html new file mode 100644 index 000000000..0c76228f5 --- /dev/null +++ b/_site/404.html @@ -0,0 +1 @@ +404 - Page not found ★ Front-end Job Interview Questions

404 - Page not found

Think this is wrong? Open an issue

\ No newline at end of file diff --git a/_site/about/index.html b/_site/about/index.html new file mode 100644 index 000000000..72f1858bf --- /dev/null +++ b/_site/about/index.html @@ -0,0 +1 @@ +About ★ Front-end Job Interview Questions

About

This Project 🤳

This file 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.

Contribute 🕶

Saw something wrong? Want to add a question? suggest something? Check our contributing guidelines, open a pull-request or fill a bug.

Maintainers 🦄

It has since been active thanks to these incredibly wonderful people.

Looking to contribute? Check our Contributing guide to get started!

Honorable Mentions 🎠

This project started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

\ No newline at end of file diff --git a/_site/assets/images/apple-touch-icon.png b/_site/assets/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3c48c6cc628a08175fcd92d40f1a942f435a5b GIT binary patch literal 18397 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 a + + + Slice 1 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/assets/images/og-image.png b/_site/assets/images/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..da449532cea84311566ee6c1a5d52fc246e84766 GIT binary patch literal 42301 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 ryZ^oa-P`}s1=kKFront-end Job Interview Questions

Front-end Job Interview Questions

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations.

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. We have a Hall of Fame 👑.

\ No newline at end of file diff --git a/_site/questions/coding-questions/index.html b/_site/questions/coding-questions/index.html new file mode 100644 index 000000000..ceb4d04f1 --- /dev/null +++ b/_site/questions/coding-questions/index.html @@ -0,0 +1 @@ +Coding Questions ★ Front-end Job Interview Questions

Coding Questions

Question: What is the value of foo?

var foo = 10 + '20';

Question: What will be the output of the code below?

console.log(0.1 + 0.2 == 0.3);

Question: How would you make this work?

add(2, 5); // 7
add(2)(5); // 7

Question: What value is returned from the following statement?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?

( window.foo || ( window.foo = "bar" ) );

Question: What is the outcome of the two alerts below?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: What is the value of foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Question: What is the value of foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: What does the following code print?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
Promise.resolve().then(function() {
console.log('three');
})
console.log('four');

Question: What is the difference between these four promises?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);
\ No newline at end of file diff --git a/_site/questions/css-questions/index.html b/_site/questions/css-questions/index.html new file mode 100644 index 000000000..96d8f0bd2 --- /dev/null +++ b/_site/questions/css-questions/index.html @@ -0,0 +1 @@ +CSS Questions ★ Front-end Job Interview Questions

CSS Questions

  • What is CSS selector specificity and how does it work?
  • What’s the difference between “resetting” and “normalizing” CSS? Which would you choose, and why?
  • Describe Floats and how they work.
  • Describe z-index and how stacking context is formed.
  • Describe BFC (Block Formatting Context) and how it works.
  • What are the various clearing techniques and which is appropriate for what context?
  • How would you approach fixing browser-specific styling issues?
  • How do you serve your pages for feature-constrained browsers?
    • What techniques/processes do you use?
  • What are the different ways to visually hide content (and make it available only for screen readers)?
  • Have you ever used a grid system, and if so, what do you prefer?
  • Have you used or implemented media queries or mobile specific layouts/CSS?
  • Are you familiar with styling SVG?
  • Can you give an example of an @media property other than screen?
  • What are some of the “gotchas” for writing efficient CSS?
  • What are the advantages/disadvantages of using CSS preprocessors?
    • Describe what you like and dislike about the CSS preprocessors you have used.
  • How would you implement a web design comp that uses non-standard fonts?
  • Explain how a browser determines what elements match a CSS selector.
  • Describe pseudo-elements and discuss what they are used for.
  • Explain your understanding of the box model and how you would tell the browser in CSS to render your layout in different box models.
  • What does * { box-sizing: border-box; } do? What are its advantages?
  • What is the CSS display property and can you give a few examples of its use?
  • What’s the difference between inline and inline-block?
  • What’s the difference between the “nth-of-type()” and “nth-child()” selectors?
  • What’s the difference between a relative, fixed, absolute and statically positioned element?
  • What existing CSS frameworks have you used locally, or in production? How would you change/improve them?
  • Have you played around with the new CSS Flexbox or Grid specs?
  • Can you explain the difference between coding a web site to be responsive versus using a mobile-first strategy?
  • Have you ever worked with retina graphics? If so, when and what techniques did you use?
  • Is there any reason you’d want to use translate() instead of absolute positioning, or vice-versa? And why?
\ No newline at end of file diff --git a/_site/questions/fun-questions/index.html b/_site/questions/fun-questions/index.html new file mode 100644 index 000000000..6ff178dd2 --- /dev/null +++ b/_site/questions/fun-questions/index.html @@ -0,0 +1 @@ +Fun Questions ★ Front-end Job Interview Questions

Fun Questions

  • What’s a cool project that you’ve recently worked on?
  • What are some things you like about the developer tools you use?
  • Who inspires you in the front-end community?
  • Do you have any pet projects? What kind?
  • What’s your favorite feature of Internet Explorer?
  • How do you like your coffee?
\ No newline at end of file diff --git a/_site/questions/general-questions/index.html b/_site/questions/general-questions/index.html new file mode 100644 index 000000000..05b4f7962 --- /dev/null +++ b/_site/questions/general-questions/index.html @@ -0,0 +1 @@ +General Questions ★ Front-end Job Interview Questions

General Questions

  • What did you learn yesterday/this week?
  • What excites or interests you about coding?
  • What is a recent technical challenge you experienced and how did you solve it?
  • When building a new web site or maintaining one, can you explain some techniques you have used to increase performance?
  • Can you describe some SEO best practices or techniques you have used lately?
  • Can you explain any common techniques or recent issues solved in regards to front-end security?
  • What actions have you personally taken on recent projects to increase maintainability of your code?
  • Talk about your preferred development environment.
  • Which version control systems are you familiar with?
  • Can you describe your workflow when you create a web page?
  • If you have 5 different stylesheets, how would you best integrate them into the site?
  • Can you describe the difference between progressive enhancement and graceful degradation?
  • How would you optimize a website’s assets/resources?
  • How many resources will a browser download from a given domain at a time?
    • What are the exceptions?
  • Name 3 ways to decrease page load (perceived or actual load time).
  • If you jumped on a project and they used tabs and you used spaces, what would you do?
  • Describe how you would create a simple slideshow page.
  • If you could master one technology this year, what would it be?
  • Explain the importance of standards and standards bodies.
  • What is Flash of Unstyled Content? How do you avoid FOUC?
  • Explain what ARIA and screenreaders are, and how to make a website accessible.
  • Explain some of the pros and cons for CSS animations versus JavaScript animations.
  • What does CORS stand for and what issue does it address?
  • How did you handle a disagreement with your boss or your collaborator?
  • What resources do you use to learn about the latest in front end development and design?
\ No newline at end of file diff --git a/_site/questions/html-questions/index.html b/_site/questions/html-questions/index.html new file mode 100644 index 000000000..8a5331e5b --- /dev/null +++ b/_site/questions/html-questions/index.html @@ -0,0 +1 @@ +HTML Questions ★ Front-end Job Interview Questions

HTML Questions

  • What does a doctype do?
  • How do you serve a page with content in multiple languages?
  • What kind of things must you be wary of when design or developing for multilingual sites?
  • What are data- attributes good for?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Describe the difference between a cookie, sessionStorage and localStorage.
  • Describe the difference between <script>, <script async> and <script defer>.
  • Why is it generally a good idea to position CSS <link>s between <head></head> and JS <script>s just before </body>? Do you know any exceptions?
  • What is progressive rendering?
  • Why you would use a srcset attribute in an image tag? Explain the process the browser uses when evaluating the content of this attribute.
  • Have you used different HTML templating languages before?
\ No newline at end of file diff --git a/_site/questions/javascript-questions/index.html b/_site/questions/javascript-questions/index.html new file mode 100644 index 000000000..e700601c0 --- /dev/null +++ b/_site/questions/javascript-questions/index.html @@ -0,0 +1 @@ +JavaScript Questions ★ Front-end Job Interview Questions

JavaScript Questions

  • Explain event delegation
  • Explain how this works in JavaScript
  • Explain how prototypal inheritance works
  • What do you think of AMD vs CommonJS?
  • Explain why the following doesn’t work as an IIFE: function foo(){ }();.
    • What needs to be changed to properly make it an IIFE?
  • What’s the difference between a variable that is: null, undefined or undeclared?
    • How would you go about checking for any of these states?
  • What is a closure, and how/why would you use one?
  • Can you describe the main difference between a forEach loop and a .map() loop and why you would pick one versus the other?
  • What’s a typical use case for anonymous functions?
  • How do you organize your code? (module pattern, classical inheritance?)
  • What’s the difference between host objects and native objects?
  • Difference between: function Person(){}, var person = Person(), and var person = new Person()?
  • What’s the difference between .call and .apply?
  • Explain Function.prototype.bind.
  • What’s the difference between feature detection, feature inference, and using the UA string?
  • Explain Ajax in as much detail as possible.
  • What are the advantages and disadvantages of using Ajax?
  • Explain how JSONP works (and how it’s not really Ajax).
  • Have you ever used JavaScript templating?
    • If so, what libraries have you used?
  • Explain “hoisting”.
  • Describe event bubbling.
  • Describe event capturing.
  • What’s the difference between an “attribute” and a “property”?
  • Why is extending built-in JavaScript objects not a good idea?
  • Difference between window load event and document DOMContentLoaded event?
  • What is the difference between == and ===?
  • Explain the same-origin policy with regards to JavaScript.
  • Make this work:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Why is it called a Ternary operator, what does the word “Ternary” indicate?
  • What is "use strict";? what are the advantages and disadvantages to using it?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?
  • Why would you use something like the load event? Does this event have disadvantages? Do you know any alternatives, and why would you use those?
  • Explain what a single page app is and how to make one SEO-friendly.
  • What is the extent of your experience with Promises and/or their polyfills?
  • What are the pros and cons of using Promises instead of callbacks?
  • What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript?
  • What tools and techniques do you use debugging JavaScript code?
  • What language constructions do you use for iterating over object properties and array items?
  • Explain the difference between mutable and immutable objects.
    • What is an example of an immutable object in JavaScript?
    • What are the pros and cons of immutability?
    • How can you achieve immutability in your own code?
  • Explain the difference between synchronous and asynchronous functions.
  • What is event loop?
    • What is the difference between call stack and task queue?
  • Explain the differences on the usage of foo between function foo() {} and var foo = function() {}
  • What are the differences between variables created using let, var or const?
  • What are the differences between ES6 class and ES5 function constructors?
  • Can you offer a use case for the new arrow => function syntax? How does this new syntax differ from other functions?
  • What advantage is there for using the arrow syntax for a method in a constructor?
  • What is the definition of a higher-order function?
  • Can you give an example for destructuring an object or an array?
  • ES6 Template Literals offer a lot of flexibility in generating strings, can you give an example?
  • Can you give an example of a curry function and why this syntax offers an advantage?
  • What are the benefits of using spread syntax and how is it different from rest syntax?
  • How can you share code between files?
  • Why you might want to create static class members?
\ No newline at end of file diff --git a/_site/questions/network-questions/index.html b/_site/questions/network-questions/index.html new file mode 100644 index 000000000..1ba8c16b5 --- /dev/null +++ b/_site/questions/network-questions/index.html @@ -0,0 +1 @@ +Network Questions ★ Front-end Job Interview Questions

Network Questions

  • Traditionally, why has it been better to serve site assets from multiple domains?
  • Do your best to describe the process from the time you type in a website’s URL to it finishing loading on your screen.
  • What are the differences between Long-Polling, Websockets and Server-Sent Events?
  • Explain the following request and response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • What are HTTP methods? List all HTTP methods that you know, and explain them.
\ No newline at end of file diff --git a/_site/questions/performance-questions/index.html b/_site/questions/performance-questions/index.html new file mode 100644 index 000000000..83b840aab --- /dev/null +++ b/_site/questions/performance-questions/index.html @@ -0,0 +1 @@ +Performance Questions ★ Front-end Job Interview Questions

Performance Questions

  • What tools would you use to find a performance bug in your code?
  • What are some ways you may improve your website’s scrolling performance?
  • Explain the difference between layout, painting and compositing.
\ No newline at end of file diff --git a/_site/questions/testing-questions/index.html b/_site/questions/testing-questions/index.html new file mode 100644 index 000000000..acc36c4e7 --- /dev/null +++ b/_site/questions/testing-questions/index.html @@ -0,0 +1 @@ +Testing Questions ★ Front-end Job Interview Questions

Testing Questions

  • What are some advantages/disadvantages to testing your code?
  • What tools would you use to test your code’s functionality?
  • What is the difference between a unit test and a functional/integration test?
  • What is the purpose of a code style linting tool?
\ No newline at end of file diff --git a/_site/sitemap.xml b/_site/sitemap.xml new file mode 100644 index 000000000..c41eb76de --- /dev/null +++ b/_site/sitemap.xml @@ -0,0 +1,228 @@ + + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/about/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/coding-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/css-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/fun-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/general-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/html-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/javascript-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/network-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/performance-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/testing-questions/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/arabic/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/bulgarian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/burmese/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/chinese-traditional/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/chinese/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/croatian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/czech/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/danish/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/dutch/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/farsi/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/french/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/german/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/greek/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/hebrew/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/hungarian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/indonesian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/italian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/japanese/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/korean/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/korean/reference.html + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/latvian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/polish/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/portuguese/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/romanian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/russian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/serbian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/slovakian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/slovenian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/spanish/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/swedish/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/turkish/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/ukrainian/ + 2018-11-26 + + + + https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/vietnamese/ + 2018-11-26 + + diff --git a/_site/translations/arabic/index.html b/_site/translations/arabic/index.html new file mode 100644 index 000000000..bc4518968 --- /dev/null +++ b/_site/translations/arabic/index.html @@ -0,0 +1 @@ +أسئلة مقابله شخصية في تطوير واجهةالويب ★ Front-end Job Interview Questions

أسئلة مقابله شخصية في تطوير واجهةالويب

أسئلة مقابله شخصية في تطوير واجهةالويب

هذا الملف يحتوي على عدد من أسئلة مقابلة شخصية في تطوير واجهة الويب التي من الممكن ان تساعدك في فحص المرشحين المحتملين للوظيفة.
لا ينصح باستخدام كل الأسئلة هنا على مرشح واحد, فاختيار بعض من الأسئلة سيساعدك في تحديد من يمتلك المهارات المتوافقه مع متطلباتك.

ملاحظة: كثير من هذه الأسئلة ليس لها إجابات محددة مما قد يؤدي الى نقاش مثير للاهتمام , و يعرفك على قدرات الشخص أكثر مما تتوقع من اجابة محدده.

قائمة المحتوى

  1. أسئلة عامة
  2. أسئلة HTML
  3. أسئلة CSS
  4. أسئلة JS
  5. أسئلة اختبار البرمجيات Testing
  6. أسئلة أداء البرمجيات Performance
  7. أسئلة شبكات Network
  8. أسئلة برمجة
  9. أسئلة مسلية

الدخول و المساهمة

  1. المساهمون
  2. كيف تساهم
  3. الرخصة

أسئلة عامة:

  • ماذا تعلمت بالأمس/هذا الأسبوع؟
  • ماذا يهمك ويثير اهتمامك في البرمجة؟
  • ماهو اخر تحدي تقني واجهته ,و كيف استطعت إصلاحه؟
  • اي من واجهة المستخدم, الامان, الاداء, قابلية الصيانه, SEO, او اي تقنية تضعها في الحسبان عند بناء تطبيق ويب او موقع؟
  • تكلم عن بيئة التطوير المفضلة لديك.
  • ماهو إصدار نظام التحكم المعتاد عليه؟
  • هل تستطيع وصف روتين عملك عند إنشاء صفحة ويب؟
  • لو كان لديك خمسة stylesheets مختلفة كيف لك دمجها في الموقع بأفضل طريقة؟
  • هل تستطيع شرح الفرق بين progressive enhancement و graceful degradation؟
  • كيف يمكنك تحسين assets/resources الموقع؟
  • كم عدد المصادر التي يحملها الموقع من domain في وقت واحد؟
    • ماهي الاستثناءت؟
  • سم ثلاث طرق لتخفيض تحميل الصفحة؟
  • لو دخلت الى مشروع و هم يستخدمون tabs وانت تستخدم spaecs, فماذا ستفعل؟
  • اشرح كيف تنشئ صفحة عرض شرائح.
  • لو كنت ستحترف تقنية واحده هذه السنه ماذا ستكون؟
  • اشرح اهمية standards و standards bodies.
  • ماهو Flash of Unstyled Content ؟وكيف تتفاداه
  • اشرح ما هو ARIA و screenreaders, وكيف تنشئ موقع accessible؟
  • اشرح الإيجابيات و السلبيات CSS animations مقابل JavaScript animations.
  • ماذا CORS يرمز الى ,و ماهي المشكلة التي يعالجها؟

أسئلة HTML:

  • ماذا تفعل doctype؟
  • ماهو الفرق بين full standards mode, almost standards mode و quirks mode؟
  • ماهو الفرق بين HTML و XHTML؟
  • هل هناك مشكلة في استضافة صفحاتapplication/xhtml+xml؟
  • كيف تستضيف صفحه بمحتوى متعدد اللغات؟
  • ماهي الاشياء التي يجب ان تحترس منها عند تصميم او تطور موقع متعدد اللغات؟
  • ماهي فائدة -data؟
  • اعتبر HTML5 منصة مفتوحة على شبكة الإنترنت ماهي أسس بناء HTML5؟
  • اشرح الفرق بين cookie, sessionStorage و localStorage.
  • اشرح الفرق بين <script>, <script async> و <script defer>.
  • لماذا من الأفضل وضع سي اس اس <link> بين <head></head> و جافاسكربت <script> قبل <body/>؟
  • ماهو progressive rendering؟
  • هل استخدمت HTML templating languages مختلفة من قبل؟

أسئلة CSS:

  • ما الفرق بين class و id في CSS؟
  • ما الفرق بين "resetting" و "normalizing" في CSS؟ واي منهم ستختار, ولماذا؟
  • اشرح Floats, و كيف تعمل؟
  • اشرح z-index, و كيف stacking context شُكلت؟
  • اشرح (BFC(Block Formatting Context, و كيف تعمل؟
  • ماهي clearing techniques المختلفه و اي منها مناسب لأي سياق؟
  • اشرح CSS sprites, وكيف سوف تنفذعم في صفحه او موقع؟
  • ما هي طرق تبديل الصور "image replacement" المفضلة لديك و متى تسخدم اي منها؟
  • كيف تصلح مشكلة تنسيق في متصفح معين؟
  • كيف تجعل صفحاتك تعمل على متصفحات مقيدة بالميزات "قديمة"؟
    • ما هي الطرق/العمليات التي تستخدمها؟
  • ماهي الطرق المختلفة لكي تخفي المحتوى وتجعله فقط متوفر لقارء الشاشه فقط؟
  • هل استخدمت نظام grid من قبل, و لو كان كذكلك ماذا تفضل؟
  • هل استخدمت media queries او تنسيق محدد للهاتف؟
  • هل انت معتاد مع تصميم SVG؟
  • كيف تحسن صفحاتك لطٌباعة؟
  • ماهي بعض المعوقات في كتابة CSS جيد؟
  • ماهي الايجابيات/السلبيات في استخدام CSS preprocessors؟
    • اوصف ماذا يعجبك وما لايعجبك حول استخدام CSS preprocessors؟
  • كيف كيف لك تنفيذ web design comp باستخدام خطوط ليست أساسية؟
  • اشرح كيف يتسطيع المتصفح تحديد أي عنصر ينتمي إلى أي CSS selector.
  • اوصف pseudo-elements و ناقش في ماذا يستخدمون؟
  • اشرح ماهو box model و كيف ستخبر المتصفح تنسيق في box models مختلفة باستخدام CSS.
  • ماذا { ;box-sizing: border-box } * يفعل, وماهي ايجابياته؟
  • عدد كل قيم خاصية display التي تتذكرها.
  • ما هو الفرق بين inline و inline-block؟
  • ماهو الفرق بين قيم relative, fixed, absolute و statically في خاصية position؟
  • الحرف "C" في CSS يرمز الى Cascading. كيف تحدد الافضلية في تعيين التصميم , وكيف لك أن تستفيد من هذه الخاصية؟
  • أي من إطارات العمل CSS استخدمت في الانتاج أو محليا على جهازك, وكيف لك تغييرهم/تطورهم؟
  • هل جربت او استعملت قليلا CSS Flexbox او Grid؟
  • كيف يكون responsive design مختلفا عن adaptive design
  • هل عملت من قبل مع retina graphics, ولو كان كذلك متى و ماهي الطرق التي استعملتها؟
  • هل هناك سبب يجعلك من الممكن أن تستعمل ()translate بدلا من absolute positioning او vice-versa؟ ولماذا.

أسئلة JS:

  • اشرح event delegation.
  • اشرح كيف this تعمل في JavaScript.
  • اشرح كيف تعمل prototypal inheritance.
  • ما رأيك في AMD vs CommonJS؟
  • اشرح لماذا التالي ;(){ }{}function foo لا يعمل كـ IIFE؟
    • ما الذي يحتاجه من تصحيح لجعل IIFE بصوره صحيحة؟
  • ما الفرق بين المتغيرات: null, undefined، undeclared؟
    • ما الذي ستفعله لتتحقق من أي من هذه الحالات؟
  • ما هو closure وكيف/لماذا ستستخدم واحدًا؟
  • ما هي حالة الاستخدام الاعتيادية لـ anonymous functions؟
  • كيف تنظم برمجياتك؟ (module pattern, classical inheritance)؟
  • ما الفرق بين host objects و native objects؟
  • القرق بين {} ()function Person, ()var person = Person()var person = new Person؟
  • ما الفرق بين call.و apply.؟
  • اشرح Function.prototype.bind.
  • متى تستخدم ()document.write؟
  • ما الفرق بين feature detection, feature inference , واستخدام الـ UA string؟
  • اشرح Ajax في أكبر قدر من التفاصيل .
  • ما هي المزايا والعيوب في استخدام Ajax ؟
  • اشرح كيف JSONP يعمل (وكيف أنها ليست حقا Ajax ).
  • هل سبق لك استخدام JavaScript templating؟
    • لو كان كذلك أي مكتبة استخدمت؟
  • اشرح "hoisting".
  • اوصف event bubbling.
  • ما الفرق بين "attribute" و "property"؟
  • لماذا extending built-in JavaScript objects فكرة سيئة؟
  • ما هو الفرق بين document load event و document DOMContentLoaded event؟
  • ما هو الفرق بين == و ===؟
  • اشرح سياسة same-origin فيما يتعلق بجافاسكربت.
  • اجعل هذا يعمل:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • لماذا "Ternary" سميت هكذا ,و ماذا تشير كلمة Ternary expression إلى؟
  • ماهو ;"use strict", وما هي إبجبايات و سلبيات استخدامه؟
  • اكتب for loop تكرر حتى 100 و تطبع "fizz" في مضاعفات 3 , و "buzz" في مضاعفات 5 و "fizzbuzz" في مضاعفات 5 و3.
  • لماذا بشكل عام ترك global scope للموقع كما هو و عدم لمسه فكرة جيدة
  • لماذا من الممكن تستخدم شي مثل load event, وهل هذا الـevent يملك سلبيات؟ وهل تعرف بدائل.و لماذا من الممكن ان تستخدمهم
  • اشرح ما هو single page app و كيفية صنع SEO-friendly.
  • ما مدى خبرتك في استعمال Promises و/او polyfills خاصتهم؟
  • ماهي بعض المزايا و العيوب في استخدام Promises بدلا من callbacks؟
  • ماهي بعض الاجابيات و السلبيات في كتابتة جافاسكرت كود في لغة يحدث لها compiles إلى جافاسكربت؟
  • ماهي الادوات و الطرق التي تستخدمها في البحث و التصحيح عن أخطاءك في الجافاسكربت كود؟
  • ماهي language constructions تستعمل لتكرار على خواص object و عناصر array؟
    • اشرح الفرق بين mutable و immutable objects.
    • ماذا يعتبر في الجافاسكربت لـ immutable object؟
    • ماهي الايجابيات و السلبيات الـ immutability؟
    • كيف يمكنك تحقيق immutability في الكود الخاص بك؟
  • اشرح الفرق بين synchronous و asynchronous functions.
  • ماهو event loop؟
    • ما هو الفرق بين call stack و task queue؟
  • اشرح الفرق في استخدام foo بين {} ()function foo و {} ()var foo = function.

أسئلة اختبار البرمجيات Testing:

  • ما هي المزايا والعيوب لاختبار برمجياتك؟
  • ما الأدوات التي تستخدمهافي اختبار وظائف برمجياتك؟
  • ما الفرق بين اختبار unit واختبار functional/integration؟
  • ما الغرض من code style linting tool؟

أسئلة أداء البرمجيات Performance:

  • ما الأدوات التي تستخدمها لإيجاد مشاكل في الأداء؟
  • ما هي الطرق التي من الممكن تحسن أداءالـ scrolling في موقعك؟
  • اشرح الفرق بين layout و painting و compositing.

أسئلة شبكات Network:

  • في العادة لماذا من الأفضل أن ترفع site assets من domains متعدده؟
  • افعل ما بوسعك لشرح ما يحدث من بداية كتابك عنوان الموقع الى انتهاء تحميله على شاشتك.
  • ما الفرق بين Long-Polling و Websockets و Server-Sent Events؟
  • اشرح request and response headers التاليه:
    • الفرق بين If-Modified-... , Expires, Date, Age
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • ما هي HTTP methods؟ و عدد كل HTTP methods التي تعرفها، واشرحها.

أسئلة برمجة:

سؤال: ماهي قيمة foo؟

var foo = 10 + '20';

سؤال: كيف يمكن جعل هذا الكود يعمل؟

add(2, 5); // 7
add(2)(5); // 7

سؤال: ماهي القيمة العائدة من الكود التالي؟

"i'm a lasagna hog".split("").reverse().join("");

سؤال: ماهي قيمة window.foo؟

( window.foo || ( window.foo = "bar" ) );

سؤال: ماهو ناتج التنبيهات التالية؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سؤال: ماهي قيمة foo.length؟

var foo = [];
foo.push(1);
foo.push(2);

سؤال: ماهي قيمة foo.x؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سؤال: ماذا يطبع الكود التالي؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

أسئلة مسلية:

  • ماذا عملت من مشروع رائع مؤخرا؟
  • ما هي الاشياء التي أعجبتك في أدوات التطوير التي تستعملها؟
  • من الذي يلهمك في مجتمع تطوير واجهة الويب؟
  • هل لديك اي من المشاريع الصغيرة؟ ما نوعها؟
  • ما هي الميزة المفضلة لديك في Internet Explorer؟
  • كيف تحب قهوتك؟

المساهمون:

بدأت هذه الوثيقة في عام 2009 بتعاون @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

ومنذ ذلك الحين تلقى مساهمات من أكثر من 100 مطور.

\ No newline at end of file diff --git a/_site/translations/bulgarian/index.html b/_site/translations/bulgarian/index.html new file mode 100644 index 000000000..b43dfbae1 --- /dev/null +++ b/_site/translations/bulgarian/index.html @@ -0,0 +1 @@ +Въпроси за интервю за front-end разработчици ★ Front-end Job Interview Questions

Въпроси за интервю за front-end разработчици

Въпроси за интервю за front-end разработчици

Това репозитори съдържа въпроси от интервюта на front-end разработчици, които могат да бъдат използвани за отсяване на потенциални кандидати. Не препоръчваме използването на всеки въпрос за всеки кандидат (това би отнело часове). Избирането на няколко въпроса от списъка би могло да помогне да се проверят търсените умения у кандидатите.

Статията Baseline For Front-End Developers на Rebecca Murphey също е чудесен ресурс за четене преди провеждането на интервю.

Бележка: Имайте предвид, че много от тези въпроси могат да породят интересни дискусии и да ви помогнат по-добре да проверите познанията и начина на мислене на кандидата, отколкото ако получавате директен отговор.

Съдържание

  1. Участници в проекта
  2. Общи въпроси
  3. HTML въпроси
  4. CSS въпроси
  5. JS въпроси
  6. jQuery въпроси
  7. Въпроси, свързани с тестване
  8. Въпроси, свързани с бързодействие
  9. Мрежови въпроси
  10. Въпроси, свързани с програмиране
  11. Забавни въпроси
  12. Допълнителни ресурси

[⬆] Участници в проекта:

Мнозинството от въпроси са взети от oksoclap измислени от Paul Irish (@paul_irish) и благодарение на:

[⬆] Общи въпроси:

  • Какво научихте вчера / тази седмица?
  • Какво ви привлича в писането на код?
  • С какво техническо предизвикателство се сблъскахте наскоро и как го решихте?
  • Какво свързва потребителския интерфейс, сигурността, функционирането, SEO, поддръжката или технологиите по между им при създаването на уеб приложения или сайтове?
  • Разкажете за предпочитанията ви към операционни системи, редактори, браузъри, инструменти и т.н.
  • С кои системи за управление на версиите (source control) сте запознати?
  • Можете ли да обясните последователността от действия, които извършвате, когато създавате уеб страници?
  • Ако имате 5 различни стилови файла, как бихте ги интегрирали?
  • Можете ли да обясните разликите между progressive enhancement и graceful degradation?
  • Как бихте оптимизирали зареждането на ресурси за дадена уеб страница?
  • По колко ресурса едновременно свалят браузърите от даден домейн?
    • Какви са изключенията?
  • Назовете 3 начина да намалите скоростта на зареждане на уеб страница (забележимата или реалната скорост на зареждане).
  • Ако започнете работа по проект, в чийто код са използвани табулации, а вие сте използвали интервали, какво ще направите?
  • Обяснете как бихте изградили страница със слайд-шоу.
  • Ако можете да научите много добре 1 технология тази година, каква ще е тя?
  • Обяснете важността на стандартите и организациите за стандартизация.
  • Какво е Flash of unstyled content? Как се справяте с FOUC?
  • Обяснете какво е ARIA и екранни четци и как да правим сайтовете по-достъпни.
  • Обяснете предимствата и недостатъците на CSS анимациите пред тези на JavaScript.
  • Какво означава CORS и какъв проблем решава?

[⬆] HTML въпроси:

  • Какво прави doctype?
  • Каква е разликата между режимите “standards mode”, “almost standards mode” и “quirks mode”?
  • Каква е разликата между HTML и XHTML?
  • Има ли проблеми при обработката на страници с application/xhtml+xml?
  • Как показвате страници със съдържание на няколко езика?
  • Какви неща трябва да се имат предвид, когато правите дизайн или разработвате многоезични страници?
  • За какво служат HTML атрибутите, които започват с data-?
  • Представете си HTML5 като отворена уеб платформа. Кои са градивните елементи на HTML5?
  • Обяснете разликата между бисквитки, sessionStorage и localStorage.
  • Обяснете разликата <script>, <script async> и <script defer>.
  • Защо е добре да се зарежда CSS <link> в елемента <head></head> и JS <script> преди затварящия таг </body>? Знаете ли за изключения?
  • Какво означава progressive rendering?
  • Защо бихте използвали srcset атрибут в <img> таг? Обяснете процеса, през който минава браузърът, когато обработва съдържанието на този атрибут.
  • Използвали ли сте различни шаблонни HTML езици?

[⬆] CSS въпроси:

  • Каква е разликата между class и ID в CSS?
  • Каква е разликата между “resetting” и “normalizing” в CSS? Кое бихте избрали и защо?
  • Обяснете плаващите елементи (floats) и как работят.
  • Обяснете z-index и как се формира наслагването на елементите.
  • Опишете BFC (Block Formatting Context) и как работи той.
  • Кои са различните clearing техники и кои в какъв контекст се използват?
  • Обяснете CSS sprite-овете, и как можете да ги вкарате на уеб страница или сайт.
  • Кои са любимите ви техники, които заменят картинките и в кои случаи кои от тях използвате?
  • Как бихте подходили за да решите специфичните стилове за различните браузъри?
  • Как показвате страниците си на браузъри, които не поддържат част от възможностите на HTML5?
    • Какви техники/процеси използвате?
  • Какви са различните начини визуално да скриете съдържание от уеб страницата (и да го направите видимо само за екранните четци)?
  • Използвали ли сте грид система и ако да, коя предпочитате?
  • Използвали ли сте media queries или специфичен за мобилните платформи layouts или CSS?
  • Запознати ли сте със стилизирането на SVG?
  • Как оптимизирате вашите уеб страници за принтиране?
  • Кои са някои от “триковете” за писане на ефективен CSS?
  • Какви са предимствата/недостатъците при използване на препроцесори?
    • Опишете какво ви харесва и не ви харесва при използването им.
  • Как реализирате уеб дизайни, които използват нестандартни фонтове?
  • Обяснете как уеб браузърите разбират кои елементи отговарят на даден CSS селектор.
  • Опишете псевдо-елементите и обяснете за какво се използват.
  • Обяснете как разбирате box model и как бихте накарали браузъра с CSS да изпълни layout в различни box model-и.
  • Какво прави * { box-sizing: border-box; }? Какви са предимствата му?
  • Направете списък на всички стойности на display, за които можете да се сетите.
  • Каква е разликата между inline и inline-block?
  • Каква е разликата между позиционирането на елементите relative, fixed, absolute и static?
  • ‘C’ в CSS идва от Cascading. Какъв приоритет имат стиловете при наслагването им (няколко примера)? Как бихте използвали това?
  • Какви CSS frameworks сте ползвали самостоятелно или в проекти? Как бихте ги променили / обогатили?
  • Тествали ли сте новия CSS Flexbox или Grid specs?
  • Каква е разликата между responsive design и adaptive design на сайт?
  • Работили ли сте с retina graphics? Ако да, какви техники използвахте?
  • Има ли причина да ползвате translate() вместо абсолютно позициониране и обратно? Защо?

[⬆] JS въпроси:

  • Обяснете event delegation.
  • Обяснете как работи this в JavaScript.
  • Обяснете как работи наследяването на прототипи (prototypal inheritance).
  • AMD или CommonJS?
  • Обяснете защо този код не работи като IIFE: function foo(){ }();.
    • Какво е нужно да се промени, за да може кодът да работи като IIFE?
  • Каква е разликата между променлива, която е: null, undefined или недекларирана?
    • Как проверявате всяко от тези състояния на променливите?
  • Какво е closure? Как и защо се използва?
  • Кога се използват анонимните функции?
  • Как организирате своя код? (module патърн, класическо наследяване?)
  • Каква е разликата между host обекти и native обекти?
  • Каква е разликата между function Person(){}, var person = Person() и var person = new Person()?
  • Каква е разликата между .call и .apply?
  • Обяснете Function.prototype.bind?
  • В какви случаи бихте използвали document.write()?
  • Каква е разликата между feature detection, feature inference, и използването на user agent (UA) string?
  • Обяснете AJAX в детайли.
  • Какви са предимствата и недостатъците при употребата на AJAX?
  • Обяснете как работи JSONP (и защо не е точно AJAX).
  • Използвали ли сте JavaScript темплейти?
    • Ако да, коя библиотека сте използвали?
  • Обяснете “hoisting”.
  • Обяснете “event bubbling”.
  • Каква е разликата между “attribute” и “property”?
  • Защо extending built-in в JavaScript обектите не е добра идея?
  • Каква е разликата между събитията “document load” и “document DOMContentLoaded”?
  • Каква е разликата между == и ===?
  • Обяснете same-origin policy от гледна точка на JavaScript.
  • Оправете кода, така че да работи:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Защо тернарният оператор се нарича така? Какво означава думата “тернарен”?
  • Какво е "use strict";? Какви са предимствата и недостатъците на ползването му в кода?
  • Напишете for loop, който стига до 100 и извежда “fizz” за всички числа, които се делят на 3, “buzz” за тези, които се делят 5 и “fizzbuzz” за числата, които се делят и на 3 и на 5.
  • Защо по правило е добра идея да се остави global scope на един уебсайт непроменен?
  • Защо бихте използвали нещо като load събитието? Това събитие има ли недостатъци? Знаете ли алтернативи и защо бихте ги използвали?
  • Обяснете какво е single page app и как може да се оптимизира за търсачките.
  • Докъде се простира опитът ви с Promises и / или техните polyfills?
  • Какви са предимствата и недостатъците при използване на Promises вместо callbacks?
  • Кои са някои предимства / недостатъци на писането на JavaScript код на език, който се компилира до JavaScript?
  • Какви инструменти и техники използвате, когато дебъгвате JavaScript код?
  • Кои конструкции на езика използвате, за да итерирате атрибути (properties) на обекти и елементи в масиви?
  • Обяснете разликата между mutable и immutable обекти.
    • Дайте пример за immutable обект в JavaScript.
    • Какви са предимствата и недостатъците на това един обект да бъде immutable?
    • Как може да направите обект immutablе във Вашия собствен код?
  • Обяснете разликата между синхронни и асинхронни функции.
  • Какво е event loop?
    • Каква е разликата между call stack и task queue?
  • Обяснете разликите при използването на foo в примерите: function foo() {}; var foo = function() {}
  • Какви са разликите при създаавнето на променливи с let, var и const?

[⬆] jQuery въпроси:

  • Обяснете “chaining”.
  • Обяснете “deferreds”.
  • Какви специфични за jQuery оптимизации, можете да направите?
  • Какво прави .end()?
  • Как и защо бихте сложили bound event handler в namespace?
  • Назовете 4 различни типа стойности, които можете да подадете на jQuery метод.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object и т. н.
  • Какво е effects (или fx) queue?
  • Каква е разликата между .get(), [], и .eq()?
  • Каква е разликата между .bind(), .live(), и .delegate()?
  • Каква е разликата между $ и $.fn? Или просто: Какво е $.fn?
  • Оптимизирайте този селектор:
$(".foo div#bar:eq(0)")

[⬆] Въпроси, свързани с тестване:

  • Какви са предимствата и недостатъците в тестването на код?
  • Какви инструменти бихте могли да използвате, за да тествате как работи Вашия код?
  • Каква е разликата между компонентен тест (unit test) и функционален / интеграционен тест (functional / integration test)?
  • Каква е целта на инструментите за анализиране на кода (linting tools)?

[⬆] Въпроси, свързани с бързодействие:

  • Какви инструменти бихте използвали, за да откриете проблем, свързан с бързодействието на кода?
  • Дайте примери за начини, по които може да подобрите бързодействието на скролирането в сайт.
  • Обяснете разликата между layout, painting и compositing.

[⬆] Мрежови въпроси:

  • Защо по традиция е препоръчително да се зареждат ресурсите за даден уебсайт от няколко домейна?
  • Опишете по най-добрия възможен начин процесът, който се случва от написването на URL-a на един уебсайт до края на зарежаднето му на екрана.
  • Какви са разликите между Long-Polling, Websockets и Server-Sent Events?
  • Обяснете следните хедъри на request и response:
    • Разлики между Expires, Date, Age и If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Какво представляват HTTP методите? Избройте всички HTTP методи, които познавате, и ги обяснете.

[⬆] Въпроси, свързани с програмиране:

modulo(12, 5) // 2

Въпрос: Имплементирайте функция за намиране на остатък от деление която отговаря на горното условие (да връща 2 при аргументи 12 и 5)

"i'm a lasagna hog".split("").reverse().join("");

Въпрос: Каква стойност ще върне горният израз?

Отговор: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Въпрос: Каква е стойността на window.foo?

Отговор: “bar”, ако window.foo има стойност false, иначе стойността на window.foo)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Въпрос: Какво ще изкарат двете alert функции от горния код?

Отговор: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Въпрос: Каква е стойността на foo.length?

Отговор: 2

[⬆] Забавни въпроси:

  • Кое е най-якото нещо, което сте писали и от което сте най-горд?
  • Кое най-много ви допада в инструментите за разработчици, които използвате?
  • Разработвате ли някакви проекти като хоби? Какви?
  • Какво най-много ви харесва в Internet Explorer?
  • Как предпочитате кафето си?

####[⬆] Допълнителни ресурси:

\ No newline at end of file diff --git a/_site/translations/burmese/index.html b/_site/translations/burmese/index.html new file mode 100644 index 000000000..bb4cd2369 --- /dev/null +++ b/_site/translations/burmese/index.html @@ -0,0 +1 @@ +Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ ★ Front-end Job Interview Questions

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

ယခုဖိုင်တွင် Front-end developer အလုပ်အတွက် အလုပ်လျှောက်ထားသူများအား အင်တာဗျူးများပြုလုပ်ရာတွင် အထောက်အကူပြုနိုင်သည့် မေးခွန်းများပါဝင်ပါသည်။ အလုပ်လျှောက်ထားသူတစ်ဦးစီတိုင်းကို ရှိသမျှမေးခွန်းတိုင်းမေးရန် အကြံပြုခြင်းမဟုတ်ပါ။ (ဖြေရလွန်း၍ လျှာထွက်နိုင်ကိန်းရှိသည်။) မိမိခန့်အပ်လိုသောအလုပ်နှင့်သက်ဆိုင်သည့် အလုပ်တာဝန်၊ လိုအပ်ချက်များနှင့်သက်ဆိုင်သည့် မေးခွန်းများကိုသာရွေးချယ်ကာမေးရန် ရည်ရွယ်ပါသည်။

မှတ်ချက်။ ။ မေးခွန်းအများစုမှာ open-ended မေးခွန်းများြဖစ်ြပီး ဒဲ့ဒိုးအဖြေတစ်ခု အတိအကျရယ် မရှိချေ။ ထိုမေးခွန်းနှင့် ပါတ်သက်၍ ဆွေးနွေးစကားပြောဆိုရာမှ လျှောက်ထားသူ၏ အစွမ်းအဆကို ပိုမိုခန့်မှန်းနိုင်မည်ြဖစ်သည်။

မာတိကာ

  1. ယေဘုယျ မေးခွန်းများ
  2. HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ
  3. CSS နှင့်သက်ဆိုင်သော မေးခွန်းများ
  4. JS နှင့် သက်ဆိုင်သော မေးခွန်းများ
  5. Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ
  6. Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ
  7. Network နှင့် သက်ဆိုင်သော မေးခွန်းများ
  8. Coding နှင့်သက်ဆိုင်သော မေးခွန်းများ
  9. အပျော်မေးခွန်းများ

Getting Involved

  1. Contributors
  2. How to Contribute
  3. License

ယေဘုယျ မေးခွန်းများ

  • ဒီရက်ပိုင်းအတွင်း (သို့) ဒီတစ်ပါတ်အတွင်း ဘာတွေသင်ယူ လေ့လာြဖစ်ပါသနည်း။
  • Coding နဲ့ပါတ်သက်လို့ ဘယ်လိုအရာမျိုးက သင့်ကို စိတ်လှုပ်ရှားအောင်၊ စိတ်ဝင်စားအောင်လုပ်နိုင်ပါလဲ။
  • အခုလောလောဆယ်ပိုင်းမှာ ဘယ်လို technical challenge တွေများတွေ့ခဲ့သလဲ၊ ပြီးတော့ အဲ့ဒီ့ challenge တွေကို ဘယ်လိုအောင်ြမင်စွာ ကျော်ြဖတ်ခဲ့ပါသလဲ။
  • Web application တစ်ခု သို့ web site တစ်ခုကိုလုပ်ရာမှာ မည်သည့် User Iterface၊ Security (လုံခြုံရေး)၊ Performance၊ Search Engine Optimization (မိမိ၏ site/application အား search engine များမှ လွယ်ကူစွာ ရှာဖွေနိုင်ရေး)၊ Maintainability (နောင်မှာပြုပြင်မှုလွယ်ကူရေး)၊ Technology (နည်းပညာရွေးချယ်မှု) စသည်တို့နှင့်ပါတ်သက်၍ မည့်သည့်အချက်များကို စဉ်းစားပါသလဲ။
  • Development လုပ်ရာတွင် သင့်အကြိုက်ဆုံးြဖစ်မည့် computer set-up အကြောင်းပြောပါ။
  • မည့်သည့် Version control system တွေကို သုံးဖူး၊ စမ်းဖူးပါသလဲ။
  • Web page တစ်ခုကို ပြုလုပ်ရာတွင် သင်၏ လုပ်ငန်းစဉ်အဆင့်ဆင့် (workflow) ကိုပြောပြပါ။
  • သင့်မှာ stylesheet ၅ခုရှိသည်ဆိုပါစို့၊ သင်၏ webpage အတွင်းသို့ ဘယ်လိုအကောင်းဆုံးြဖစ်အောင် ထည့်သွင်းမည်နည်း။
  • Progressive enhancement (ဆီလျော်စွာ ကောင်းမွန်စေနည်း) နှင့် graceful degradation (ဟန်မပျက် နှိမ့်ချနည်း) တို့ကို ရှင်းြပပေးပါ။
  • Website တစ်ခု၏ assets များ resource များကို ဘယ်လို optimize လုပ်ပါမည်နည်း။
  • Browser တစ်ခုသည် domain တစ်ခုမှ resource ဘယ်နှစ်ခု တစ်ပြိုင်တည်း download လုပ်နိုင်ပါသနည်း
    • ဘယ်လိုချွင်းချက်များရှိပါသနည်း။
  • Page load လုပ်သည့်အချိန်အား လျှော့ချနိုင်သည့် နည်း၃မျိုးပြောပါ။ (တကယ် load လုပ်သည့်အခိျန် သို့ load လုပ်သည်ဟုထင်ရချိန်)
  • လုပ်လက်ဆ Project တစ်ခုကို ဝင်ရောက်လုပ်ကိုင်ရာမှာ၊ နဂို developer များက Tab ကိုသုံးကာ code ကို format လုပ်ထားပြီး သင့်အနေနှင့် space များနှင့် format လုပ်သူတစ်ယောက်ဖြစ်သည်ဆိုပါစို့။ သင်မည်သို့ ဝင်ရောက်လုပ်ကိုင်မည်နည်း။
  • ရိုးရှင်းတဲ့ Slideshow page တစ်ခုကို သင်ဘယ်လိုပြုလုပ်ပါမည်နည်း။
  • သင်သည် ဒီနှစ်ထဲတွင် technology တစ်ခုကို ကျွမ်းကျင်စွာလေ့လာနိုင်မည်ဆိုပါက မည်သည့် technology ကိုလေ့လာမည်နည်း။
  • Standard များ၏ အရေးပါပုံနှင့် standard များကို သတ်မှတ်သည့် အဖွဲ့အစည်းများ၏ အရေးပါပုံကို ပြောပါ။
  • Flash of unstyled content ဆိုတာဘာလဲ။ ဘယ်လိုရှောင်ကွင်းနိုင်ပါသလဲ။
  • ARIA နှင့် screenreader များအကြောင်း၊ accessible ြဖစ်သည့် website ကို လုပ်ပုံလုပ်နည်းအကြောင်း ပြောပါ။
  • CSS animation များနှင့် Javascript animation များ၏ အားနည်းချက်၊ အားသာချက်များအကြောင်းရှင်းပြပါ။
  • CORS ဆိုတာဘာလဲ၊ ဘယ်လိုအခက်အခဲမျိုး ဘယ်လို issue မျိုးအတွက် အသုံးပြုပါသလဲ။

HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ

  • doctype ဆိုတာဘာလဲ။ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Full standards mode၊ almost standard mode နှင့် quirks mode ကွာခြားချက်များကို ပြောပါ။
  • HTML နှင့် XHTML ကွာခြားချက်များကို ပြောပါ။
  • Page များကို application/xhtml+xml နှင့် ချပေးပါက မည်သည့်ပြဿနာများရှိသနည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော page တစ်ခုကို ဘယ်လိုချပြမည်နည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော website တစ်ခုကို ဒီဇိုင်းလုပ်ရာ၊ develop လုပ်ရာတွင် မည်သို့စဥ်းစားကိုပြုလုပ်မည်နည်း။
  • data- attributes တွေသည် မည်သည့် ကိစ္စအတွက် ကောင်းသနည်း။
  • HTML5 ကို open platform တစ်ခုအနေစဥ်းစားကြည့်ပါစို့။ HTML5 ၏ အခြေခံအုပ်မြစ်များသည် အဘယ်နည်း။
  • cookie, sessionStorage နှင့် localStorage တို့၏ ကွာခြားချက်များကိုပြောပါ။
  • <script>, <script async> နှင့် <script defer> တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • ဘာကြောင့် CSS ၏ <link> tag များကို <head></head> အတွင်း၊ ဘာကြောင့် Javascript ၏ <script> tag များကို </body> မတိုင်ခင်ထည့်သည့်သည်ဟု ယေဘုယျအားဖြင့် အကြံပြုကြပါသလည်း။ ဘယ်လိုချွင်းချက်များ ရှိပါလဲ။
  • Progressive Rendering ဆိုတာဘာလဲ။
  • တခြား HTML template လုပ်ပေးနိုင်တဲ့ templating engine မျိုးဘာသုံးဖူးလဲ။

CSS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • CSS တွင် class တွေနှင့် ID တွေ၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS တွင် “resetting” နှင့် “normalizing” တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • Float တွေအကြောင်းနှင့် ဘယ်လိုအလုပ်လုပ်ကြောင်း ပြောပါ။
  • z-index နှင့် stacking အလုပ်လုပ်ပုံကို ရှင်းပါ။
  • BFC(Block Formatting Context) အကြောင်းရှင်းပါ၊ ဘယ်လိုအလုပ်လုပ်လဲ ပြောပါ။
  • Clearing နည်းအမျိုးမျိုးနှင့် မည်သည့်နည်းသည် မည်သို့အခြေအနေနှင့်သင့်တော်ကြောင်းရှင်းပြပါ။
  • CSS sprites များအကြောင်းရှင်းပြပါ။ Page တစ်ခု၊ site တစ်ခုမှာ ဘယ်လိုလုပ်မလဲရှင်းပြပါ။
  • အကြိုက်ဆုံး Image replacement နည်းများကိုပြောပါ၊ ဘယ်နည်းကို ဘယ်အခါမှာသုံးပါသနည်း။
  • Browser တစ်ခု၊နှစ်ခုနှင့်သာ သက်ဆိုင်သည့် style ပိုင်း ပြဿနာမျိုးကို မည်သို့ရှင်းမည်နည်း။
  • သင်၏ page တစ်ခုကို feature အစုံမပါသည့် browser တစ်ခုအတွက် မည်သို့ style လုပ်မည်နည်း။
    • မည်သည့်နည်း၊ လုပ်ဆောင်မှုများကို သုံးမည်နည်း။
  • Content တစ်ခုကို မမြင်ရအောင် မည်သို့လုပ်နိုင်ပါသနည်း (Screen readers များနှင့်သာ ဖတ်နိုင်အောင်)
  • Grid system များသုံးဖူးပါသလား၊ ဘယ်တစ်ခုကို ပိုကြိုက်ပါသလဲ။
  • Media queries သို့ mobile ဖုန်းအတွက် ရည်ရွယ်တဲ့ layout တွေ styling တွေလုပ်ဖူးလား။
  • SVG ကို style လုပ်တာနဲ့ပါတ်သက်ပြီး ဘယ်လိုအတွေ့အကြုံရှိပါသလဲ။
  • Webpage တွေကို print ထုတ်ဖို့အတွက် ဘယ်လို optimize လုပ်ပါသလဲ။
  • Efficient ြဖစ်တဲ့ CSS တွေကိုရေးဖို့အတွက် ဘယ်လို အချက်များကို သတိထားရပါမလဲ။
  • CSS preprocessor များ၏ ကောင်းချက် ဆိုးချက်များကို ပြောပါ။
    • သုံးဖူးတဲ့ CSS preprocessor တွေရဲ့ ကြိုက်တဲ့အချက် မကြိုက်တဲ့အချက်များကို ပြောပြပါ။
  • Web design comp တစ်ခု၊ photoshop/illustrator နဲ့ဆွဲထားတဲ့ design တစ်ခုကို ဘယ်လို develop လုပ်ပါမည်နည်း။
  • Browser တစ်ခုက CSS selector တစ်ခုနှင့် ဘယ်လို match လုပ်ပါသနည်း။
  • Pseudo-element တွေအကြောင်း ပြောပါ။ ဘယ်လိုနေရာမှာသုံးလဲ ပြောပါ။
  • Box model ကို နားလည်သလောက်ရှင်းပြပါ။ Browser တစ်ခုကို သင်လိုချင်သော box model တစ်ခုနှင့် render လုပ်အောင်မည်သို့ပြောရမည်နည်း။
  • * { box-sizing: border-box; } က ဘာလုပ်တာလည်း။ အဲ့ဒါရဲ့ အားသာချက်တွေက ဘာလဲ။
  • display property ရဲ့ value တွေထဲက မှတ်မိသမျှပြောပြပါ။
  • inline နှင့် inline-block ၏ ကွာခြားချက်များကို ပြောပါ။
  • relative, fixed, absolute နှင့် static position တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS ထဲမှ ‘C’ သည် Cascading လို့ရည်ရွယ်ပါသည်။ မည်သည့် style ကို ဦးစားပေးအရေးယူမည်ဟု browser က သတ်မှတ်ပါသနည်း (ဥပမာနှင့်တကွ ဖြေရန်)။ အဲ့ဒီ့ system ကို ဘယ်လို အသုံးချမည်နည်း။
  • ဘယ် CSS framework ကို စမ်းသုံးဖူးပါသလဲ။ production မှာရော ဘာကိုသုံးဖူးပါလဲ။
  • CSS flexbox သို့ Grid specs တို့ကို စမ်းသုံးဖူးပါသလား။
  • Responsive design နှင့် adaptive design ဘယ်လိုကွာပါသလဲ။
  • Retina graphic တွေသုံးဖူးပါသလား။ သုံးဖူးပါက ဘယ်တုန်းကပါလည်း၊ ဘယ်နည်းတွေသုံးခဲ့ပါသလဲ။
  • absolute positioning မသုံးပဲ translate() ကို ဘယ်လိုအချိန်မျိုးမှာ သုံးနိုင်ပါသလဲ။ အဲ့ဒါမဟုတ်ပြောင်းပြန် ဆိုရင်ရော။ ဘာကြောင့်လဲ။

JS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • Event delegation အကြောင်းရှင်းပြပါ။
  • this က Javascript မှာ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Prototypal inheritance က ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • AMD နှင့် CommonJS ကိုယှဉ်ပြပါ။
  • ဘာကြောင့် IIFE မှာ function foo(){}();; အလုပ်မလုပ်တာလည်း။
    • ဘာကိုပြောင်းလိုက်ရင် အလုပ်လုပ်ပါမည်နည်း။
  • Variable တစ်ခု၏ null, undefined or undeclared value များသည် ဘယ်လိုကွာခြားပါသလဲ။
    • အဲ့ဒီ့မတူတဲ့ value တွေကို ဘယ်လို check မလဲ။
  • Closure ဆိုတာဘာလဲ၊ ဘယ်လို၊ ဘာကြောင့်သုံးမှာလဲ။
  • Anonymous function တစ်ခုရဲ့ use case တွေဘာတွေရှိသလဲ။
  • Code တွေကို ဘယ်လို organize လုပ်မှာလဲ။ (module pattern, classical inheritance?)
  • Host object တွေနဲ့ native object တွေနဲ့ ဘယ်လိုကွာသလဲ။
  • function Person(){}, var person = Person(), နှင့် var person = new Person() ဆိုတဲ့ သုံးခုက ဘယ်လိုကွာပါသလဲ။
  • .call နှင့် .apply က ဘာကွာပါသလဲ။
  • Function.prototype.bind အကြောင်းရှင်းပါ။
  • document.write() ကို ဘယ်လိုအချိန်မှာ သုံးမှာလဲ။
  • Feature detection, feature inference နှင့် UA string တို့ရဲ့ ကွာခြားချက်ကို ပြောပါ။
  • Ajax ကို အသေးစိတ်ကျကျ ရှင်းပါ။
  • Ajax သုံးခြင်းရဲ့ အားသာချက်၊ အားနည်းချက်များကို ရှင်းပါ။
  • JSONP က ဘယ်လိုအလုပ်လုပ်သလဲပြောပါ။ (AJAX နှင့် ဘယ်လို မတူကြောင်းရှင်းပါ)
  • Javascript templating သုံးဖူးပါသလား၊​
    • ဘယ် Library တွေသုံးဖူးပါသလဲ။
  • “hoisting” ကိုရှင်းပြပါ။
  • Event bubbling အကြောင်းရှင်းပါ။
  • “attribute” နှင့် “property” ဘယ်လိုကွာပါသလဲ။
  • နဂိုကတည်းကရှိသည့် JavaScript object တွေကို extend လုပ်ခြင်းသည် ဘာ့ကြောင့် မလုပ်သင့်တာလဲ။
  • Document load event နဲ့ document DOMContentLoaded event က ဘယ်လိုကွာသလဲ။
  • == နှင့် === ကွာခြားပုံကိုပြောပါ။
  • Javascript ၏ same-origin policy အကြောင်းရှင်းပါ။
  • အောက်ပါကုဒ်ကို အလုပ်လုပ်အောင် လုပ်ပါ။
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression လို့ ဘာကြောင့်ခေါ်တာလဲ, “Ternary” ဆိုတာ ဘာကိုဆိုလိုချင်တာလဲ။
  • "use strict"; က ဘာလဲ။ အားနည်းချက် အားသာချက်များကို ရှင်းပါ။
  • 100 အထိ loop ပါတ်ကာ 3 နှင့် စားလုိ့ပြတ်က “fizz” လို့ထုတ်ပြီး , 5 နှင့်စားလို့ပြတ်က **“buzz”**လို့ထုတ်ပါ။ 3 နှင့် 5 နှစ်ခုလုံးနှင့်စားလို့ပြတ်က “fizzbuzz” လို့ထုတ်ပါ။
  • Website တစ်ခု၏ global scope ကို များသောအားြဖင့် မထိတာအကောင်းဆုံးြဖစ်ပါသလဲ။
  • load event ကို ဘာကြောင့်သုံးပါသလဲ။ အဲ့ဒီ့ event မှာ အားနည်းချက်များရှိပါသလား။ တခြားနည်းလမ်းတွေသိလား၊ ဘာလို့ အြခားနည်းလမ်းတွေသုံးမှာလဲ။
  • Single page app ဆိုတာဘာလဲ ရှင်းပြပေးပါ၊ ပြီးတော့ အဲ့ဒီ့ app တွေကို ဘယ်လို SEO-friendly ြဖစ်အောင်လုပ်မလဲ။
  • Promises သို့မဟုတ် သူတို့ရဲ့ polyfills တွေနဲ့ပါတ်သက်ြပီး အတွေ့အကြုံအကြောင်းပြောပြပါ။
  • Promise တွေကိုသုံးြခင်းနှင့် Callback တွေကိုသုံးခြင်းတို့၏ အားနည်းချက်၊ အားသာချက်များကို ရှင်းပါ။
  • Javascript ကို တခြား language တစ်ခုနှင့် develop လုပ်ပြီး Javascript သို့ compile လုပ်ခြင်းနှင့်ပါတ်သက်ပြီး အားနည်းချက် အားသာချက်များကို ပြောပြပါ။
  • ဘယ်လို tools တွေ၊ technique တွေကို သုံးပြီး javascript ကို debug လုပ်ပါသလဲ။
  • ဘယ်လို language construction ကိုသုံးပြီး object တစ်ခုရဲ့ properties တွေနှင့် array item တွေကို iterate လုပ်ပါသလဲ။
  • Mutable နှင့် immutable object တွေဘယ်လိုကွာခြားပါသလဲ။
    • Javascript မှာ ဘယ်လို object မျိုးသည် immutable object ဖြစ်ပါသလဲ။
    • Immutability ရဲ့ အားနည်းချက်၊ အားသာချက်များက ဘာတွေလဲ။
    • ကိုယ့်ရဲ့ code ထဲမှာ immutability ကို ဘယ်လို ရအောင်လုပ်နိုင်သလဲ။
  • Synchronous နဲ့ asynchronous function တွေရဲ့ ကွာခြားချက်ကိုပြောပါ။
  • Event loop ဆိုတာဘာလဲ။
    • Call stack နဲ့ task queue က ဘာကွာလဲ။
  • function foo() {} နှင့် var foo = function() {} မှာ foo ရဲ့ကွာခြားချက်ကိုပြောပါ။

Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ကိုယ်ရေးတဲ့ code ကို test လုပ်ခြင်းအားဖြင့် ဘယ်လိုအားနည်းချက်၊ အားသာချက်များရှိပါသလဲ။
  • ကိုယ်ရေးတဲ့ code ရဲ့ functionality ကို test လုပ်ဖို့အတွက် ဘယ်လို tool တွေ သုံးမှာလဲ။
  • Unit test နဲ့ function/integration test တို့ ဘယ်လိုကွာခြားပါသလဲ။
  • Code style linting tool ရဲ့ ရည်ရွယ်ချက်ကို ပြောပါ။

Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ဘယ်လို tools တွေကို သုံးပြီး performance bug တွေကို ရှာရမှာလဲ။
  • Website တစ်ခုရဲ့ scrolling နဲ့ပါတ်သက်ပြီး performance ဘယ်လိုကောင်းအောင်လုပ်ရမှာလဲ
  • Layout, painting နှင့် compositing ရဲ့ကွာခြားချက်ကိုပြောပါ။

Network နှင့်ပါတ်သက်သော မေးခွန်းများ

  • သာမန်ရိုးကျအားဖြင့်၊ ဘာကြောင့် website တစ်ခု၏ assets များကို domain တစ်ခုထက်ပိုပြီး ချပေးခြင်းက ဘာ့ကြောင့်ပိုကောင်းပါသလဲ။
  • Website တစ်ခု၏ url ကို ရိုက်ထည့်ပြီး load လုပ်ပြီးချိန်အထိ ဘာတွေဖြစ်သွားတယ်ဆိုတာကို ရှင်းပြပါ။
  • Long-polling, websocket နှင့် server-sent events တို့၏ ကွာခြားချက်များကိုရှင်းပါ။
  • အောက်ပါ request နှင့် response header များကို ရှင်းပါ။
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP Methods တွေကဘာတွေလဲ။ သူတို့ရဲ့ ကွာခြားချက်များကိုရှင်းပါ။

Coding နှင့်ပါတ်သက်သော မေးခွန်းများ

Question: foo ၏ value ကိုပြောပါ။

var foo = 10 + '20';

Question: အောက်ပါ code ကို ဘယ်လိုအလုပ်လုပ်အောင်လုပ်မည်နည်း။

add(2, 5); // 7
add(2)(5); // 7

Question: အောက်ပါ statement မှ ဘာကို return ပြန်မည်နည်း။

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo ၏ value ကို ပြောပါ။

( window.foo || ( window.foo = "bar" ) );

Question: အောက်ပါ alert နှစ်ခုက ဘာပြမည်နည်း။

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: foo.length ၏ value ကိုပြောပါ။

var foo = [];
foo.push(1);
foo.push(2);

Question: foo.x ၏ value ကိုပြောပါ။?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: အောက်ပါ ကုဒ်က ဘာ print ထုတ်မည်နည်း။?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

အပျော်မေးခွန်းများ

  • သင်လတ်တလောလုပ်ဖူးတဲ့ project များထဲက cool ဖြစ်တဲ့ project တစ်ခုအကြောင်းပြောပါ။
  • သင်သုံးတဲ့ developer tools တွေထဲက ဘယ်လိုအရာမျိုးတွေကို ကြိုက်ပါသလဲ။
  • Front-end community ထဲမှာ ဘယ်သူတွေကို စံနမူနာယူပါသလဲ။
  • အပျော်တမ်း၊ အားလပ်ချိန်မှာ လုပ်နေတဲ့ project တွေရှိပါသလား။ ဘယ်လိုမျိုးတွေလဲ။
  • Internet Explorer ရဲ့ အကြိုက်ဆုံး feature တစ်ခုပြောပါ။
  • ကော်ဖီကို ဘယ်လိုသောက်ပါသလဲ။

Contributors:

This document started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

It has since received contributions from over 100 developers.

Burmese translation provided by @mmhan.

\ No newline at end of file diff --git a/_site/translations/chinese-traditional/index.html b/_site/translations/chinese-traditional/index.html new file mode 100644 index 000000000..373bc547b --- /dev/null +++ b/_site/translations/chinese-traditional/index.html @@ -0,0 +1 @@ +前端工程師面試問題集 ★ Front-end Job Interview Questions

前端工程師面試問題集

前端工程師面試問題集

譯注:此翻譯版,主要給不能流利的讀英文的人看,相關專有名詞還是保留原文,翻譯不好地方請協助 Pull request。

此文件包含了一些前端開發的面試問題,來審查一個有潛力的面試者。這並不是建議你對同一個面試者問上所有的問 (那會花費好幾小時)。從列表中挑幾個題目,應該就夠幫助你審查面試者是否擁有你需要的技能。

注意: 請記住一點,很多問題都是隨情況而變化,能引發很多有趣的討論,比直接的標準答案更能讓你瞭解此人的能力。

目錄

  1. 常見問題
  2. HTML 問題
  3. CSS 問題
  4. JS 問題
  5. 測試問題
  6. 效能問題
  7. 網路問題
  8. 程式碼問題
  9. 有趣問題

參與貢獻

  1. 貢獻作者群
  2. 如何貢獻
  3. 版權宣告

常見問題:

  • 你昨天或這週學習了什麼?
  • 寫程式的哪部份最讓你感到很興奮或是有興趣?
  • 最近有無遇過不容易的技術性問題,又如何解決?
  • 當你開發Web應用程式或網站時,針對UI、安全性、效能、SEO、維護性,以及技術,你考量的點是什麼?
  • 說說你喜好的開發環境 (作業系統, 編輯器或 IDE, 瀏覽器, 開發工具 … 之類)。
  • 你最熟悉哪一套版本控制系統?
  • 你可以描述你在開發一個網站時的工作流程嗎?
  • 如果有 5 種不同的樣式表 (stylesheets),該如何整併到網站?
  • 你可以描述漸進增強 (progressive enhancement) 和優美退化 (graceful degradation) 間的差異嗎?
  • 你怎麼優化一個網站的靜態檔案 (assets) 和資源 (resources)?
  • 說出三種能加快網頁讀取速度的方法 (感覺上的速度或是真正的讀取時間)。
  • 如果你加入了一個專案,但是他們的程式碼用 tabs,但是你習慣用spaces (空白鍵),你會怎麼做?
  • 寫一個簡易的投影片頁面。
  • 你用什麼工具來測試你的程式碼效能?
  • 如果今年你能精通一項技術,那會是什麼?
  • 描述標準和製定標準機構的重要性?
  • 什麼是 Flash of Unstyled Content? 你怎麼避免 FOUC?
  • 解釋什麼是 ARIA 與 screenreaders,它們是怎麼樣讓網站使用更無障礙?
  • 解釋 CSS 動畫與 JavaScript 動畫之間的憂與劣。
  • CORS 是什麼,它解決了什麼問題?

HTML 問題:

  • doctype 做什麼用的?
  • standards mode 和 quirks mode 有什麼不同?
  • 使用 XHTML 有什麼限制??
  • 如果網頁使用 application/xhtml+xml 會有問題嗎?
  • 你怎麼做一個需要支持多國語言的網頁?
  • 當開發和設計一個多國語言網站時,有什麼需要小心的?
  • data- 屬性的好處在哪?
  • 考慮 HTML5 作為一個開放式的網站平台,組成 HTML5 的技術有哪些?
  • 請描述 cookies, sessionStoragelocalStorage 的不同?
  • 描述下列之間的不同 <script>, <script async> & <script defer>
  • 為什麼把 CSS <link> 放在 <head></head> 之間,與將 JS <script> 放在 </body> 之前是個較好的主意?有什麼例外情形嗎?
  • 什麼是漸進式呈現?
  • 有用過 HTML 樣板語言(template languages)嗎?

CSS 問題:

  • CSS 的 class 和 ID 兩者有何差異?
  • 描述 “resetting” 和 “normalizing” 的差異性?你會選擇哪一種,為什麼選擇它?
  • 描述 Floats 並解釋如何運作。
  • 描述 z-index 並且描述堆疊內容 (stacking context) 如何形成。
  • 解釋 BFC(Block Formatting Context) 是什麼、如何運作的。
  • 有哪些不同的 clearing 技術?哪個適用在哪種內容上?
  • 描述 CSS sprites, 你如何實作在網頁或網站上?
  • 你最喜愛的圖片取代技術是什麼?你什麼時候會用到?
  • 針對各瀏覽器制定的樣式表(browser-specific styling),你的做法是?
  • 你怎麼讓你的網頁支援有功能限制的瀏覽器?
    • 你會使用什麼樣的技術/流程 ?
  • 有什麼方法來隱藏網頁的內容? (只顯示在 screen readers)?
  • 你使用過 grid system 嗎?如果有的話?你較推薦哪個?
  • 你曾經實作 media queries 或是 mobile specific (手機規格的) layouts/CSS?
  • 你熟悉任何有關 SVG 嗎?
  • 你如何優化你的網頁以利於列印?
  • 在寫高效的 CSS 時,有什麼要注意的?
  • 使用 CSS preprocessors 的優點和缺點是什麼? (Sass, Compass, Stylus, LESS)
    • 描述你使用過的喜歡和不喜歡的 CSS preprocessors。
  • 你如何使用非標準字體來實作網頁設計?
  • 解釋瀏覽器如何按照 CSS selector 找到對應的 element。
  • 解釋你所認知的 box model,以及你如何在 CSS 告訴瀏覽器使用不同 box model 來呈現圖層?
  • 請解釋 * { box-sizing: border-box; }?並且說明使用它的好處?
  • 請列出您記憶中 display 屬性的全部值。
  • 請說明 inline 和 inline-block 的差異性?
  • 請說明 relative、fixed、absolute 和 static 元件差異性?
  • ‘C’ 在 CSS 中代表層疊。樣式的優先級(舉出範例)?如何利用這項功能?
  • 你目前有使用哪一套 CSS Framework 在開發環境或產品線上?
    • 如果有,請問是哪一套,並且描述如果改善或提昇 CSS Framework?
  • 請問你有使用過 CSS Flexbox 或 Grid specs?
  • 如何區分 responsive design 與 adaptive design 有何不同?
  • 你曾經使用過 retina graphics?如果有,是在什麼時機以及用了什麼技術?
  • 為什麼會用 translate() 代替 aboslute positioning,或者用 absolute positioning 代替 translate?為什麼要這樣?

JS 規格問題集:

  • 描述 event delegation。
  • 描述 this 如何在 JavaScript 中運作。
  • 描述 prototypal inheritance 如何運作?
  • 你如何測試你的 JavaScript?
  • AMD vs. CommonJS?
  • 解釋下列程式碼為什麼不是IIFE: function foo(){ }();. (Immediately Invoked Function Expression,立即函式)
    • 需要修改那裡使它成為IIFE?
  • nullundefinedundeclared變數之間有什麼差異?
    • 你如何檢查?
  • 什麼是 closure, 如何/為什麼使用?
  • anonymous functions 典型的使用時機?
  • 你如何架構你的程式碼? (module pattern, classical inheritance?)
  • host objects 和 native objects 有何不同?
  • function Person(){}var person = Person()var person = new Person()之間有何不同?
  • .call.apply有何不同?
  • 描述 Function.prototype.bind?
  • 你什麼時候優化你的程式?
  • 你什麼情況會使用 document.write()
    • 多數的廣告產生仍然使用 document.write() 雖然這樣用會令人皺眉
  • feature detection, feature inference, 和使用 UA string 有什麼不同?
  • 盡可能的詳述描述 AJAX。
  • 描述 JSONP 如何運作 (且為何它不是真正的 AJAX)。
  • 你是用過 JavaScript templating (樣板) ?
    • 如果有的話,你有用過哪些 libraries? (Mustache.js, Handlebars … 等)
  • 描述 “hoisting”
  • 描述 event bubbling.
  • “attribute” 和 “property” 的不同?
  • 為什麼擴展 JavaScript 內建的 objects 不是個好方法?
  • document load event 和 document ready event 有什麼不同?
  • ===== 有什麼不同?
  • 描述 JavaScript 的 same-origin policy (同源策略)
  • 實作如下程式:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression 怎麼來的, “Ternary” 的意思是什麼?
  • 什麼是 "use strict";? 使用他的優點和缺點是什麼?
  • 建個數到 100 的迴圈,當數字是 3 的倍數時輸出 “fizz”,當數字是 5 的倍數時輸出 "buzz",當數字同時是 35 的倍數時輸出 “fizzbuzz”
  • 為什麼保持網站的全域(global scope)原樣是一個好做法?
  • 為什麼要用 load 事件?有什麼缺點嗎?有其他選擇嗎?又為何選擇它?
  • 解釋什麼是 single page app,並怎麼讓它對 SEO 更友善。
  • 你對 Promises 的經驗?有用過相關的補強(ployfills)嗎?
  • Promises 之於 callbacks 的優劣?
  • JavaScript 轉譯器(transpiler)的優缺點?
  • 你用什麼工具或技巧來做 JavaScript debug?
  • 你都用什麼對 object properties 與 array 進行迭代?
  • 解釋 mutable 與 immutable objects 之間的不同。
    • 舉個 immutable 在 JavaScript 中例子?
    • immutability 的憂劣?
    • 如何達成 immutability?
  • 解釋同步(synchronous)與非同步(asynchronous)函式之間的差異。
  • Event loop 是什麼?
    • call stack 與 task queue 之間的不同?

測試問題集:

  • 寫測試有什麼好壞?
  • 都用什麼工具測試代碼是否能運作?
  • Unit test 與 functional/integration 間的不同?
  • 監控代碼風格 linting 工具的用途是?

效能問題集:

  • 你都用什麼工具尋找效能上的臭蟲?
  • 有哪些方法可改善網站在 scrolling 效能?
  • 解釋 layout, painting 與 compositing 的不同。(瀏覽器在 render 上的效能問題)

網路問題集:

  • 傳統上為什麼用多個域名來放置網站資源會比較好?
  • 請詳細描述當您在網址列打入網址開始到最後網頁呈現在螢幕前的整個流程。
  • Long-Polling, Websockets, SSE (Server-Sent Event) 之間有什麼差異?
  • 請描述下列 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • DNT
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 列出所有你知道的 HTTP 操作,並詳加解釋。

程式碼問題集:

問題: foo 的值是什麼?

var foo = 10 + '20';

問題:實作符合下面的函式

add(2, 5); // 7
add(2)(5); // 7

問題: 下面的 statement(陳述式) 會回傳什麼?

"i'm a lasagna hog".split("").reverse().join("");

問題: window.foo 的值是什麼?

( window.foo || ( window.foo = "bar" ) );

問題: 下面的兩個 alerts 的結果會是什麼?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

問題: 下面 foo.length 的值是什麼?

var foo = [];
foo.push(1);
foo.push(2);

問題:下面這段會印出什麼?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

有趣問題:

  • 你最近寫過最酷的專案是?
  • 你使用的開發工具中,你最喜歡的部分是什麼?
  • 你有任何的 pet projects (個人開發的小專案)? 什麼樣的?
  • 你最喜歡 IE 瀏覽器的什麼特點?
  • 喜歡咖啡嗎?

貢獻作者群:

此文件是由 @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym 於 2009 年共同發起。

目前已經超過 100 開發者 參與此專案.

\ No newline at end of file diff --git a/_site/translations/chinese/index.html b/_site/translations/chinese/index.html new file mode 100644 index 000000000..d24c61ce6 --- /dev/null +++ b/_site/translations/chinese/index.html @@ -0,0 +1 @@ +前端工作面试问题 ★ Front-end Job Interview Questions

前端工作面试问题

前端工作面试问题

本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能。

备注: 这些问题中很多都是开放性的,可以引发有趣的讨论。这比直接的答案更能体现此人的能力。

目录

  1. 常见问题
  2. HTML 相关问题
  3. CSS 相关问题
  4. JS 相关问题
  5. 测试相关问题
  6. 效能相关问题
  7. 网络相关问题
  8. 代码相关问题
  9. 趣味问题

参与协作

  1. 贡献者
  2. 如何参与贡献
  3. 许可协议

常见问题:

  • 你在昨天/本周学到了什么?
  • 编写代码的哪些方面能够使你兴奋或感兴趣?
  • 你最近遇到过什么技术挑战?你是如何解决的?
  • 在制作一个网页应用或网站的过程中,你是如何考虑其 UI、安全性、高性能、SEO、可维护性以及技术因素的?
  • 请谈谈你喜欢的开发环境。
  • 你最熟悉哪一套版本控制系统?
  • 你能描述当你制作一个网页的工作流程吗?
  • 假若你有 5 个不同的样式文件 (stylesheets), 整合进网站的最好方式是?
  • 你能描述渐进增强 (progressive enhancement) 和优雅降级 (graceful degradation) 之间的不同吗?
  • 你如何对网站的文件和资源进行优化?
  • 浏览器同一时间可以从一个域名下载多少资源?
    • 有什么例外吗?
  • 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
  • 如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做?
  • 请写一个简单的幻灯效果页面。
  • 如果今年你打算熟练掌握一项新技术,那会是什么?
  • 请谈谈你对网页标准和标准制定机构重要性的理解。
  • 什么是 FOUC (无样式内容闪烁)?你如何来避免 FOUC?
  • 请解释什么是 ARIA 和屏幕阅读器 (screenreaders),以及如何使网站实现无障碍访问 (accessible)。
  • 请解释 CSS 动画和 JavaScript 动画的优缺点。
  • 什么是跨域资源共享 (CORS)?它用于解决什么问题?

HTML 相关问题:

  • doctype(文档类型) 的作用是什么?
  • 浏览器标准模式 (standards mode) 、几乎标准模式(almost standards mode)和怪异模式 (quirks mode) 之间的区别是什么?
  • HTML 和 XHTML 有什么区别?
  • 如果页面使用 ‘application/xhtml+xml’ 会有什么问题吗?
  • 如果网页内容需要支持多语言,你会怎么做?
  • 在设计和开发多语言网站时,有哪些问题你必须要考虑?
  • 使用 data- 属性的好处是什么?
  • 如果把 HTML5 看作做一个开放平台,那它的构建模块有哪些?
  • 请描述 cookiessessionStoragelocalStorage 的区别。
  • 请解释 <script><script async><script defer> 的区别。
  • 为什么通常推荐将 CSS <link> 放置在 <head></head> 之间,而将 JS <script> 放置在 </body> 之前?你知道有哪些例外吗?
  • 什么是渐进式渲染 (progressive rendering)?
  • 你用过哪些不同的 HTML 模板语言?

CSS 相关问题:

  • CSS 中类 (classes) 和 ID 的区别。
  • 请问 “resetting” 和 “normalizing” CSS 之间的区别?你会如何选择,为什么?
  • 请解释浮动 (Floats) 及其工作原理。
  • 描述z-index和叠加上下文是如何形成的。
  • 请描述 BFC(Block Formatting Context) 及其如何工作。
  • 列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。
  • 请解释 CSS sprites,以及你要如何在页面或网站中实现它。
  • 你最喜欢的图片替换方法是什么,你如何选择使用。
  • 你会如何解决特定浏览器的样式问题?
  • 如何为有功能限制的浏览器提供网页?
    • 你会使用哪些技术和处理方法?
  • 有哪些的隐藏内容的方法 (如果同时还要保证屏幕阅读器可用呢)?
  • 你用过栅格系统 (grid system) 吗?如果使用过,你最喜欢哪种?
  • 你用过媒体查询,或针对移动端的布局/CSS 吗?
  • 你熟悉 SVG 样式的书写吗?
  • 如何优化网页的打印样式?
  • 在书写高效 CSS 时会有哪些问题需要考虑?
  • 使用 CSS 预处理器的优缺点有哪些?
    • 请描述你曾经使用过的 CSS 预处理器的优缺点。
  • 如果设计中使用了非标准的字体,你该如何去实现?
  • 请解释浏览器是如何判断元素是否匹配某个 CSS 选择器?
  • 请描述伪元素 (pseudo-elements) 及其用途。
  • 请解释你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
  • 请解释 * { box-sizing: border-box; } 的作用, 并且说明使用它有什么好处?
  • 请罗列出你所知道的 display 属性的全部值
  • 请解释 inline 和 inline-block 的区别?
  • 请解释 relative、fixed、absolute 和 static 元素的区别
  • CSS 中字母 ‘C’ 的意思是叠层 (Cascading)。请问在确定样式的过程中优先级是如何决定的 (请举例)?如何有效使用此系统?
  • 你在开发或生产环境中使用过哪些 CSS 框架?你觉得应该如何改善他们?
  • 请问你有尝试过 CSS Flexbox 或者 Grid 标准规格吗?
  • 为什么响应式设计 (responsive design) 和自适应设计 (adaptive design) 不同?
  • 你有兼容 retina 屏幕的经历吗?如果有,在什么地方使用了何种技术?
  • 请问为何要使用 translate() 而非 absolute positioning,或反之的理由?为什么?

JS 相关问题:

  • 请解释事件代理 (event delegation)。
  • 请解释 JavaScript 中 this 是如何工作的。
  • 请解释原型继承 (prototypal inheritance) 的原理。
  • 你怎么看 AMD vs. CommonJS?
  • 请解释为什么接下来这段代码不是 IIFE (立即调用的函数表达式):function foo(){ }();.
    • 要做哪些改动使它变成 IIFE?
  • 描述以下变量的区别:nullundefinedundeclared
    • 该如何检测它们?
  • 什么是闭包 (closure),如何使用它,为什么要使用它?
  • 请举出一个匿名函数的典型用例?
  • 你是如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
  • 请指出 JavaScript 宿主对象 (host objects) 和原生对象 (native objects) 的区别?
  • 请指出以下代码的区别:function Person(){}var person = Person()var person = new Person()
  • .call.apply 的区别是什么?
  • 请解释 Function.prototype.bind
  • 在什么时候你会使用 document.write()
  • 请指出浏览器特性检测,特性推断和浏览器 UA 字符串嗅探的区别?
  • 请尽可能详尽的解释 Ajax 的工作原理。
  • 使用 Ajax 都有哪些优劣?
  • 请解释 JSONP 的工作原理,以及它为什么不是真正的 Ajax。
  • 你使用过 JavaScript 模板系统吗?
    • 如有使用过,请谈谈你都使用过哪些库?
  • 请解释变量声明提升 (hoisting)。
  • 请描述事件冒泡机制 (event bubbling)。
  • “attribute” 和 “property” 的区别是什么?
  • 为什么扩展 JavaScript 内置对象不是好的做法?
  • 请指出 document load 和 document DOMContentLoaded 两个事件的区别。
  • ===== 有什么不同?
  • 请解释 JavaScript 的同源策略 (same-origin policy)。
  • 如何实现下列代码:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • 什么是三元表达式 (Ternary expression)?“三元 (Ternary)” 表示什么意思?
  • 什么是 "use strict"; ? 使用它的好处和坏处分别是什么?
  • 请实现一个遍历至 100 的 for loop 循环,在能被 3 整除时输出 “fizz”,在能被 5 整除时输出 “buzz”,在能同时被 35 整除时输出 “fizzbuzz”
  • 为何通常会认为保留网站现有的全局作用域 (global scope) 不去改变它,是较好的选择?
  • 为何你会使用 load 之类的事件 (event)?此事件有缺点吗?你是否知道其他替代品,以及为何使用它们?
  • 请解释什么是单页应用 (single page app), 以及如何使其对搜索引擎友好 (SEO-friendly)。
  • 你使用过 Promises 及其 polyfills 吗? 请写出 Promise 的基本用法(ES6)。
  • 使用 Promises 而非回调 (callbacks) 优缺点是什么?
  • 使用一种可以编译成 JavaScript 的语言来写 JavaScript 代码有哪些优缺点?
  • 你使用哪些工具和技术来调试 JavaScript 代码?
  • 你会使用怎样的语言结构来遍历对象属性 (object properties) 和数组内容?
  • 请解释可变 (mutable) 和不变 (immutable) 对象的区别。
    • 请举出 JavaScript 中一个不变性对象 (immutable object) 的例子?
    • 不变性 (immutability) 有哪些优缺点?
    • 如何用你自己的代码来实现不变性 (immutability)?
  • 请解释同步 (synchronous) 和异步 (asynchronous) 函数的区别。
  • 什么是事件循环 (event loop)?
    • 请问调用栈 (call stack) 和任务队列 (task queue) 的区别是什么?
  • 解释 function foo() {}var foo = function() {} 用法的区别

测试相关问题:

  • 对代码进行测试的有什么优缺点?
  • 你会用什么工具测试你的代码功能?
  • 单元测试与功能/集成测试的区别是什么?
  • 代码风格 linting 工具的作用是什么?

效能相关问题:

  • 你会用什么工具来查找代码中的性能问题?
  • 你会用什么方式来增强网站的页面滚动效能?
  • 请解释 layout、painting 和 compositing 的区别。

网络相关问题:

  • 为什么传统上利用多个域名来提供网站资源会更有效?
  • 请尽可能完整得描述从输入 URL 到整个网页加载完毕及显示在屏幕上的整个流程。
  • Long-Polling、Websockets 和 Server-Sent Event 之间有什么区别?
  • 请描述以下 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 什么是 HTTP method?请罗列出你所知道的所有 HTTP method,并给出解释。
  • 请解释 HTTP status 301 与 302 的区别?

代码相关的问题:

问题:foo的值是什么?

var foo = 10 + '20';

问题:如何实现以下函数?

add(2, 5); // 7
add(2)(5); // 7

问题:下面的语句的返回值是什么?

"i'm a lasagna hog".split("").reverse().join("");

问题:window.foo的值是什么?

( window.foo || ( window.foo = "bar" ) );

问题:下面两个 alert 的结果是什么?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

问题:foo.length的值是什么?

var foo = [];
foo.push(1);
foo.push(2);

问题:foo.x的值是什么?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

问题:下面代码的输出是什么?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

趣味问题:

  • 你最近写过什么的很酷的项目吗?
  • 在你使用的开发工具中,最喜欢哪些方面?
  • 谁使你踏足了前端开发领域?
  • 你有什么业余项目吗?是哪种类型的?
  • 你最爱的 IE 特性是什么?
  • 你对咖啡有没有什么喜好?

贡献者:

本文档始于 2009 年,是以下作者的合作成果:@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym

时至今日,文档已经融入超过 100 位开发者的贡献。

\ No newline at end of file diff --git a/_site/translations/croatian/index.html b/_site/translations/croatian/index.html new file mode 100644 index 000000000..324fc7c7e --- /dev/null +++ b/_site/translations/croatian/index.html @@ -0,0 +1 @@ +Intervju za posao Front-end Developera ★ Front-end Job Interview Questions

Intervju za posao Front-end Developera

Intervju za posao Front-end Developera

@version 2.0.0

Ovaj repozitorij sadrži brojna pitanja za intervju iz područja front-end-a koja možete koristiti u procjeni potencijalnih kandidata. Nikako se ne preporuča da upotrijebite svako ovdje navedeno pitanje za jednog kandidata (to bi trajalo satima). Odabir nekoliko ciljanih pitanja s ove liste bi Vam trebao pomoći u odabiru.

Rebecca Murphey Baseline For Front-End Developers je prilično dobro štivo za pročitati prije samog razgovora.

Napomena: Imajte na umu da su mnoga ovdje navedena pitanja otvorenog tipa i mogla bi voditi u zanimljive rasprave koje govore više o sposobnostima osobe nego pitanja sa direktnim odgovorima.

Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je u originalu pokrenuo Paul Irish (@paul_irish) i kojoj su pridonijele sljedeće osobe:

Općenita pitanja:

  • Opišite Vašu preferiranu razvojnu okolinu. (OS, Editor, Broseri, Alati itd.)
  • Možete li opisati Vaš postupak izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektiranje mogućnosti browsera
  • Objasnite što je to “Semantički HTML”.
  • Kako biste optimirali infrastrukturu i resurse web stranice?
    • Traženje više rješenja poput:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korištenje CDN-a
      • Međuspremanje (Caching)
      • itd.
  • Zašto je sadržaj bolje poslužiti sa više domena?
    • Koliko resursa preglednik skida sa jedne domene odjednom?
  • Navedite tri načina za smanjivanje vremena učitavanja stranice. (primijećeno ili stvarno vrijeme učitavanje)
  • Ako bi došli na projekt gdje se koriste tabovi a Vi koristite razmake, što biste učinili?
    • Npr. preporučanje korištenja EditorConfig-a (http://editorconfig.org)
    • Konformacija postojećoj praksi (zadržavanje konzistentnosti)
    • korištenje :retab! naredbe
  • Napravite jednostavnu stranicu za držanje prezentacije
    • Bonus bodovi za nekorištenje JavaScript-a.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kad bi mogli odabrati jednu tehologiju koju ćete naučiti ove godine, što bi to bila?
  • Objasnite važnost standarda i tijela za standardizaciju
  • Što je FOUC? Kako biste izbjegli FOUC?

Pitanja za HTML:

  • Što radi doctype?
  • Koja je razlika između standardnog i dosjetljivog (quirks) modusa?
  • Koja su ograničenja kod posluživanja XHTML stranica?
    • Postoje li problemi kod posluživanja stranica sa application/xhtml+xml?
  • Kako biste poslužili stranicu sa sadržajem na više jezika?
    • Na što morate paziti kod dizajniranja ili razvoja za višejezičnu stranicu?
  • Za što se koriste data- atributi?
  • Razmotrite HTML5 kao platformu otvorenog web-a. Koji su gradivni elementi HTML5-ice?
  • Pojasnite razliku između kolačića, podataka sjednice (sessionStorage) i lokalne pohrane.

Pitanja za JavaScript:

  • Objasnite delegaciju događaja.
  • Objasnite kako se u Javascriptu koristi this
  • Pojasnite prototipno nasljeđivanje
  • Kako testirate JavaScript?
  • AMD u usporedbi sa CommonJS-om?
  • Što je to hash tabela?
  • Što su undefined i undeclared varijable?
  • Što je closure, kako i zašto se koristi?
    • Vaš omiljeni način njihovog kreiranja? argyle (samo kod IIFE-a)
  • Koja je uobičajena primjena za anonimnu funkciju?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za spomen čistih imenskih prostora (namespacing)
    • Što učiniti ako moduli nemaju imenske prostore
  • Kako organizirate kod? (module pattern, klasično nasljeđivanje?)
  • Koja je razlika između host i native objekta?
  • Razlika između:
function Person(){} var person = Person() var person = new Person()
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kad optimirate Vaš kod?
  • Možete li objasniti nasljeđivanje u JavaScriptu?
  • Kada biste koristili document.write()?
    • Većina generiranih oglasa još uvijek koristi document.write() premda se to zamjera.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korištenja UA string-a
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i zašto nije pravi AJAX)
  • Da li ste ikad koristili JavaScript predloške (templating)?
    • Ako da, koje ste biblioteke koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi došli do parametra iz URL adrese prozora preglednika.
  • Objasnite politiku jednog izvorišta gledano sa stajališta JavaScript-e.
  • Opišite načine nasljeđivanja u JavaScript-u.
  • Popravite:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opišite strategiju za memoizaciju (izbjegavanje ponovljenog računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Što je arnost funkcije?
  • Što je "use strict";? Koje su mane, koje prednosti?

JavaScript primjeri koda:

~~3.14

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: 3

"Ovo je proba".split("").reverse().join("");

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: "aborp ej ovO"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koju vrijednost ima window.foo?
Odgovor: "bar"
Samo ako window.foo nije istinit u suprotnom će zadržati vrijednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Kako će izgledati obavijesti iz gornjeg primjera?
Odgovor: “Hello World” nakon toga ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: undefined

Pitanja za jQuery:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korištenja jQuery-a poznajete?
  • Što radi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u imenski prostor (namespace)?
  • Navedite četiri vrijednosti koje možete poslati jQuery metodi.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Što je red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor:
$(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Pitanja za CSS:

  • Objasnite što je to “reset” CSS i zašto je koristan.
  • Opišite što su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i koji su konteksti prikladni za njihovu primjenu?
  • Pojasnite CSS sprite-ove i kako biste ih izveli na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamjene slike i kada ih koristite?
  • CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako poslužujete sadržaj za preglednike (browser-e) slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (ostaju dostupni samo screen reader-ima)?
  • Da li ste ikad koristili grid system, ako jeste koji preferirate?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifičan za mobile?
  • Imate li iskustva u stiliziranju sa SVG-om?
  • Kako optimirate stranice za ispis?
  • Koje su “kvake” za pisanje učinkovitog CSS-a?
  • Koje su prednosti/nedostatci korištenja CSS preprocessore? (SASS, Compass, Stylus, LESS)
    • Ako da, opišite što vam se (ne)sviđa kod CSS preprocessora koje ste koristili.
  • Kako bi izradili preliminarni web dizajn koji ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.

Opcionalna zabavna pitanja:

  • Koja je najbolja stvar koju ste isprogramirali, na što ste najviše ponosni?
  • Koji su Vam omiljena svojstva razvojnih alata koje koristite?
  • Imate li kakve omiljene vlastite projekte? Koje?
  • Koja Vam je omiljena mogućnost Internet Explorer-a?
\ No newline at end of file diff --git a/_site/translations/czech/index.html b/_site/translations/czech/index.html new file mode 100644 index 000000000..95acb0149 --- /dev/null +++ b/_site/translations/czech/index.html @@ -0,0 +1 @@ +Front-end vývojář – otázky k pohovoru ★ Front-end Job Interview Questions

Front-end vývojář – otázky k pohovoru

Front-end vývojář – otázky k pohovoru

Tento repozitář obsahuje řadu otázek, které můžete směle položit u pohovoru kandidátovi na pozici front-end vývojář a ověřit si tak jeho znalosti v tomto oboru. Není zamýšleno položit všechny tyto otázky (jejich korektní zodpovězení by trvalo hodiny), leč pouze určitou část vyhovující vašim potřebám.

Za přečtení stojí také:

Poznámka: Mějte na paměti, že tyto otázky mají vést spíše k diskusi na dané téma a prozradit tak něco více o schopnostech daného vývojáře než aby byly zodpovězeny jedním slovem nebo větou.

Obsah

  1. Původní přispěvovatelé
  2. Obecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky

Původní přispěvovatelé:

Většina otázek byla převzata z oksoclap původně vytvořeného Paulem Irishem (@paul_irish) a následně doplněna těmito osobami:

[⬆]

Obecné otázky:

  • Co jste se naučili včera/minulý týden nového?
  • Co Vás vzrušuje nebo zajímá na kódování?
  • Povězte něco o Vašem oblíbeném vývojovém prostředí (operační systém, editor, prohlížeč, nástroje, atd.).
  • Popište jak postupujete při vytváření nové webové stránky.
  • Dokážete vysvětlit rozdíl mezi pozvolným degradováním (graceful degradation) a postupným vylepšováním(progressive enhancement)?
    • Body navíc za popsání detekce pokročilé funkcionality
  • Vysvětlete pojem “sémantické HTML”.
  • Jak byste optimalizovali zdroje (obrázky, JS, CSS, atd.) webové stránky?
    • K dispozici je celá řada optimalizací např.:
      • Spojování souborů
      • Minifikace souborů
      • CDN hostování
      • Caching
      • atd.
  • Proč je lepší posílat zdroje webové stránky z více domén?
    • Kolik souborů může z dané domény stahovat prohlížeš najednou?
  • Vyjmenujte tři způsoby jak snížit dobu nahrávání webové stránky (vnímanou nebo skutečnou dobu nahrávání)
  • Pokud naskočíte do projektu, kde se místo odsazování tabulátory používají mezery, co uděláte?
    • Navrhnutí, že projekt by mohl využívat něco jako EditorConfig (http://editorconfig.org)
    • Přízpůsobení se konvenci (ale zústat konzistentní).
    • issue :retab! command
  • Napište jednoduchou stránku se slideshow.
    • Body navíc pokud nepoužívá JS.
  • Jaké nástroje používáte pro testování rychlosti Vašeho kódu?
    • Profiler, JSPerf, Dromaeo
  • Pokud byste se chtěl/chtěla letos naučit jednu novou technologii, která by to byla?
  • Vysvětlete důležitost standardů a standardizačních orgánů
  • Co to je FOUC? Jak je možné se vyhnout FOUC?

[⬆]

HTML otázky:

  • Co dělá doctype ?
  • Jaký je rozdíl mezi standardním módem a quirks módem?
  • Jaká jsou omezení při poskytování XHTML stránek?
    • Existuje nějaký problém při poskytování stránek jako application/xhtml+xml?
  • Jak poskytujete stránku s vícejazyčným obsahem?
    • Na co všechno si musíte dát pozor při vytváření vícejazyčné stránky?
  • K čemu je dobrý atribut data-?
  • Uvažujte o HTML5 jako o otevření platormě. Jaké jsou základní stavební kameny HTML5?
  • Popište rozdíl mezi cookies, sessionStorage a localStorage.

[⬆]

CSS otázky:

  • Popište co děla a k čemu je dobrý “reset” CSS soubor.
  • Popište obtékání (floats) a jak funguje.
  • Popiště různé techniky pro zastavení obtékání (clear fixing) a řekněte, které se hodí v kterém kontextu.
  • Vysvětlete, co to jsou CSS sprites a jak byste je implementovali.
  • Jaká je Vaše oblíbená technika pro nahrazování obrázků a kterou a kdy používáte?
  • CSS property hacks, kondicionální vkládání .css souborů nebo něco dalšího?
  • Jak poskytujete stránky pro funkcionálně/vlastnostmi omezený prohlížeč?
    • Jakou techniku/proces používáte?
  • Jaké jsou způsoby pro zneviditelní obsahu (a zachování jeho dostupnosti pro čtečky)?
  • Použili jste někdy grid system a pokud ano, který upřednostňujete?
  • Použili jset někdy mediální selektor (media query) nebo specifický layout/CSS pro mobilní zařízení?
  • Máte nějaké zkušenosti s vytvářením SVG?
  • Jak optimalizujete stránky pro tisk?
  • Jaké jsou zásady pro psaní efektnivního CSS?
  • Jaké jsou výhody/nevýhody použítí CSS preprocesorů (SASS, Compass, Stylus, LESS)?
    • Popiště, co se Vám na CSS preprocesorech, které jste použili, líbí/nelíbí.
  • Jak byste implementovali návrh webové stránky, která používá nestandardní řezy písma?
    • Webfonts (služby typu: Google Webfonts, Typekit etc.)
  • Vysvětlete jak prohlížeč určuje, který element odpovída CSS selektoru.
  • Vysvětlete Vaše chápání box modelu a jak řeknete pomocí CSS prohlížeči, aby Váš layout vykreslil v odlišném box modelu

[⬆]

JS otázky:

  • Vysvětlete delegaci událostí.
  • Vysvětlete jak funguje this v JavaScriptu.
  • Vysvětlete jak funguje funguje prototypová dědičnost.
  • Jak testujete JavaScript?
  • AMD vs. CommonJS?
  • Co je hashovací tabulka?
  • Vysvětlete proč následující volání nebude fungovat jako IIFE: function foo(){ }();.
    • Co musíte změnit, aby volání zafungovalo jako IIFE?
  • Vysvětlete rozdíl mezi proměnou, která je null, nedefinovaná nebo nedeklarovaná?
    • Jakým způsobem ověříte jednotlivé stavy proměnné?
  • Co to je closure a jak/proč bychom je měli používat?
  • Jaké je typické využití pro anonymní funkce?
  • Vysvětlete “JavaScript module pattern” a kdybyste ho měli použít.
    • Body navíc za zmínku o čistých jmených prostorech.
    • Co když moduly nemají jmené prostory?
  • Jak organizujete Váš kód? Module pattern, klasická dědičn5ost?
  • Jaký je rozdíl mezi nativními a hostitelskými objekty?
  • Rozdíl mezi:
function Person(){} var person = Person() var person = new Person()
  • Jaký je rozdíl mezi .call a .apply?
  • Jaký je rozdíl mezi undefined and null?
  • Vysvětlete Function.prototype.bind.
  • Kdy optimalizujete Váš kód?
  • Vysvětlete jak funguje dědičnost v JavaScriptu.
  • Kdy byste použili document.write()?
    • Většina generovaných reklam stále používá tento přístup i přesto, že je to dlouhodobě odsuzováno.
  • Jaký je rozdíl mezi detekcí vlastností, odvození vlastností a použití UA řetězce?
  • Vysvětlete AJAX co nejpodrobněji to jde.
  • Vysvětlete jak funguje JSONP (a proč to není opravdový AJAX).
  • Použili jste někdy JavaScriptové šablony?
    • Pokud ano, které knihovny jste použili (Mustache.js, Handlebars etc.)?
  • Vysvětlete “hoisting”.
  • Vysvětlete probublávání událostí.
  • Jaký je rozdíl mezi atributem (attribute) a vlastností (property)?
  • Proč není dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Proč je dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Jaký je rozdíl mezi událostmi document load a document ready?
  • Jaký je rozdíl mezi == a ===?
  • Vysvětlete jakým způsobem získáte parametr z URL zadaného v okně prohlížeče.
  • Vysvětlete JavaScriptové pravidlo stejného původu (same-origin policy).
  • Popište přístupy k dědění v JavaScriptu.
  • Následující kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Popište strategie pro memorizaci (odstranění opakovaných výpočtů) v JavaScriptu.
  • Proč se říká ternární operátor, co označuje slovo ternární?
  • Co je označováné jako “arity” funkce?
  • Co znamená "use strict";? Jaké jsou výhody a nevýhody použití?

[⬆]

jQuery otázky:

  • Vysvětlete řetězení (chaining).
  • Vysvětlete odkládání (deferreds).
  • Jaké znáte a umíte implementovat optimalizace speciálně pro jQuery?
  • Co dělá .end()?
  • Jak a proč byste váš event handler opatřili jmeným prostorem?
  • Jmenujte čtyři různé typy hodnot, které můžete předat jako vstupní parametr metod v jQuery.
    • Selektor (řetězec), HTML (řetězec), Callback (funkce), HTMLElement, object, pole, pole elementu, jQuery Object, atd.
  • Co to je fronta efektů (nebo fx fronta)?
  • Jaký je rozdíl mezi .get(), [] a .eq()?
  • Jaký je rozdíl mezi .bind(), .live() a .delegate()?
  • Jaký je rozdíl mezi $ a $.fn? Nebo jenom, co je $.fn?
  • Zoptimalizujte tento selektor:
$(".foo div#bar:eq(0)")
  • Jaký je rozdíl mezi ‘delegate()’ a ‘live()’?

[⬆]

Otázky z kódu:

~~3.14

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: 3

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Otázka: Jakou hodnotu má window.foo?
Odpověď: "bar"
pouze pokud window.foo bylo false, jinak vrátí svojí hodnotu.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Otázka: Co zobrazí uvedené dva alerty?
Odpověď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Jaká je hodnota foo.length?
Odpověď: 2

var foo = {};
foo.bar = 'hello';

Otázka: Jaká je hodnota foo.length?
Odpověď: undefined

[⬆]

Zábavné otázky:

  • Jaká je nejúžasnější věc, kterou jste kdy nakódovali, nebo na kterou jste nejvíce pyšní?
  • Jaké jsou Vaše oblíbené části vývojářských nástrojů, které používáte?
  • Máte nějaký vlastní hobby projekt?
  • Jaká je Vaše oblíbená vlastnost Internet Exploreru?

[⬆]

\ No newline at end of file diff --git a/_site/translations/danish/index.html b/_site/translations/danish/index.html new file mode 100644 index 000000000..9ba9b5441 --- /dev/null +++ b/_site/translations/danish/index.html @@ -0,0 +1 @@ +Front-end Job Interview Spørgsmål ★ Front-end Job Interview Questions

Front-end Job Interview Spørgsmål

Front-end Job Interview Spørgsmål

@version 1.0

Bemærk: Dette arkiv indeholder et udvalg af spørgsmål, der kan bruges til samtale til stillingen som front-end udvikler. Det kan på ingen måde anbefales at bruge hver eneste spørgsmål på samme kandidat da det ville tage flere timer.

Husk på, at mange af disse spørgsmål er åbne og kan føre til interessante diskussioner, der fortæller dig mere om personens evner end et klart svar ville.

####Originale bidragydere

Bemærk: Størstedelen af spørgsmålene blev plukket fra en tråd skabt og bidraget af følgende personer:

Generelle spørgsmål:

  • Er du på Twitter?
    • Hvis ja, hvem følger du?
  • Er du på GitHub?
    • Hvis ja, hvilke repoer følger du?
  • Hvilke blogs følger du?
  • Hvilke version kontrolsystemer har du brugt (Git, SVN osv.)?
  • Hvad er dit foretrukne udviklingsmiljø? (OS, Editor, Browsere, Tools osv.)
  • Kan du beskrive din arbejdsgang, når du bygger en webside?
  • Kan du beskrive forskellen mellem ‘progressive enhancement’ og ‘graceful degradation’?
    • Bonuspoint beskrive ‘feature detection’
  • Forklar hvad “Semantisk HTML” betyder.
  • Hvilken browser udvikler du primært i og hvad hvilke udviklingsværktøjer bruger du?
  • Hvordan vil du optimere et websites ressourcer?
    • Du leder efter en række løsninger, som kan omfatte:
      • Fil sammenkædning (File concatenation)
      • Fil minification
      • CDN Hosted
      • Caching
      • Osv.
  • Hvorfor er det bedre at have flere domæner som man serverer sit website fra?
    • Hvor mange ressourcer vil en browser hente ad gangen fra et givent domæne?
  • Navn 3 måder at mindske et websites belastning. (formodet eller faktisk lade tid)
  • Hvis du hoppede på et projekt, og de brugte tabulering og du brugte mellemrum, hvad ville du gøre?
    • Foreslå projektet at benytte noget lignende EditorConfig (http://editorconfig.org)
    • Følge konventioner (være consistent)
    • ‘Indføre :retab! kommandoen’
  • Skriv et simpelt billed slideshow side
    • Bonuspoint, hvis det ikke bruger JS.
  • Hvilke værktøjer bruger du til at teste din kode effektivitet?
  • Hvis du kunne mestre en teknologi i år, hvad ville det så være?
  • Forklare vigtigheden af standarder.
  • Hvad er FOUC? Hvordan undgår man FOUC?

HTML-specifikke spørgsmål:

  • Hvad er et doctype gøre, og hvor mange kan du nævne?
  • Hvad er forskellen mellem standards mode og quirks mode?
  • Hvilke Begrænsninger er der med XHTML-sider?
    • Er der nogen problemer med at serverer sider som application/xhtml+xml?
  • Hvordan du serverer man en side med indhold på flere sprog?
    • Hvilken slags ting skal du være opmærksom på, når der skal designes eller udviklings til flersprogede sites?
  • Kan du bruge XHTML syntaks i HTML5?
  • Hvordan bruger du XML i HTML5?
  • Hvad er data- attributter godt for?
  • Hvad er indholds modeller i HTML4 og er de anderledes i HTML5?
  • Tænk på HTML5 som en åben web-platform. Hvad er byggestenene i HTML5?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Beskriv forskellen mellem cookies, sessionStorage og localStorage.

JS-specifikke spørgsmål

  • Hvilke JavaScript-biblioteker har du brugt?
  • Har du nogensinde kigget på kildekoden til bibliotekerne eller frameworks som du bruger?
  • Hvordan er JavaScript forskellig fra Java?
  • Hvad er en Hashtable?
  • Hvad er undefined og undeclared variabler?
  • Hvad er en closure, og hvordan/hvorfor ville du bruge en?
    • Din yndlings mønster bruges til at skabe dem? argyle (Gælder kun for IIFEs)
  • En typisk eksempel på brug af anonyme funktioner?
  • Forklare “JavaScript module pattern”, og hvornår du skal bruge det.
    • Bonuspoint for at nævne ren namespacing.
    • Hvad hvis dine moduler er uden namespace?
  • Hvordan tilrettelægger du din kode? (module pattern, classical inheritance?)
  • Hvad er forskellen mellem ‘host objects’ og ‘native objects’?
  • Forskel mellem:
function Person(){} var person = Person() var person = new Person()
  • Hvad er forskellen mellem .call og .apply?
  • Forklare Function.prototype.bind?
  • Hvornår skal du optimere din kode?
  • Kan du forklare, hvordan arv(inheritance) virker i JavaScript?
  • Hvornår vil du bruge document.write()?
    • De fleste annoncer stadig genereres ved brug af document.write() selvom dets anvendelse er ildeset.
  • Hvad er forskellen mellem feature detection, feature inference, og brug af UA string
  • Forklar AJAX så udførligt som muligt.
  • Forklare hvordan JSONP virker (og hvordan det egentlig ikke er AJAX)
  • Har du nogensinde brugt JavaScript templating?
    • Hvis ja, hvilke biblioteker har du brugt (Mustache.js, Handlebars osv.)
  • Forklare “hoisting”.
  • Forklare “event bubbling”.
  • Hvad er forskellen mellem en “attribute” og en “property”?
  • Hvorfor er det ikke en god idé Udvide indbygget JavaScript-objekter?
  • Hvorfor er Udvidelse af ins en god idé?
  • Forskel mellem document load event og document ready event?
  • Hvad er forskellen mellem == og ===?
  • Forklar, hvordan du ville få en query string parameter fra browservinduets URL.
  • Forklare den samme oprindelse politik med hensyn til JavaScript.
  • Forklare event delegation.
  • Beskrive arv mønstre(inheritance patterns) i JavaScript.
  • Få det til at virke:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Beskrive en strategi for memoization (undgå beregning gentagelser) i JavaScript.
  • Hvorfor hedder det en Ternary erklæring, hvad betyder ordet “Ternary”?
  • Hvad er arity af en funktion?
  • Hvad er "use strict";? hvad er fordelene og ulemperne ved at bruge det?

JS-kode eksempler:

~~3.14

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: 3

"i'm a lasagna hog".split("").reverse().join("");

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Spørgsmål: Hvad er værdien af window.foo?
Svar: "bar"
Hvis window.foo er falsk ellers vil det bevare sin værdi.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Spørgsmål: Hvad er resultatet af de to ovennævnte alerts?
** Svar: “Hello World” & ReferenceError: bar er ikke defineret **

var foo = [];
foo.push(1);
foo.push(2);

Spørgsmål: Hvad er værdien af foo.length?
**Svar: 2

var foo = {};
foo.bar = 'hello';

Spørgsmål: Hvad er værdien af foo.length?
**Svar: undefined

foo = foo||bar

Spørgsmål: Hvad betyder?
**Svar: if(!foo) foo = bar

foo>>1

Spørgsmål: Hvad betyder?
**Svar: Math.floor(foo/2)

foo|0
foo+.5|0

Spørgsmål: Hvad betyder?
**Svar: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Spørgsmål: Hvordan får man antallet af parametre?
**Svar: foo.length //dette eksempel er 3

jQuery-specifikke spørgsmål:

  • Forklar “kæde”(chaining).
  • Forklar “deferreds”.
  • Nævn nogle jQuery specifikke optimeringer du kan implementere?
  • Hvad betyder .end() gøre?
  • Hvordan og hvorfor, ville du namespace en bundet event handler?
  • Navn 4 forskellige værdier, du kan give en jQuery metoden.
    • Selector (string), HTML (string), Callback (funktion), HTMLElement, objekt, array, element array, jQuery objekt osv.
  • Hvad er effects (eller fx) queue?
  • Hvad er forskellen mellem .get(), [], og .eq()?
  • Hvad er forskellen mellem .bind(), .live(), og .delegate()?
  • Hvad er forskellen mellem $ og $.fn? Eller hvad er $.fn.
  • Optimer denne selector:
$(".foo div#bar:eq(0)")
  • Forskel mellem delegate() og live()?

CSS-specifikke spørgsmål:

  • Beskriv hvad en “reset” CSS-fil laver, og hvordan den nyttigt.
  • Beskrive Floats og hvordan de virker.
  • Hvilken clearing teknikker findes der og hvilke er passende for hvilken sammenhæng?
  • Forklar CSS sprites, og hvordan du vil indføre dem på en side eller et websted.
  • Hvad er din yndlings billed udskiftning(image replacement) teknik og som bruger du?
  • CSS property hacks, konditionel inkluderet. css filer, eller … noget andet?
  • Hvordan serverer du dine sider for funktionen begrænset browsere?
    • Hvilke teknikker/processer bruger du?
  • Hvilke forskellige måder findes der for at visuelt skjule indhold (og gør det kun tilgængelig for skærmlæsere)?
  • Har du nogensinde brugt et grid system, og hvis ja, hvad foretrækker du?
  • Har du brugt eller implementeret media queries eller mobile specifikke layouts/CSS?
  • Noget kendskab til styling af SVG?
  • Hvordan optimerer du dine websider til tryk?
  • Hvad skal der til for at skrive effektiv CSS?
  • Bruger du CSS præprocessorer? (SASS, Compass, Stylus, LESS)
    • Hvis ja, beskriv, hvad du kan lide og ikke lide ved CSS præprocessorer som du har brugt.
  • Hvordan vil du implementere en web-design, der ikke bruger standard skrifttyper?
    • Webfonts (skrifttype tjenester som: Google Webfonts, Typekit osv.)
  • Forklare hvordan en browser afgør, hvilke elementer matcher en CSS selector?

Valgfri sjove spørgsmål:

  • Hvad er den fedeste ting, du nogensinde har kodet, hvad er du mest stolt af?
  • Kender du HTML5 bandetegn?
  • Er du nu, eller har du nogensinde været på en båd.
  • Hvad er dine foretrukne dele om de udviklere værktøjer som du bruger?
  • Har du nogen hygge projekter? Hvilken slags?
  • Forklare betydningen af ​​"cornify".
  • På et stykke papir, skriv ned bogstaverne A B C D E lodret. Nu sæt dem i faldende rækkefølge uden at skrive én linje kode.
    • Vent og se, om de vender papiret på hovedet
  • Pirate eller Ninja?
    • Bonus hvis det er en kombination og en god grund blev givet (+2 for zombie abe pirat ninjas)
  • Hvad ville du gøre, hvis ikke Webudvikling?
  • Hvor i verden er Carmen Sandiego?
  • Where in the world is Carmen Sandiego?
    • Tip: deres svar er altid forkert
  • Hvad er dit foretrukne funktion i Internet Explorer?
  • Færdiggør denne sætning: Brendan Eich og Doug Crockford er __________ af javascript.
  • JQuery: et godt bibliotek eller den bedste bibliotek? Diskuter.
  • http://www.w3schools.com/ eller http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/dutch/index.html b/_site/translations/dutch/index.html new file mode 100644 index 000000000..1d42eafd8 --- /dev/null +++ b/_site/translations/dutch/index.html @@ -0,0 +1 @@ +Front-end interview vragen ★ Front-end Job Interview Questions

Front-end interview vragen

Front-end interview vragen

@version 2.0.0

Deze repo bevat een aantal front-end interview vragen die je kunnen helpen om ervaren kandidaten te vinden. Het is uiteraard niet aangeraden om elke vraag aan een sollicitant te stellen (dat zou ook uren in beslag nemen). Maar als je er een paar gebruikt is het mogelijk om het gewenste skillniveau te vinden dat je zoekt.

Rebecca Murphey’s Baseline For Front-End Developers is ook een geweldige bron om je in te lezen voordat je aan een interview begint.

Let op: Houd er rekening mee dat deze vragen meestal een open einde hebben en dat zou kunnen leiden tot interessante discussies die je meer over de persoon zelf kan vertellen dan een standaard antwoord.

####Originele Bijdragers

De meerderheid van deze vragen is geplukt uit een oksoclap thread origineel gemaakt door Paul Irish (@paul_irish) en aan bijgedragen door de volgende individuen:

Algemene Vragen:

  • Praat over je favoriete ontwikkelomgeving. (OS, Editor, Browsers, Tools etc.)
  • Kan je jouw workflow beschrijven als je een nieuwe web pagina maakt?
  • Kan je het verschil beschrijven tussen progressieve verbeteringen en gracieuse degradatie?
    • Bonus punten voor het beschrijven van feature detection
  • Leg uit wat “Semantische HTML” betekent.
  • Hoe zou je website assets/resources optimaliseren?
    • Kijk naar een aantal oplossingen zoals:
      • Bestands concatenatie
      • Betands minificatie
      • Content Delivery Network
      • Caching
      • etc.
  • Waarom is het beter om website resources van meerdere domeinen te laden?
    • Hoeveel resources kan een browser tegelijkertijd downloaden van een domein?
  • Noem 3 manieren om pagina laadtijd te verminderen. (waargenomen of gemeten tijd)
  • Als je op een project kwam te werken waar ze tabs gebruiken en jij gebruikt spaties, wat zou je doen?
    • Suggereren dat het project misschien iets als [EditorConfig] (http://editorconfig.org) kan gebruiken.
    • Je aanpassen aan de conventie (consistent blijven)
    • issue :retab! command
  • Schrijf een simpele slideshow pagina
    • Bonus punten als het geen JS gebruikt.
  • Welke tools gebruik je om je je code performance te testen?
    • Profiler, JSPerf, Dromaeo
  • Als je dit jaar één techniek zou willen beheersen, wat zou het zijn?
  • Kan je de verschillen tussen Long-Polling, Websockets en SSE benoemen?
  • Leg het belang uit van standaards en standaards organisaties.
  • Wat is FOUC? Hoe voorkom je FOUC?

HTML-Specifieke Vragen:

  • Wat doet een doctype?
  • Wat is het verschil tussen standaard modus en quirks modus?
  • Wat zijn de beperkingen als je XHTML pagina’s serveert?
    • Zijn er problemen als je ze serveert als application/xhtml+xml?
  • Hoe serveer je een pagina met content in meerdere talen?
    • Wat voor dingen moet je voor op passen als je designt of ontwikkelt voor meertalige sites?
  • Waar zijn data- attributen goed voor?
  • Stel je HTML5 voor als een open web platform. Wat zijn dan de bouwstenen van HTML5?
  • Beschrijf het verschil tussen cookies, sessionStorage en localStorage.

JS-Specifieke Vragen:

  • Beschrijf event delegatie
  • Leg uit hoe this werkt in JavaScript
  • Leg uit prototypal inheritance werkt
  • Hoe kan je je JavaScript testen?
  • AMD vs. CommonJS?
  • Wat is een hashtable?
  • Wat zijn undefined en undeclared variabelen?
  • Wat is een closure, en hoe/waarom zou je het gebruiken?
    • Je favoriete pattern om deze te gebruiken? argyle (Alleen toepasbaar bij IIFEs)
  • Wat is een typische use case voor anonieme functies?
  • Leg de “JavaScript module pattern” uit wanneer je het zou gebruiken.
    • Bonus punten voor het noemen van clean namespacing.
    • Wat als je modules namespace-loos zijn?
  • Hoe organiseer je je code? (module pattern, classical inheritance?)
  • Wat is het verschild tussen host objects en native objects?
  • Verschil tussen:
function Person(){} var person = Person() var person = new Person()
  • Wat is het verschil tussen .call en .apply?
  • Leg uit Function.prototype.bind?
  • Wanneer optimaliseer je je code?
  • Kan je uitleggen hoe overerving werkt in JavaScript?
  • Wanneer zou je document.write() gebruiken?
    • Veel ads gebruiken nog steeds document.write() ookal wordt dit meestal afgekeurd
  • Wat is het verschil tussen feature detection, feature inference en het gebruiken van een UA string
  • Leg AJAX zo gedetailleerd mogelijk uit
  • Leg uit hoe JSONP werkt (en hoe het niet echt AJAX is)
  • Heb je ooit JavaScript templating gebruikt?
    • Zo ja, welke libraries heb je gebruikt? (Mustache.js, Handlebars etc.)
  • Leg “hoisting” uit.
  • Beschrijf event bubbling.
  • Wat is het verschil tussen een “attribuut” en een “property”?
  • Waarom is het uitbreiden van built-in JavaScript objects geen goed idee?
  • Waarom is het uitbreiden van built ins een goed idee?
  • Wat is het verschil tussen document load en document ready?
  • Wat is het verschil tussen == en ===?
  • Leg uit hoe je een query string parameter uit een browsers window URL kan halen.
  • Leg de same-origin policy met betrekking tot JavaScript uit.
  • Beschrijf overerving patronen in JavaScript.
  • Maak dit werkend:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschrijf een strategie voor memoization (ontwijken van berekening repetitie) in JavaScript.
  • Waarom heet het een Ternary expression, waar doelt het woord “Ternary” op?
  • Wat is de ariteit van een functie?
  • Wat is "use strict";? Wat zijn de voor- en nadelen om dit te gebruiken?

JS-Code Voorbeelden:

~~3.14

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: 3

"ik hou van lasagna".split("").reverse().join("");

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: "angasal nav uoh ki"

( window.foo || ( window.foo = "bar" ) );

Vraag: What is the value of window.foo?
Antwoord: "bar"
Alleen als window.foo falsy was, anders leverde het zijn waarde op.

var foo = "Hallo"; (function() { var bar = " Wereld"; alert(foo + bar); })(); alert(foo + bar);

Vraag: Wat is de uitkomst van de twee alerts?
Antwoord: “Hallo Wereld” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vraag: Wat is de waarde van foo.length?
**Antwoord: 2

var foo = {};
foo.bar = 'hello';

Vraag: Wat is de waarde van foo.length?
**Antwoord: undefined

jQuery-Specifieke Vragen:

  • Leg “chaining” uit.
  • Leg “deferreds” uit.
  • Wat zijn een paar jQuery specifieke optimalisaties die jij kan implementeren?
  • Wat doet .end()?
  • Hoe en waarom zou je een bound event handler namespacen?
  • Noem 4 verschillende waardes die je aan een jQuery methode kan geven.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Wat is de effecten (fx) queue?
  • Wat is het verschil tussen .get(), [], en .eq()?
  • Wat is het verschil tussen .bind(), .live(), en .delegate()?
  • Wat is het verschil tussen $ en $.fn? Of sowieso, wat is $.fn.
  • Optimaliseer deze selector:
$(".foo div#bar:eq(0)")
  • Wat is het verschil tussen ‘delegate()’ en ‘live()’?

CSS-Specifieke Vragen:

  • Beschrijf wat een “reset” CSS bestand doet en hoe dit bruikbaar is.
  • Beschrijf Floats en hoe ze werken.
  • Wat zijn de verschillende clearing technieken en welke is toepasselijk voor welke context?
  • Leg CSS sprites uit en hoe je ze kan implementeren op een pagina.
  • Wat zijn jouw favoriete image replacement technieken en welke gebruik je wanneer?
  • CSS property hacks, conditionele ingeladen .css files, of… iets anders?
  • Hoe serveer je je pagina’s voor feature-constrained browsers?
    • Welke technieken/processen gebruik je?
  • Wat zijn de verschillende manieren om content visueel te verbergen (en het alleen zichtbaar te houden voor screenreaders)?
  • Heb je ooit een grid-systeem gebruikt en zo ja, wat is je voorkeur?
  • Heb je ooit media queries of mobiel specifieke layouts/CSS gebruikt of geïmplementeerd?
  • Ben je bekend met SVG styling?
  • Hoe optimaliseer je je pagina’s voor printen?
  • Wat zijn sommige van de “gotchas” voor het schrijven van efficiënte CSS?
  • Wat zijn de voor- en nadelen van CSS preprocessors? (SASS, Compass, Stylus, LESS)
    • Wat vind je wel en niet fijn aan diegene die jij hebt gebruikt.
  • Hoe zou je een website design implementeren dat gebruik maakt van non-standard fonts?
    • Webfonts (font services zoals: Google Webfonts, Typekit etc.)
  • Leg uit hoe een browser beslists welke elementen hij moet matchen met een CSS selector?

Optionele Losse Vragen:

  • Wat is het coolste dat je ooit gemaakt hebt. Waar ben je trots op?
  • Wat zijn de favoriete dingen van de ontwikkeltools die je gebruikt?
  • Heb je hobbyprojecten? Zo ja, wat voor?
  • Wat is je favoriete feature van Internet Explorer?
\ No newline at end of file diff --git a/_site/translations/farsi/index.html b/_site/translations/farsi/index.html new file mode 100644 index 000000000..f72a62ee6 --- /dev/null +++ b/_site/translations/farsi/index.html @@ -0,0 +1 @@ +سوالات مصاحبه‌ی کاری فرانت‌-اند ★ Front-end Job Interview Questions

سوالات مصاحبه‌ی کاری فرانت‌-اند

سوالات مصاحبه‌ی کاری فرانت‌-اند

این فایل شامل چندین سوال مربوط به مصاحبه‌ی فرانت-اند هست که ازشون میشه در زمان بررسی داوطلب‌های بالقوه استفاده کرد. به هیچ وجه پیشنهاد نمیشه که تمام سوالات اینجا رو از یک داوطلب بپرسین (چون چند ساعت طول می‌کشه). انتخاب چند مورد از این لیست باید بهتون در بررسی توانایی‌هایی که نیاز دارید کمک کنه.

توجه: در نظر داشته باشید که ته خیلی از این سوالات باز هستن و ممکنه به یک بحث جذاب ختم بشن که بیشتر از یک جواب ساده به شما در مورد توانایی‌های شخص مورد نظر اطلاعات میده.

فهرست

  1. سوال‌های عمومی
  2. سوال‌های اچ‌تی‌ام‌ال
  3. سوال‌های سی‌اس‌اس
  4. سوال‌های جی‌اس
  5. سوال‌های تستینگ
  6. سوال‌های پرفورمنس
  7. سوال‌های شبکه
  8. سوال‌های کدینگ
  9. سوال‌های فان

درگیر شدن

  1. مشارکت کنندگان
  2. چطور مشارکت کنید
  3. مجوز

سوال‌های عمومی:

  • این هفته/امروز چه چیزی یاد گرفتی؟
  • چه چیزی توی کد زدن برات جذابه یا به هیجان میارتت؟
  • یه چالش فنی که جدیدا باهاش روبرو شدی چی بود و چطوری حلش کردی؟
  • وقتی میخوایی یه سایت یا یه وب اپلیکیشن بسازی، به چه چیزهای رابط کاربری، امنیتی، کارایی، سئو، نگه‌داری یا تکونولوژی توجه میکنی؟
  • در مورد محیط توسعه‌ی مورد علاقه‌ات بگو.
  • با کدوم سیستم کنترل ورژن آشنا هستی؟
  • میتونی گردش کارت رو برای وقتی که داری یه صفحه وب میسازی توضیح بدی؟
  • اگه ۵ تا استایل‌شیت مختلف داشته باشی، چطوری اون‌ها رو به نحو احسنت با هم توی سایت ادغام میکنی؟
  • میتونی تفاوت بین بهبود تصاعدی و افت شدید رو توضیح بدی؟
  • چطوری اَسِت‌ها/منابع یک وبسایت رو بهینه میکنی؟
  • یک مرورگر در هر لحظه از یک دامنه چنتا منابع دانلود میکنه؟
    • استثناها چیا هستن؟
  • سه روش بگو که بشه لود صفحه رو کم کرد (لود دیداری یا زمان لود واقعی)
  • اگه یهو وارد یه پروژه بشی و ببینی که از تَب استفاده کردن و تو از اسپس استفاده کردی، چیکار میکنی؟
  • توضیح بده که چطوری یه صفحه‌ی اسلایدشوی ساده می‌سازی.
  • اگه میتونستی یک تکنولوژی رو امسال استاد بشی، دنبال چی می‌رفتی؟
  • اهمیت استاندارد‌ها و سازمان‌های مشخص کردن استاندارد رو توضیح بده.
  • فلش محتوی بدون استایل (FOUC) چیه؟ چطوری میشه ازش پرهیز کرد؟
  • توضیح بده که AIRA و صفحه‌خوان‌ها چین و چطوری میشه یک وبسایت رو در دسترس قرار داد؟
  • مزایا و معایب انیمیشن‌های سی‌اس‌اس در مقایسه با جاوااسکریپت رو توضیح بده.
  • CORS مخفف چیه و به چه مسئله‌ای اشاره داره؟

سوال‌های اچ‌تی‌ام‌ال:

  • doctype چیکار میکنه؟
  • فرق بین حالت‌های کاملا استاندارد، تقریبا استاندارد و قدیمی (quirks) چیه؟
  • تفاوت بین اچ‌تی‌ام‌ال و اکس‌اچ‌تی‌ام‌ال چیه؟
  • مشکلی برای سرو کردن صفحه‌ای به صورت application/xhtml+xml هست؟
  • چطور یه صفحه‌ای رو با محتوای چندزبانه سرو میکنی؟
  • وقتی که داری سایت چندزبانه طراحی میکنی یا توسعه میدی، به چه چیزهایی باید حواست باشه؟
  • اتریبیوت‌های data- به چه دردی میخورن؟
  • اچ‌تی‌ام‌ال۵ رو یک پلتفرم وب آزاد در نظر بگیر. بلوک‌های سازنده‌ی اچ‌تی‌ام‌ال۵ چیا هستن؟
  • فرق بین یک <script>، <script async> و <script defer> رو شرح بده.
  • چرا به طور کلی فکر خوبیه که <link>های سی‌اس‌اس رو داخل <head></head> و <script>های جی‌اس رو قبل از </body> قرار داد؟ هیچ استثنایی میشناسی؟
  • رندر شدن تصاعدی چیه؟
  • قبلا زبان‌های تمپلیت‌سازی اچ‌تی‌ام‌ال استفاده کردی؟

سوال‌های سی‌اس‌اس:

  • توی سی‌اس‌اس فرق بین کلاس و آی‌دی چیه؟
  • توی سی‌اس‌اس فرق بین «normalizing» و «resetting» چیه؟ خودت کدومشون رو انتخاب میکردی، و چرا؟
  • فلوت رو توضیح بده و بگو چطوری کار میکنن.
  • زد-ایندکس رو توضیح بده و بگو روی هم چینی زمینه چطوری ایجاد میشه.
  • BFC‌ (Block Formatting Context) چیه و چطوری کار میکنه؟
  • روش‌های مختلف برای پاک کردن چیه و هر کدوم به درد چه موقعیتی می‌خوره؟
  • اسپریت‌های سی‌اس‌اس رو توضیح بده و بگو چطوری اون‌ها رو روی صفحه یا سایت پیاده‌سازی می‌کنی؟
  • روش‌های جایگزینی تصویر مورد علاقه‌ات چیا هستن و از هر کدوم کی استفاده می‌کنی؟
  • برای حل کردن مشکلات استایل‌های مختص به مرورگر، چطوری عمل می‌کنی؟
    • از چه تکنیک/پروسه‌ای استفاده می‌کنی؟
  • راه‌های مختلف برای مخفی کردن بصری محتوی (و قابل خوندن کردنشون فقط برای صفحه‌خوان‌ها) چیا هستن؟
  • تا حالا از یک گرید سیستم استفاده کردی، اگه آره، کدومشون رو ترجیح میدی؟
  • تاحالا از مدیا کوئری‌ها یا لی‌اوت/سی‌اس‌اس مخصوص موبایل استفاده یا پیاده‌سازی کردی؟
  • با استایل دادن به SVG آشنا هستی؟
  • یک صفحه‌ی وب رو چطوری برای چاپ بهینه می‌کنی؟
  • چنتا از «مچ‌گیری»‌های لازم برای نوشتن سی‌اس‌اس کارآمد چیا هستن؟
  • مزایا و معایب استفاده از پیش‌پردازنده‌های سی‌اس‌اس چیا هستن؟
    • توضیح بده چه چیزایی از پیش‌پردازنده‌های سی‌اس‌اس که قبلا استفاده کردی رو دوست داشتی و دوست نداشتی.
  • یه دیزاین کلی که فونت‌های غیراستاندارد داره رو چطوری پیاده سازی می‌کنی؟
  • توضیح بده که یک مرورگر چطوری مشخص میکنه کدوم المنت با کدوم سلکتور سی‌اس‌اس مچ میشه.
  • سودو المنت‌ها رو توصیف کن و بحث کن که برای چی ازشون استفاده می‌کنن.
  • چیزی رو که از باکس مدل فهمیدی توضیح بده و بگو چطوری توی سی‌اس‌اس به مرورگر میفهمونی تا لی‌اوتت رو توی باکس مدل‌های متفاوتی رندر کنه.
  • * { box-sizing: border-box; } چیکار میکنه؟ فوایدش چیه؟
  • هر چی مقدار برای پراپرتی دیسپلی یادت میاد رو لیست کن.
  • فرق بین اینلاین و اینلاین-بلاک چیه؟
  • فرق بین یک المنت با پوزیشن ریلیتیو، فیکسد، ابسولوت و استایتک چیه؟
  • «C» داخل سی‌اس‌اس برای Casacading یا آبشاری هست. اولویت توی اختصاص استایل چطوری مشخص می‌شه (چنتا مثال)؟
  • از چه فریم‌ورک‌های سی‌اس‌اس به صورت لوکال یا توی پروداکشن استفاده کردی؟
  • تا حالا با فلکس‌باک یا ویژگی‌های جدید گرید توی سی‌اس‌اس بازی بازی کردی؟
  • طراحی ریسپانسیو با طراحی آداپتیو چه تفاوتی داره؟
  • تاحالا با گرافیک رتینا کار کردی؟ اگه آره، کی و از چه تکنیک‌هایی استفاده کردی؟
  • دلیل هست که از translate() به جای جاگذاری ابسولوت یا برعکس استفاده کنی؟ و چرا؟

سوال‌های جی‌اس:

  • ایونت دلیگیشن رو توضیح بده.
  • توضیح بده this توی جاوااسکریپت چطوری کار میکنه.
  • توضیح بده ارث‌بری پروتوتایپی چطوری کار میکنه.
  • نظرت در مورد AMD در برابر CommonJS چیه؟
  • توضیح بده چرا قطعه‌ی روبرو به عنوان یک IIFE کار نمیکنه: function foo(){ }();.
    • چه چیزی احتیاج داره تا به شیوه‌ی صحیح IIFE بشه؟
  • فرق بین یک متغییر که null، undefined یا اعلام نشده هست چیه؟
    • چطوری وضعیت هر کدوم از این‌ها رو چک می‌کنی؟
  • کلوژر چیه و چطور/چرا ازش استفاده می‌کنی؟
  • استفاده‌ی معمول از فانکشن‌های انانیموس چیه؟
  • چطوری کدهات رو مرتب میکنی؟ (ماژول پترن، ارث‌بری کلاسیک)
  • فرق بین آبجکت‌های هاست و آبجکت‌های نیتیو چیه؟
  • فرق بین: function Person(){}، var person = Person()، و var person = new Person()؟
  • فرق بین .call و .apply چیه؟
  • Function.prototype.bind رو توضیح بده.
  • چه موقع از document.write() استفاده میکنی؟
  • فرق بین تشخیص ویژگی، استنتاج ویژگی و استفاده از استرینگ UA چیه؟
  • ایجکس رو تا تمام جزئیاتی که می‌تونی توضیح بده.
  • مزایا و معایب استفاده از ایجکس چیا هستن؟
  • توضیح بده که JSONP چطوری کار میکنه (و چطوری واقعا ایجکس نیست؟)
  • تاحالا از تمپلیت‌سازی جاوااسکریپتی استفاده کردی؟
    • اگه آره، از چه کتابخونه‌هایی استفاده کردی؟
  • «هویستینگ» رو توضیح بده.
  • ایونت بابلینگ رو توضیح بده.
  • فرق بین یک «اتریبیوت» و یک «پراپرتی» چیه؟
  • چرا اکستند کردن یه آبجکت جاوااسکریپتی بیلت-این فکر خوبی نیست؟
  • فرق بین ایونت load داکیومنت و DOMContentLoaded چیه؟
  • فرق بین == و === چیه؟
  • سیاستگذاری سیم-اوریجین رو از دید جاوااسکریپت توضیح بده.
  • کاری کن این کار کنه:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • چرا میگن اکسپرشن Ternary، کلمه‌ی «Ternary» چه چیزی رو میگه؟
  • "use strict"; چیه؟ مزایا و معایب استفاده ازش چیه؟
  • یه حلقه بساز که تا 100 تکرار بشه در حالی که برای مضارب 3 "fizz"، برای مضارب 5 "buzz" و برای مضارب 3 و 5 "fizzbuzz" رو خروجی بده.
  • چرا به طور کلی، فکر خوبیه تا اسکوپ جنرال یک وبسایت رو همینطوری که هست بزاریم بمونه و هیچوقت بهش دست نزنیم؟
  • چرا از چیزهایی مثل ایونت load استفاده میکنی؟ این ایونت معایبی هم داره؟ جایگزینی میشناسی، و چرا از اونها استفاده میکنی؟
  • توضیح بده که یک اپ سینگل پیج چیه و چطوری میشه سئوی یکیشون رو درست کرد؟
  • نهایت تجربه‌ات توی کار کردن ب پرامیس‌ها و/یا پروفیل‌هاش چیه؟
  • مزایا و معایب استفاده از پرامیس‌ها به جای کال‌بک‌ها چیه؟
  • چنتا از مزایا/معایب نوشتن کدهای جاوااسکریپت به زبانی که به جاوااسکریپت کامپایل میشه چیا هست؟
  • از چه ابزارها و تکنیک‌هایی برای دیباگ کردن کدهای جاوااسکریپت استفاده می‌کنی؟
  • از چه ساختار زبانی برای طی کردن پراپرتی‌های یک آبجکت یا آیتم‌های آرایه استفاده میکنی؟
  • تفاوت بین آبجکت‌های تغییرپذیر و تغییرناپذیر رو توی جاوااسکریپت توضیح بده.
    • یه مثال از آبجکت تغییرناپذیر توی جاوااسکریپت بزن.
    • مزایا و معایب تغییرناپذیری چیه؟
    • چطوری میتونی توی کدهای خودت به تغییرناپذیری رو اجرا کنی؟
  • فرق بین فانکشن‌های همگام و غیرهمگام رو توضیح بده.
  • ایونت لوپ چیه؟
    • فرق بین استک کال و صف تسک چیه؟
  • فرق بین استفاده از foo توی function foo() {} و var foo = function() {} رو توضیح بده.

سوال‌های تستینگ:

  • مزایا/معایب تست کردن کدهات چیا هستن؟
  • از چه ابزارهایی برای تست کردن فانکشنالیتی کدهات استفاده می‌کنی؟
  • فرق بین تست یونیت و فانکشنال/اینتگریشن تست چیه؟
  • هدف ابزارهای لینت کردن کد چی هست؟

سوال‌های پرفورمنس:

  • از چه ابزاری استفاده میکنی تا یه باگ مربوط به پرفورمنس رو توی کدهات پیدا کنی؟
  • چه راه‌هایی وجود داره تا پرفورمنس اسکرول کردن سایتت بهبود پیدا کنه؟
  • فرق بین لی‌اوت، پینتینگ و کامپوزیتینگ رو توضیح بده.

سوال‌های شبکه:

  • از قدیم، چرا همیشه بهتر بوده تا اَسِت‌های سایت رو از دامین‌های مختلف سرو کرد؟
  • بهترین تعریفی رو که از پردازشی وقتی که یوآرال یک وبسایتی رو تایپ میکنی تا وقتی که لود شدنش روی صفحه‌ی نمایشت تموم بشه انجام میشه، ارائه بده.
  • فرق بین ایونت‌های Long-Polling، Websocketها و Server-Sent چیه؟
  • هدرهای ریکوئست و ریسپانس‌های زیر رو توضیح بده:
    • Diff. between Expires, Date, Age and If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • متدهای اچ‌تی‌تی‌پی چی هستن؟ تمام متدهای اچ‌تی‌تی‌پی که میشناسی لیست کن و توضیحشون بده.

سوال‌های کدینگ:

سوال: مقدار foo چیست؟

var foo = 10 + '20';

سوال: چیکار میکنی تا این کار کنه؟

add(2, 5); // 7
add(2)(5); // 7

سوال: مقدار برگشته از عبارت زیر چیست؟

"i'm a lasagna hog".split("").reverse().join("");

سوال: مقدار window.foo چیست؟

( window.foo || ( window.foo = "bar" ) );

سوال: خروجی دو آلرت زیر چیست؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سوال: مقدار foo.length چیست؟

var foo = [];
foo.push(1);
foo.push(2);

سوال: مقدار foo.x چیست؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سوال: کد زیر چه چیزی رو پرینت می‌کند؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

سوال‌های فان:

  • پروژه‌ی باحالی که جدیدا روش کار کردی چی بود؟
  • از چه چیزهایی از ابزارهای توسعه‌دهنده‌ای که استفاده می‌کنی خوشت میاد؟
  • چه کسی الهام بخش تو توی کامیونیتی فرانت-اند کارها هست؟
  • پروژه‌ی خونگی داری؟ چجور پروژه‌ایه؟
  • فیچر مورد علاقه‌ات توی اینترنت اکسپلورر چیه؟
  • قهوه‌ات رو چطوری دوست داری؟

مشارکت کنندگان:

این نوشته با همکاری @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed و @iansym از سال ۲۰۰۹ آغاز شده است.

از آن موقع تا کنون بیش از ۱۰۰ دولوپر در آن مشارکت کرده‌اند.

این سند توسط @JavidIzadfar به فارسی برگردانده شده است.

\ No newline at end of file diff --git a/_site/translations/french/index.html b/_site/translations/french/index.html new file mode 100644 index 000000000..ced106125 --- /dev/null +++ b/_site/translations/french/index.html @@ -0,0 +1 @@ +Questionnaire de recrutement pour développeur front-end ★ Front-end Job Interview Questions

Questionnaire de recrutement pour développeur front-end

Questionnaire de recrutement pour développeur front-end

Cette liste contient un certain nombre de questions que vous pouvez poser lors d’un entretien d’embauche pour un développeur Front-End. Il n’est en aucun cas recommandé de poser toutes ces questions à un candidat (ça prendrait des heures). Choisissez en quelques-unes liées au profil que vous rechercher afin de vérifier les compétences dont vous avez besoin.

Note: Gardez en tête que la plupart de ces questions sont ouvertes et qu’elles peuvent mener à des discussions intéressantes, qui vous en apprendront plus sur les capacités de la personne.

Table des matières

  1. Questions générales
  2. Questions sur HTML
  3. Questions sur CSS
  4. Questions sur JS
  5. Questions sur réseau
  6. Questions sur la programmation
  7. Questions pour le fun

S’impliquer :

  1. Contributeurs
  2. Comment contribuer (en)
  3. Licence

[⬆]

Questions générales:

  • Qu’avez-vous appris cette semaine ?
  • Qu’est ce qui vous motive ou vous intéresse dans le développement ?
  • Quel a été le dernier défi technique que vous avez expérimenté et comment l’avez-vous résolu ?
  • Quelles considérations en terme d’UI, Sécurité, Performance, SEO, Maintenabilité ou Technologie faites-vous lorsque vous concevez une application web ou site ?
  • Parlez-moi de votre environnement de travail préféré.
  • Avec quels logiciels de gestion de versions êtes-vous familier?
  • Pouvez-vous décrire comment vous travaillez (votre workflow) lorsque vous créez une page web ?
  • Si vous aviez 5 feuilles de style différentes, de quelle façon les intégreriez-vous le mieux dans un site ?
  • Pouvez-vous décrire la différence entre amélioration progressive et dégradation gracieuse ?
  • Comment optimisez-vous les performances de vos pages web (assets/ressources) ?
  • Combien de ressources différentes à la fois un navigateur peut-il télécharger à partir d’un même domaine ?
    • Quelles sont les exceptions ?
  • Donnez 3 façons qui permettent de réduire le temps de chargement d’une page (perçu ou réel).
  • Si vous commencez à travailler sur un projet existant, où votre prédécesseur a utilisé des tabulations pour indenter son code et que vous utilisez des espaces, que faites-vous ?
  • Décrivez comment vous développeriez un simple diaporama
  • Quels outils utilisez-vous pour tester la performance de votre code ?
  • Si vous pouviez maîtriser parfaitement une technologie cette année, laquelle serait-elle ?
  • Expliquez l’importance des standards et des organisations les édictant.
  • Qu’est-ce que le FOUC (flash of unstyled content) et comment l’évitez-vous ?
  • Expliquez ce que sont ARIA et les lecteurs d’écrans, et comment rendre votre site internet accessible
  • Expliquez quelques-uns des pour et contre des animations CSS par rapport aux animations JavaScript
  • Que signifie CORS et quel problème aborde-t-il ?

[⬆]

Questions sur HTML :

  • Que fait un doctype ?
  • Quelle est la différence entre les modes standard et quirks ?
  • Quelles sont les différences entre HTML et XHTML ?
  • Y a-t-il des problèmes à envoyer des pages avec le Content-Type application/xhtml+xml ?
  • Comment servez-vous une page avec du contenu multilingue ?
  • À quoi devez-vous faire attention quand vous designez ou développez des pages pour des sites multilingues ?
  • À quoi les attributs data- servent-ils ?
  • Si l’on considère que HTML5 est une API Web ouverte, quelles sont les briques de base de HTML5 ?
  • Décrivez la différence entre cookie, sessionStorage, et localStorage.
  • Décrivez la différence entre <script>, <script async> et <script defer>.
  • Pourquoi est-ce généralement une bonne idée de positionner les <link> à l’intérieur de <head></head> et les <script> juste avant </body>? Connaissez-vous des exceptions ?
  • Qu’est-ce que le rendu progressif ?
  • Pourquoi utiliseriez-vous l’attribut srcset dans une balise image ? Expliquez le processus utilisé par le navigateur lors de l’évaluation du contenu de cet attribut.

[⬆]

Questions sur CSS :

  • Quelle est la différence entre les classes et les IDs en CSS ?
  • Quelle est la différence entre un “reset” et une “normalisation” en CSS ? Lequel choisiriez-vous et pourquoi ?
  • Décrivez le positionnement flottant et son fonctionnement.
  • Décrivez le z-index et comment le contexte d’empilement se forme ?
  • Quelles sont les différentes méthodes de “clearing” des éléments flottants, et laquelle est appropriée pour chaque contexte ?
  • Expliquez ce que sont les “sprites” CSS et comment vous les implémenteriez sur une page ou un site.
  • Quelles sont vos techniques favorites de remplacement d’images, et comment les utilisez-vous ?
  • Quelle approche choisiriez-vous pour réparer des bugs au niveau du CSS spécifique à certains navigateurs ?
  • Comment servez-vous vos pages pour les navigateurs aux fonctionnalités réduites ?
    • Quelles techniques/procédés utilisez-vous ?
  • Quelles sont les différentes manières de masquer du contenu (en le laissant disponible pour les lecteurs d’écran) ?
  • Avez-vous déjà utilisé un système de grille, et si oui, lequel préférez-vous ?
  • Avez-vous déjà implémenté des “media queries”, ou des “layouts CSS” spécifiques aux mobiles ?
  • Avez-vous déjà touché au style d’un SVG ?
  • Comment optimisez-vous vos pages pour l’impression (le print) ?
  • Quelques astuces pour écrire du CSS efficacement ?
  • Quels sont les avantages/désavantages de l’utilisation des préprocesseurs CSS ? (SASS, Compass, Stylus, LESS)
    • Si vous avez un avis, décrivez ce que vous aimez et n’aimez pas des préprocesseurs que vous avez utilisé.
  • Comment implémenteriez-vous un design qui utilise des polices de caractères non standards ?
  • Expliquez comment un navigateur détermine quels éléments correspondent à un sélecteur CSS.
  • Expliquez ce que vous avez compris du modèle de boite (box model) et comment implémenteriez vous une mise en page avec des modèles de boite différents.
  • Qu’est-ce que * { box-sizing: border-box; } fait ? Quels sont ses désavantages ?
  • Listez autant de valeurs que vous pouvez pour la propriété display.
  • Quelle est la différence entre inline et inline-block ?
  • Quelle est la différence entre les éléments ayant relative, fixed, absolute et static comme position ?
  • Le ‘C’ dans CSS veut dire Cascade (Cascading). Comment la priorité est-elle définie lors de l’assignement de styles (exemples) ? Comment pouvez-vous utiliser ce système à votre avantage ?
  • Quels frameworks CSS avez-vous utilisé localement, ou en production ? Comment feriez-vous pour les changer/améliorer ?
  • Avez-vous expérimenté le récent flexbox ?
  • En quoi le “responsive design” est différent du “adaptive design” ?
  • Avez-vous déjà travaillé avec des images “retina” ? Si oui, à quel moment et quelles techniques avez-vous utilisées ?
  • Y a-t-il des raisons particulières pour lesquelles vous voudriez utilser translate() plutôt que position: absolute ou vice-versa ? Et pourquoi ?

[⬆]

Questions sur JS :

  • Expliquez la délégation d’évènement.
  • Expliquez comment fonctionne this en Javascript.
  • Expliquez comment fonctionne l’héritage de prototype.
  • Comment testez-vous votre code Javascript ?
  • Que pensez-vous d’AMD par rapport à CommonJS ?
  • Expliquez pourquoi ce qui suit n’est pas une IIFE (Immediately Invoked Function Expression) : function foo(){ }();.
    • Qu’est-ce qu’il faut changer pour faire une IIFE correcte ?
  • Quelle est la différence entre une variable null, undefined et non déclarée ?
    • Comment feriez-vous pour vérifier chacun de ces états ?
  • Qu’est-ce qu’une “closure” et comment/pourquoi en utiliser une ?
  • Pouvez-vous décrire la principale difference entre la boucle forEach et la boucle .map() et pourquoi choisiriez-vous l’une et pas l’autre ?
  • Quelle est l’utilisation typique d’une fonction anonyme ?
  • Comment organisez-vous votre code ? (pattern modulaire, héritage classique ?)
  • Quelle est la différence entre des objets hôtes et des objets natifs ?
  • Différence entre: function Person() {}, var person = Person() et var person = new Person() ?
  • Quelle est la différence entre .call et .apply ?
  • Expliquez Function.prototype.bind ?
  • Comment optimisez-vous votre code ?
  • Pouvez-vous expliquer comment fonctionne l’héritage en Javascript ?
  • Quand utiliseriez-vous document.write() ?
  • Quelle est la différence entre détection de “feature”, inférence de “feature” et l’utilisation du “User-Agent” ?
  • Expliquez ce qu’est AJAX avec autant de détails que possible.
  • Expliquez comment fonctionne JSONP (et pourquoi ce n’est pas réellement de l’AJAX).
  • Avez-vous déjà utilisé des “templates” en Javascript ?
    • Si oui, quelles librairies avez-vous utilisées ?
  • Expliquez le phénomène de “hoisting”.
  • Décrivez le “event bubbling”.
  • Quelle est la différence entre un “attribut” et une “propriété” ?
  • Pourquoi étendre des objets natifs de Javascript n’est-il pas une bonne idée ?
  • Pourquoi étendre des objets natifs est-il une bonne idée ?
  • Quelle est la différence entre les évènements “document load” et “document ready” ?
  • Quelle est la différence entre == et === ?
  • Expliquez la politique d’origine commune (same-origin policy) et ses implications en JavaScript.
  • Expliquez les patterns d’héritage en JavaScript.
  • Faites fonctionner ceci :
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Qu’est ce que l’opérateur ternaire ? Qu’est-ce que ce mot indique ?
  • Qu’est-ce que "use strict";? Quels sont les avantages et désavantages de son utilisation ?
  • Créez une boucle for qui se répète 100 fois et affichez “fizz” aux multiples de 3, "buzz" aux multiples de 5 et “fizzbuzz” aux multiples de 3 et 5.
  • Pourquoi il est en général préférable de laissez le ‘scope’ global d’un site tel quel et ne jamais y toucher ?
  • Pourquoi utiliseriez-vous quelque chose comme l’événement load ? Est-ce que cet évènement a des avantages ? Connaissez-vous des alternatives, et pourquoi les utiliseriez-vous ?
  • Expliquez ce qu’est une application mono-page (Single Page Application) et comment feriez-vous pour qu’elle soit optimisée pour le référencement (SEO).
  • Quelle est l’étendue de votre expérience avec les “Promises” et/ou leurs “polyfills” ?
  • Quels sont les pour et contre de l’utilisation des “Promises” à la place des “callbacks” ?
  • Quels sont les avantages/inconvénients de l’écriture de code JavaScript dans un language qui compile en JavaScript ?
  • Quels outils et techniques utilisez-vous pour le “debugging” du code javascript ?
  • Quels langages de construction utilisez-vous pour les itérations sur les propriétés d’objet et éléments de tableau.
  • Expliquez la difference entre les objets muables et les objets immuables.
    • Donnez un exemple d’objet immuable en javascript.
    • Quels sont les avantages et inconvénients de l’immuabilité ?
    • Comment pouvez-vous réaliser l’immuabilité dans votre code ?
  • Expliquez la différence entre les fonctions synchrones et asynchrones.
  • Qu’est ce qu’une boucle d’événement ?
    • Quelle est la différence entre la pile d’appels et la file d’attente de tâches?
  • Expliquez les différences dans l’usage de foo entre foo() {} et var foo = function() {}
  • Quelles sont les différences entre les variables crées en utilisant let, var ou const ?

[⬆]

Questions sur les Tests

  • Quels sont les avantages/inconvénients de tester votre code ?
  • Quels outils utiliseriez-vous pour tester les fonctionnalités de votre code.
  • Quel est la difference entre un test unitaire et un test fonctionnel/d’intégration ?
  • Quel est le but d’un outil de lissage de style de code ?

[⬆]

Questions sur la performance

  • Quels outils utiliseriez-vous pour trouver une erreur de performance dans votre code ?
  • Comment pouvez-vous améliorer les performances de défilement de votre site Web ?
  • Expliquez la différence entre la mise en page, la peinture et la composition.

[⬆]

Questions sur le réseau

  • Pourquoi est-il préférable de disposer ses assets sur des domaines différents ?
  • Faites de votre mieux pour décrire le processus à partir du moment où vous tapez l’URL d’un site internet jusqu’au moment où la page a finit de charger.
  • Quelle est la différence entre “Long-Polling”, “Websockets” et les événements “Server-Sent” ?
  • Expliquez les entêtes de requêtes et réponses suivant :
    • Différences entre Expires, Date, Age et If-Modified-
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Quelles sont les différentes actions (verbes) HTTP ? Listez toutes celles que vous connaissez et expliquez-les.

[⬆]

Questions sur la programmation :

Quelle est la valeur de foo ?

var foo = 10 + '20';

Comment feriez-vous marcher ceci ?

add(2, 5); // 7
add(2)(5); // 7

Que retourne ce code ?

"je suis un bouffeur de lasagne".split("").reverse().join("");

Que retourne window.foo ?

( window.foo || ( window.foo = "bar" ) );

Qu’affichent les deux alertes ci-dessous ?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Quelle est la valeur de foo.length ?

var foo = [];
foo.push(1);
foo.push(2);

[⬆]

Questions pour le fun :

  • Quel est le truc le plus cool que vous ayez programmé, de quoi êtes-vous le plus fier ?
  • Quelles sont les parties favorites des outils de développement que vous utilisez ?
  • Qui vous inspire dans la communauté front-end ?
  • Avez-vous des projets chouchous ? Quel genre ?
  • Quelle est votre fonctionnalité favorite dans IE ?
  • Comment voulez-vous votre café ?

[⬆]

Contributeurs :

Ce document a démarré avec la collaboration de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed et @iansym.

Il a depuis reçu des contributions de plus de 100 développeurs.

\ No newline at end of file diff --git a/_site/translations/german/index.html b/_site/translations/german/index.html new file mode 100644 index 000000000..541603a3e --- /dev/null +++ b/_site/translations/german/index.html @@ -0,0 +1 @@ +Fragen im Bewerbungsgespräch für Frontend-Entwickler ★ Front-end Job Interview Questions

Fragen im Bewerbungsgespräch für Frontend-Entwickler

Fragen im Bewerbungsgespräch für Frontend-Entwickler

@version 2.0.0

Dieses Repo enthält einige Fragen, die zur Einschätzung von geeigneten Frontend-Entwicklern innerhalb eines Bewerbungsgesprächs verwendet werden können. Es ist auf keinen Fall ratsam, einem Bewerber jede einzelne Frage zu stellen (das würde Stunden dauern). Es mag hilfreich sein, eine handvoll passender Fragen aus dieser Liste auszuwählen, um die Fähigkeiten abzuklopfen, die für den Job wichtig sind.

Rebecca Murphey’s Baseline For Front-End Developers (Englisch) ist ebenso eine nützliche Quelle zur Vorbereitung auf ein Bewerbungsgespräch.

Anmerkung: Beachte bitte, dass viele dieser Fragen so offen gehalten sind, dass sie interessante Diskussionen auslösen können, in deren Verlauf du viel mehr über die Fähigkeiten eines Bewerbers erfahren kannst, als in kurzen, direkten Antworten.

Initiatoren und Mitwirkende

Ein Großteil der Fragen wurden aus einer Diskussion bei oksoclap entnommen, die von Paul Irish (@paul_irish) angestoßen wurde, und an der später folgende Personen beteiligt waren:

Allgemeine Fragen:

  • Welche Versionsverwaltung hast du bisher verwendet (Git, SVN, etc.)?
  • Wie sieht deine bevorzugte Entwicklungsumgebung aus? (Betriebssystem, Editor, Browser, Werkzeuge, etc.)
  • Beschreibe bitte deinen Arbeitsablauf, wenn du eine Website entwickelst.
  • Kannst du den Unterschied zwischen Progressive Enhancement und Graceful Degradation beschreiben?
    • Extra-Punkte für die Beschreibung von Feature Detection
  • Beschreibe bitte, was »Semantisches HTML« bedeutet.
  • In welchem Browser entwickelst du vornehmlich und welche Entwicklerwerkzeuge verwendest du dabei?
  • Wie würdest du die Ressourcen einer Website im Hinblick auf Performance optimieren?
    • Verschiedene Lösungsansätze könnten sein:
      • Zusammenfassen von Dateien
      • Minifizierung
      • Nutzung von CDN
      • Caching
      • etc.
  • Warum ist es sinnvoll, Ressourcen über mehr als eine Domain abzufragen?
    • Wie viele Quellen kann ein Browser von einer Domain parallel empfangen?
  • Benenne drei Umstände, die das Laden einer Seite verlangsamen können (hinsichtlich der Wahrnehmung oder der tatsächlichen Ladezeit).
  • Wie verhältst du dich, wenn du in ein neues Projekt kommst, in dem Tabs verwendet werden und du aber Leerzeichen verwendest?
    • Vorschlagen, dass für das Projekt sowas wie EditorConfig (http://editorconfig.org) verwendet werden soll.
    • Sich an die Vorgaben des Projekts halten.
    • issue :retab! command
  • Entwickle eine simple Slideshow-Seite.
    • Bonuspunkte, wenn sie kein JS verwendet.
  • Welche Werkzeuge nutzt du zum Testen der Performance deines Codes?
  • Wenn du eine Technologie in diesem Jahr meistern könntest, welche wäre das?
  • Erkläre die Bedeutung von Standards und Standardisierungsorganisationen?
  • Was ist FOUC? Wie vermeidest du FOUC?

HTML-spezifische Fragen:

  • Was tut ein doctype und wie viele von ihnen kannst du benennen?
  • Was ist der Unterschied zwischen Standards-Modus und Quirks-Modus?
  • Welche Einschränkungen gibt es beim Ausliefern von XHTML-Seiten?
    • Gibt es Probleme, wenn Seiten als application/xhtml+xml ausgeliefert werden?
  • Wie lieferst du eine Seite mit Inhalten in verschiedenen Sprachen aus?
    • Vor welchen Dingen solltest du dich hüten, wenn du mehrsprachige Websites designst oder entwickelst?
  • Darf man XHTML-Syntax in HTML5 verwenden?
  • Wie verwendet man XML in HTML5?
  • Wofür sind data--Attribute nützlich?
  • Was sind die Inhaltsmodelle in HTML4 und sind sie unterschiedlich in HTML5?
  • Stelle dir HTML5 als eine offene Internetplattform vor. Was sind die Basiskomponenten von HTML5?
  • Beschreibe die Unterschiede zwischen Cookies, sessionStorage und localStorage.

JS-spezifische Fragen:

  • Erkläre Event Delegation
  • Erkläre, wie this in JavaScript funktioniert.
  • Erkläre, wie prototypische Vererbung funktioniert.
  • Wie gehst du vor beim Testen von JavaScript?
  • AMD vs. CommonJS?
  • Welche JavaScript-Bibliotheken hast du bisher benutzt?
  • Hast du jemals den Sourcecode von Bibliotheken/Frameworks angeschaut, die du benutzt?
  • Was ist ein hashtable?
  • Was sind undefined und undeclared Variablen?
  • Was ist eine Closure und wie/warum würdest du eine verwenden?
    • Dein bevorzugtes Pattern, um sie zu generieren? Argyle (Nur geeignet für IIFEs).
  • Was ist ein typischer Anwendungsfall für anonymous functions?
  • Erkläre das »JavaScript Module Pattern« und wann du es verwenden würdest.
    • Bonuspunkte, wenn sauberes Namespacing genannt wird.
    • Und wenn deine Module ohne Namespace sind?
  • Wie organisierst du deinen Code? (Module Pattern, klassische Vererbung?)
  • Was ist der Unterschied zwischen host objects und native objects?
  • Unterschied zwischen:
function Person(){} var person = Person() var person = new Person()
  • Worin unterscheiden sich .call und .apply?
  • Erkläre Function.prototype.bind.
  • Wann optimierst du deinen Code?
  • Kannst du erklären, wie Vererbung in JavaScript funktioniert?
  • Wann verwendet man document.write()?
    • Die meisten Werbebanner verwenden noch document.write(), obwohl es verpönt ist.
  • Was sind die Unterschiede zwischen Feature Detection, Feature Inference und Verwendung des UA-Strings?
  • Erkläre AJAX so detailiert wie möglich.
  • Erkläre wie JSONP funktioniert (und warum es nicht wirklich AJAX ist).
  • Hast du schonmal JavaScript-Templating verwendet?
    • Wenn ja, welche Bibliotheken hast du verwendet (Mustache, Handlebars, etc.)?
  • Erkläre »Hoisting«.
  • Erkläre Event Bubbling.
  • Was ist der Unterschied zwischen einem »Attribut« und einer »Property«?
  • Warum ist es nicht sinnvoll, JavaScript-eigene Objekte zu erweitern?
  • Warum ist es sinnvoll, Kernfunktionen zu erweitern?
  • Unterschied zwischen document load event und document ready event?
  • Was ist der Unterschied zwischen == und ===?
  • Erkläre, wie du einen Query-String-Parameter aus der URL des Browserfensters abfragst.
  • Erkläre die same-origin policy und in welcher Form sie JavaScript betrifft.
  • Erkläre Vererbungsmuster in JavaScript.
  • Bringe dies zum Laufen:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschreibe eine Strategie für Memoization (Vermeidung von Berechnungsschleifen) in JavaScript.
  • Warum heißt es »Ternary expression« und worauf deutet das Wort »Ternary« hin?
  • Was ist die Stelligkeit (Arity) einer Funktion?
  • Was ist "use strict";? Was sind die Vor- und Nachteile bei der Verwendung?

JS-Codebeispiele:

~~3.14

Frage: Welcher Wert wird zurückgegeben?
Antwort: 3

"Draußen nur Kännchen".split("").reverse().join("");

Frage: Welcher Wert wird zurückgegeben?
Antwort: "nehcnnäK run neßuarD"

( window.foo || ( window.foo = "bar" ) );

Frage: Welchen Wert hat window.foo?
Antwort: "bar"
nur wenn window.foo false war, andernfalls behält es seinen Wert.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Frage: Was ist das Ergebnis der beiden alerts oben?
Antwort: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Frage: Welchen Wert hat foo.length?
**Antwort: 2

var foo = {};
foo.bar = 'hello';

Frage: Welchen Wert hat foo.length?
**Antwort: undefined

jQuery-spezifische Fragen:

  • Erkläre »Chaining«.
  • Erkläre »Deferreds«.
  • Was sind ein paar jQuery-spezifische Optimierungen, die man vornehmen kann?
  • Was macht .end()?
  • Wie und warum würdest du einen Namespace für einen gebundenen Event handler verwenden?
  • Benenne 4 verschiedene Werte, die man einer jQuery-Methode übergeben kann.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Was ist die effects (oder fx) queue?
  • Was ist der Unterschied zwischen .get(), [] und .eq()?
  • Was ist der Unterschied zwischen .bind(), .live(), und .delegate()?
  • Was ist der Unterschied zwischen $ und $.fn? Was ist überhaupt $.fn?
  • Optimiere diesen Selektor:
$(".foo div#bar:eq(0)")
  • Unterschied zwischen ‘delegate()’ und ‘live()’?

CSS-spezifische Fragen:

  • Erkläre was ein »Reset«-CSS macht und wofür es nützlich ist.
  • Beschreibe Floats und wie sie funktionieren.
  • Was sind die verschiedenen Clear-Methoden und welche ist geeignet für welchen Kontext?
  • Erkläre CSS-Sprites und wie du sie auf einer Seite oder Website implementieren würdest.
  • Was sind deine bevorzugten Image-Replacement-Techniken und wann benutzt du welche davon?
  • CSS-Hacks, per conditional eingebundene .css-Ressourcen oder… was sonst?
  • Wie lieferst du Seiten für funktional beschränkte Browser aus?
    • Welche Techniken/Prozesse verwendest du dafür?
  • Was sind die verschiedenen Möglichkeiten, um Inhalte visuell auszublenden (und für Screenreader zugänglich zu machen)?
  • Hast du schonmal ein Grid-System verwendet, und wenn ja, welches bevorzugst du?
  • Hast du media queries oder mobile-spezifische Layouts/CSS verwendet/entwickelt?
  • Bist du mit dem Styling von SVG vertraut?
  • Wie optimierst du Websites für den Druck?
  • Was sind ein paar Kniffe, um effizientes CSS zu schreiben?
  • Verwendest du CSS-Präprozessoren (Sass, Compass, Stylus, LESS)?
    • Wenn ja, beschreibe bitte, was du an den verwendeten magst oder nicht magst.
  • Wie würdest du ein Webdesign umsetzen, das Nicht-Standard-Schriften verwendet?
    • Webfonts (Dienste wie Google Webfonts, Typekit, etc.)
  • Erkläre wie ein Browser entscheidet, welche Elemente von einem CSS-Selektor erfasst werden.

Optionale Spaßfragen:

  • Was ist das großartigste, was du je entwickelt hast, und worauf bist du am meisten stolz?
  • Kennst du das Zeichen der HTML5-Gang?
  • Bist du gerade oder warst du jemals auf einem Boot?
  • Was sind die besten Eigenschaften der Entwicklerwerkzeuge, die du benutzt?
  • Hast du irgendwelche Freizeitprojekte? Welcher Art?
  • Erkläre die Bedeutung von »cornify«.
  • Schreibe auf einen Zettel die Buchstaben A B C D E von oben nach unten. Jetzt sortiere diese in umgekehrter Abfolge, ohne eine Zeile Code zu schreiben.
    • Warte einen Moment und schaue, ob sie den Zettel umdrehen.
  • Pirat oder Ninja?
    • Bonuspunkt, wenn es eine Kombi ist und begründet werden kann (+2 für Zombieaffenpiratenninja).
  • Wenn nicht Web-Entwicklung, was würdest du dann tun?
  • Wo ist Carmen Sandiego?
    • Tipp: Die Antwort ist immer falsch.
  • Was ist deine Lieblingsfunktion des Internet Explorers?
  • Ergänze diesen Satz: Brendan Eich und Doug Crockford sind die __________ von JavaScript.
  • jQuery: Eine großartige Bibliothek oder die großartigste Bibliothek von allen? Diskutiere.
  • http://www.w3schools.com/ oder http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/greek/index.html b/_site/translations/greek/index.html new file mode 100644 index 000000000..ba94cc48f --- /dev/null +++ b/_site/translations/greek/index.html @@ -0,0 +1 @@ +Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers ★ Front-end Job Interview Questions

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Αυτό το αποθετήριο (repo) περιέχει μια σειρά από front-end ερωτήσεις συνέντευξης που μπορούν να χρησιμοποιηθούν κατά την εξέταση πιθανών υποψηφίων. Σε καμία περίπτωση δεν προτείνεται να θέσετε όλα τα ερωτήματα που βρίσκονται εδώ στον ίδιο υποψήφιο (αυτό θα έπαιρνε ώρες). Επιλέγοντας όμως μερικές από αυτές, θα μπορέσετε να επιλέξετε τον υποψήφιο με τις κατάλληλες για σας δεξιότητες.

Επίσης, πριν προχωρήσετε στις συνεντεύξεις, θα ήταν εξαιρετικά χρήσιμο να διαβάσετε το άρθρο της Rebecca Murphey “Baseline For Front-End Developers”.

Σημείωση: Λάβετε υπόψη ότι πολλές από αυτές τις ερωτήσεις είναι ελευθέρου θέματος και μπορεί να οδηγήσουν σε ενδιαφέρουσες συζητήσεις που θα σας πουν πολλά περισσότερα πράγματα σχετικά με τις δυνατότητες του υποψήφιου από μια απλή απάντηση.

Περιεχόμενα

  1. Αρχικοί Συντελεστές
  2. Γενικές Ερωτήσεις
  3. HTML Ερωτήσεις
  4. CSS Ερωτήσεις
  5. JS Ερωτήσεις
  6. jQuery Ερωτήσεις
  7. Coding Ερωτήσεις
  8. Διασκεδαστικές Ερωτήσεις
  9. Άλλες Εξαιρετικές Πηγές

[⬆] Αρχικοί Συντελεστές:

Οι περισσότερες ερωτήσεις προέκυψαν από ένα oksoclap thread που δημιουργήθηκε αρχικά από τον Paul Irish (@paul_irish) και στο οποίο συνείσφεραν τα παρακάτω άτομα:

[⬆] Γενικές Ερωτήσεις:

  • Τι μάθατε χτές/αυτή την εβδομάδα;
  • Τι σε ενθουσιάζει ή σας ενδιαφέρει σχετικά με τον προγραμματισμό;
  • Τι σκέφτεστε σχετικά με το UI, Ασφάλεια, Απόδοση, SEO, Συντηρησιμότητα και Τεχνολογία, ενώ υλοποιείτε μια web εφαρμογή ή ιστοσελίδα;
  • Μιλήστε σχετικά με το προτιμώμενο περιβάλλον ανάπτυξής σας. (OS, Editor, Φυλλομετρητές, εργαλεία κ.λπ.)
  • Με ποια έκδοση version control συστήματος είστε εξοικειωμένος;
  • Μπορείτε να περιγράψετε τη ροή της εργασίας σας κατά την διάρκεια δημιουργίας μιας ιστοσελίδας;
  • Μπορείτε να περιγράψετε τη διαφορά μεταξύ progressive enhancement και graceful degradation;
    • Επιπλέον βαθμοί για την περιγραφή feature detection
  • Εξηγήστε τι σημαίνει “Semantic HTML”.
  • Πώς μπορείτε να κάνετε optimize τα στοιχεία/πόρους των ιστοσελίδων σας;
    • Ψάχνοντας για μια σειρά από λύσεις που μπορεί να περιλαμβάνουν:
      • File concatenation
      • File minification
      • CDN Hosted
      • Caching
      • etc.
  • Γιατί είναι καλύτερα να σερβίρετε τα στοιχεία της ιστοσελίδας σας από πολλά domains;
    • Πόσα resources τη φορά μπορεί να κατεβάσει ένας φυλλομετρητής από κάθε domain;
  • Ονομάστε 3 τρόπους μείωσης του page load. (θεωρητικός ή πραγματικός χρόνος φόρτωσης)
  • Αν μπείτε σε κάποιο έργο στο οποίο χρησιμοποιούν tabs και εσείς έχετε συνηθίσει spaces, τι θα κάνατε;
    • Προτείνετε να χρησιμοποιηθεί στο έργο κάτι σαν το EditorConfig (http://editorconfig.org)
    • Συμμορφωθείτε με τις συμβάσεις (μείνετε συνεπής)
    • issue :retab! command
  • Δημιουργήστε μια απλή slideshow σελίδα
    • Επιπλέον βαθμοί αν δεν χρησιμοποιηθεί καθόλου JS.
  • Ποια εργαλεία χρησιμοποιείτε για να ελέγξετε την απόδοση του κώδικά σας;
    • Profiler, JSPerf, Dromaeo
  • Αν θα μπορούσατε να κατέχετε μια τεχνολογία φέτος, ποια θα ήταν αυτή;
  • Ποιες είναι οι διαφορές μεταξύ Long-Polling, WebSockets και SSE;
  • Εξηγήστε τη σημασία των standards και των οργανισμών τους.
  • Τι είναι FOUC; Πώς μπορείτε να αποφύγετε το FOUC;
  • Περιγράψτε όσο καλύτερα γίνεται τη διαδικασία από τη στιγμή που θα πληκτρολογείτε το URL ενός ιστότοπου μέχρι το τελείωμα του loading στην οθόνη σας.

[⬆] HTML Ερωτήσεις:

  • Τι κάνει το doctype?
  • Ποια είναι η διαφορά μεταξύ standards mode και quirks mode;
  • Ποιοι είναι περιορισμοί όταν “σερβίρετε” XHTML σελίδες;
    • Υπάρχουν προβλήματα όταν “σερβίρετε” σελίδες ως application/xhtml+xml;
  • Πώς σερβίρετε μια σελίδα με περιεχόμενο σε πολλές γλώσσες;
    • Σε τι είδους πράγματα πρέπει να είστε προσεκτικοί κατά τον σχεδιασμό ή την ανάπτυξη για πολυγλωσσικά sites;
  • Σε τι είναι χρήσιμα τα data- attributes;
  • Εξετάστε την HTML5 ως μια ανοιχτή web πλατφόρμα. Ποια είναι τα δομικά στοιχεία της;
  • Περιγράψτε τη διαφορά μεταξύ των cookies, sessionStorage και localStorage.
  • Μπορείτε να εξηγήσετε τη διαφορά μεταξύ GET και POST;

[⬆] CSS Ερωτήσεις:

  • Περιγράψτε τι κάνει ένα “reset” CSS αρχείο και γιατί είναι χρήσιμο.
  • Περιγράψτε τι είναι τα “Floats” και πώς λειτουργούν.
  • Περιγράψτε το z-index και πως λειτουργεί ο τρόπο στοίβαξης.
  • Ποιες είναι οι διάφορες τεχνικές “clearing” και ποια είναι η κατάλληλη για κάθε περίπτωση;
  • Εξηγήστε τί είναι τα CSS sprites, και πώς θα τα υλοποιούσατε σε μια σελίδα ή site.
  • Ποιες είναι οι αγαπημένες σας image replacement τεχνικές και ποιες χρησιμοποιείτε;
  • CSS property hacks, conditionally included .css αρχεία, ή… κάτι άλλο;
  • Πώς σερβίρεται τις σελίδες σας για feature-constrained browsers;
    • Ποιες τεχνικές/εργασίες χρησιμοποιείτε;
  • Ποιοι είναι οι διαφορετικοί τρόποι για αποκρύψετε οπτικά (visually hide) περιεχόμενο (και να είναι διαθέσιμo μόνο για screen readers);
  • Έχετε χρησιμοποιήσει ποτέ κάποιο grid system, και αν ναι, ποιο προτιμάτε;
  • Έχετε χρησιμοποιήσει ή υλοποιήσει media queries ή mobile specific layouts/CSS;
  • Κάποια εξοικείωση σε styling SVG;
  • Πώς θα βελτιστοποιήσετε τις ιστοσελίδες σας για εκτύπωση;
  • Ποια είναι μερικά από τα “gotchas” για συγγραφή αποτελεσματικής CSS;
  • Ποια είναι τα πλεονεκτήματα/μειονεκτήματα κατά την χρήση CSS preprocessors; (SASS, Compass, Stylus, LESS)
    • Εάν έχετε χρησιμοποιήσει CSS preprocessors, περιγράψτε τι σας αρέσει και τι όχι.
  • Πώς θα υλοποιούσατε ένα web design δείγμα που χρησιμοποιεί μη-standard γραμματοσειρές;
    • Webfonts (υπηρεσίες γραμματοσειρών όπως: Google Webfonts, Typekit etc.)
  • Εξηγήστε πώς ένας browser καθορίζει ποια στοιχεία ταιριάζουν με έναν CSS selector;
  • Εξηγήστε το “box model” και πως θα πείτε στον browser μέσω CSS να ρεντάρει (render) το layout σε διαφορετικά box models.
  • Τι κάνει το * { box-sizing: border-box; }? Ποια είναι τα πλεονεκτήματά του;
  • Αναφέρετε όσες τιμές (values) μπορείτε να θυμηθείτε για το display property.
  • Ποια είναι η διαφορά μεταξύ inline και inline-block;
  • Ποια είναι η διαφορά μεταξύ relative, fixed, absolute και statically τοποθετυμένου element;
  • Τι υπάρχοντα CSS frameworks έχετε χρησιμοποιήσει τοπικά, ή σε παραγωγή; (Bootstrap, PureCSS, Foundation κτλ.)
    • Αν ναι, ποια από αυτά; Αν μπορούσατε, πώς θα τα αλλάζατε/βελτιώνατε;
  • Έχετε παίξει με τις νέες CSS Flexbox ή Grid προδιαγραφές;
    • Αν ναι, τι γνώμη έχετε για την επίδοση τους?

[⬆] JS Ερωτήσεις:

  • Εξηγήστε το “event delegation”
  • Εξηγήστε πως λειτουργεί το this στην JavaScript
  • Εξηγήστε πως λειτουργεί η prototypal κληρονομικότητα
  • Πως κάνετε τεστ στη JavaScript;
  • AMD vs. CommonJS;
  • Τι είναι το hashtable;
  • Εξηγήστε γιατί το παρακάτω δεν λειτουργεί σαν IIFE: function foo(){ }();.
    • Τι χρειάζεται να αλάξει έτσι ώστε να λειτουργήσει σαν IIFE;
  • Ποια είναι η διαφορά ανάμεσα σε μια μεταβλητή που είναι: null, undefined και undeclared;
    • Πώς θα ελέγξετε οποιαδήποτε από τις παραπάνω καταστάσεις;
  • Τί είναι closure, και πως/γιατί να το χρησιμοποιήσετε;
  • Ποια είναι η πιο χαρακτηριστική χρήση των anonymous functions;
  • Εξηγήστε την “JavaScript module pattern” και πότε θα την χρησιμοποιούσατε.
    • Επιπλέον βαθμοί για την αναφορά καθαρού namespacing.
    • Τι γίνεται αν τα modules είναι namespace-less;
  • Πώς οργανώνετε τον κωδικό σας; (module pattern, classical inheritance;)
  • Ποια είναι η διαφορά μεταξύ host objects και native objects;
  • Διαφορά μεταξύ: function Person(){}, var person = Person(), και var person = new Person();
  • Ποια είναι η διαφορά μεταξύ .call and .apply;
  • Εξηγήστε τι είναι Function.prototype.bind;
  • Πότε βελτιστοποιείτε τον κώδικα σας;
  • Μπορείτε να μας εξηγήσετε πώς λειτουργεί η κληρονομικότητα (inheritance) στην JavaScript;
  • Πότε θα χρησιμοποιήσετε document.write();
    • Οι περισσότερες διαφημίσεις που δημιουργούνται χρησιμοποιούν ακόμα document.write () αν και η χρήση του είναι παρακινδυνευμένη
  • Ποια είναι η διαφορά μεταξύ feature detection, feature inference, και χρησιμοποιώντας το UA string
  • Εξηγήστε το AJAX με όσες περισσότερες λεπτομέρειες μπορείτε
  • Εξηγήστε πώς λειτουργεί το JSONP (και πως δεν είναι στην πραγματικότητα AJAX)
  • Έχετε χρησιμοποιήσει ποτέ JavaScript templating?
    • Αν ναι, ποιες libraries έχετε χρησιμοποιήσει; (Mustache.js, Handlebars κτλ.)
  • Εξηγήστε τι είναι το “hoisting”.
  • Περιγράψτε το event bubbling.
  • Ποια είναι η διαφορά μεταξύ “attribute” και “property”;
  • Γιατί η επέκταση (extending) των built in JavaScript objects δεν είναι καλή ιδέα;
  • Γιατί η επέκταση (extending) των built ins είναι καλή ιδέα;
  • Ποια είναι η διαφορά μεταξύ document load event και document ready event;
  • Ποια είναι η διαφορά μεταξύ == and ===;
  • Εξηγήστε πώς θα πάρετε μια παράμετρο query string από το URL του παράθυρου (window) του browser.
  • Εξηγήστε την πολιτική same-origin σε σχέση με την JavaScript.
  • Περιγράψτε τις inheritance patterns της JavaScript.
  • Κάνε το παρακάτω να δουλέψει:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Περιγράψτε μια στρατηγική για memoization (αποφεύγοντας τον υπολογισμό επανάληψης) σε JavaScript.
  • Γιατί ονομάζεται Ternary expression, τι υποδεικνύει η λέξη “Ternary”;
  • Τι είναι η arity μιας συνάρτησης (function);
  • Τι σημαίνει "use strict";; Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα στην χρήση του;

[⬆] jQuery Ερωτήσεις:

  • Εξηγήστε το “chaining”.
  • Εξηγήστε το “deferreds”.
  • Ποιές jQuery βελτιστοποιήσεις μπορείτε να υλοποιήσετε;
  • Τι κάνει το .end();
  • Πώς, και γιατί, να χρησιμοποιήσεις namespace σε έναν bound event handler;
  • Ονόμασε 4 διαφορετικές τιμές που μπορείς να περάσεις στην jQuery method.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object κτλ.
  • Τι είναι η effects (ή fx) queue;
  • Ποια είναι η διαφορά μεταξύ .get(), [], και .eq();
  • Ποια είναι η διαφορά μεταξύ .bind(), .live(), και .delegate()?
  • Ποια είναι η διαφορά μεταξύ $ and $.fn; Η απλά τι είναι $.fn.
  • Βελτιστοποιήστε τον παρακάτω selector:
$(".foo div#bar:eq(0)")

[⬆] Code Ερωτήσεις:

modulo(12, 5) // 2

Ερώτηση: Υλοποιήστε μια modulo function που ικανοποιεί το παραπάνω

"i'm a lasagna hog".split("").reverse().join("");

Ερώτηση: Τι τιμή επιστρέφει από την παραπάνω δήλωση;

Απάντηση: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Ερώτηση: Ποια είναι η τιμή του window.foo?

Απάντηση: “bar” (μόνο αν το window.foo ήταν falsey αλλιώς θα διατηρούσε την τιμή)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Ερώτηση: Ποιο είναι το αποτέλεσμα των δύο παραπάνω alerts?

Απάντηση: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Ερώτηση: Ποια είναι η τιμή του foo.length?

Απάντηση: 2

[⬆] Διασκεδαστικές Ερωτήσεις:

  • Ποιο είναι το πιο σημαντικό πράγμα που έχετε υπολοιήση, ποιο είναι αυτό για το οποίο αισθάνεστε πραγματικά περήφανος;
  • Ποια είναι τα αγαπημένα σας εργαλεία στα developer tools που χρησιμοποιείτε;
  • Έχετε κάποια pet projects; Τι ακριβώς;
  • Ποιο είναι το αγαπημένο σας χαρακτηριστικό στον Internet Explorer?

[⬆] Άλλες Εξαιρετικές Πηγές:

\ No newline at end of file diff --git a/_site/translations/hebrew/index.html b/_site/translations/hebrew/index.html new file mode 100644 index 000000000..4c0ad4125 --- /dev/null +++ b/_site/translations/hebrew/index.html @@ -0,0 +1,52 @@ +שאלות לראיונות עבודה בנושא פיתוח - צד לקוח ★ Front-end Job Interview Questions

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

המסמך כולל מספר שאלות המופיעות בראיונות עבודה בנושא צד-לקוח היכולות לסייע להעריך את הידע של מועמדים פוטנציאליים. אין צורך להשתמש בכל אחת מהשאלות הנ״ל על מועמד אחד מסוים (הדבר יימשך שעות). בחירת מספר שאלות מסוימות מהרשימה יאפשר למראיין להעריך את הכישורים הנדרשים מהמועמד.


שימו לב כי שאלות רבות ברשימה הן פתוחות, ועשויות להוביל לדיון מעניין בנושא התשובה או הגישה של המועמד, וכתוצאה מכך ללמד את המראיין הרבה יותר לגבי כישורי המועמד מאשר שאלות סגורות.

תוכן העניינים:

  1. שאלות כלליות
  2. שאלות בנושא HTML
  3. שאלות בנושא CSS
  4. שאלות בנושא JavaScript
  5. שאלות בנושא נגישות (קישור לאתר חיצוני)
  6. שאלות בנושא בדיקות (Testing)
  7. שאלות בנושא ביצועים (Performance)
  8. שאלות בנושא רשתות (Networks)
  9. שאלות תכנות
  10. שאלות כיפיות

כיצד לסייע לפרויקט

  1. רשימת המשתתפים
  2. כיצד לתרום לפרויקט
  3. רשיונות

שאלות כלליות:

  • מה למדת אתמול/ בשבוע האחרון?
  • מה הדבר שמרגש אותך בנוגע לתכנות?
  • ספר/י על אתגר טכני שחווית לאחרונה, וכיצד פתרת אותו?
  • באילו שיטות השתמשת כדי לשפר ביצועים בתהליך הבנייה או התחזוקה של אתר?
  • ספר/י על עקרונות SEO שבהם השתמשת לאחרונה.
  • האם יש לך דוגמאות לטכניקות נפוצות שבהן השתמשת כדי להתמודד עם אתגרי האבטחה בפיתוח צד-לקוח?
  • באילו פעולות נקטת בפרויקטים שלך כדי לשפר את יכולת הניהול והתחזוקה של הקוד שלך?
  • ספר/י על סביבת הפיתוח המועדפת עליך/עלייך.
  • באיזו מערכת/מערכות ניהול גרסאות (Version Contro System) אתה נוהג להשתמש?
  • תאר/י את תהליך העבודה שלך כאשר את/ה בונה אתר.
  • אם יש לך 5 גיליונות סגנונות (stylesheets) שונים, מהי הדרך הטובה ביותר להטמיע אותם באתר?
  • מה ההבדל בין "Progressive Enhancement" לבין "Graceful Degradation"?
  • כיצד תבצע/י אופטימיזציה לרשימת המשאבים (assets/ resources) של האתר?
  • כמה משאבים (resources) יוריד הדפדפן מדומיין נתון בכל פעם? מהם המקרים יוצאי הדופן?
  • מנה/מני 3 דרכים להפחתת זמן טעינת הדף (זמן ממשי או הזמן כפי שהוא נתפס ע״י המשתמש).
  • הצטרפת לפרויקט, והצוות משתמש בטאבים בעוד שאת/ה משתמש/ת ברווחים. מה תעשה/י?
  • תאר/י כיצד תיצור/תצרי דף מצגת פשוט.
  • לו היית יכול/ה ללמוד באופן יסודי טכנולוגיה אחת במהלך השנה הקרובה - איזו טכנולוגיה זו היתה?
  • הסבר/ הסבירי את החשיבות של standards ושל standards bodies.
  • מהו "Flash" או תוכן בלתי מעוצב, וכיצד תימנע/י מ-FOUC?
  • מהם "ARIA" וקוראי מסך, וכיצד תיצור/תצרי אתר נגיש?
  • מנה כמה נקודות בעד ונגד אנימציית CSS ואנימציית JavaScript.
  • מהן ראשי התיבות "CORS" ובאיזה תחום הן עוסקות?

שאלות בנושא HTML:

  • מה עושה doctype?
  • כיצד תספק/י דף/אתר במספר שפות?
  • לאילו דברים חשוב להיזהר או לשים לב כשבונים אתרים במספר שפות?
  • מה התועלת של התואר (attribute) בשם "-data"?
  • מהן אבני היסוד של HTML5?
  • תאר את ההבדלים בין "cookie", "sessionStorage", ו"localStorage".
  • תאר את ההבדלים בין <script>, <script async>, ו"<script defer>".
  • מדוע זה בדרך כלל רעיון טוב למקם את תגיד ה-CSS מסוג <link> בין תגיות <head></head> וקוד JS בדיוק לפני התגית <body/>? האם ישנם מקרים יוצאי דופן?
  • מהו progressive rendering?
  • לשם מה משתמשים בתכונה (attribute) בשם srcset בתגית image? הסבר/הסבירי את התהליך שהדפדפן משתמש בו על מנת להעריך את התכונה.
  • האם השתמשת ב-HTML templating languages אחרות בעבר?

שאלות בנושא CSS

  • מהי selector specificity וכיצד זה עובד?
  • מה ההבדל בין resetting לבין normalizing הגדרות CSS? באילו מהשניים תבחר/י ומדוע?
  • תאר/י מהם Floats וכיצד הם עובדים.
  • תאר/י מהו z-index וכיצד stacking context נוצר.
  • תאר/י מהו BFC או Block Formatting Context, וכיצד הוא עובד.
  • מהן צורות ה-clearing השונות, ובאילו מהן כדאי להשתמש ולשם מה?
  • כיצד תטפל/י בבעיות עיצוב המאפיינות דפדפן מסוים?
  • כיצד תתאים/י את האתר שלך לדפדפנים בעלי מגבלת מאפיינים (feature-constrained)? באילו טכניקות/ תהליכים תשתמש/י?
  • מהן הדרכים השונות להסתיר תוכן ולאפשר תצוגה שלו באמצעות קוראי מסך?
  • האם השתמשת בעבר בשיטת העיצוב grid? במידה וכן - איזו שיטה את/ה מעדיפ/ה?
  • האם השתמשת ב-media queries או בעיצוב מיוחד למובייל?
  • האם את/ה מכיר/ה את המונח styling SVG?
  • האם תוכל לתת דוגמה לסוג נוסף של '@media' פרט ל-'screen'?
  • מהם כמה עקרונות של כתיבת CSS אפקטיבי?
  • מה היתרונות/ חסרונות בשימוש במעבדי CSS? תאר מה אהבת/ אהבת פחות במעבדי CSS שבהם השתמשת בעבר.
  • כיצד תטמיע עיצוב לווב שמשתמש בפונטים לא סטנדרטיים?
  • הסבר/י כיצד הדפדפן קובע אילו אלמנטים מתאימים לאיזה סלקטור?
  • הסבר/י מהם pseudo-elements ולמה הם משמשים?
  • הסבר/י את הבנתך בנושא box model, וכיצד תאמר/י לדפדפן לרנדר את העיצוב במודל box model אחר?
  • מה עושה { ;box-sizing: border-box } *? מה יתרונותיו?
  • על מה אחראי התואר display? תנ/י דוגמה למספר שימושים שלו.
  • מה ההבדל בין inline לבין inline-block?
  • מה ההבדל בין relative, fixed, absolute ו-statically positioned?
  • באילו CSS frameworks השתמשת באופן מקומי, או בפרודקשן? כיצד תשנה/ תשפר אותם?
  • האם יצא לך להתנסות ב-CSS Flexbox או Grid specs?
  • הסבר/י את ההבדל בין לבנות אתר ריספונסיבי לבין לבנות אתר בגישת mobile first.
  • האם עבדת עם גרפיקת רטינה? במידה וכן, מתי ובאילו טכניקות השתמשת?
  • האם ישנה סיבה שבה תשתמש/י ב-()translate במקום absolute positioning, ולהיפך? מדוע?

שאלות בנושא JavaScript

  • הסבר/י את המונח event delegation.
  • הסבר/י כיצד this עובד בג׳אווהסקריפט.
  • הסבר/י כיצד prototypal inheritance עובדת.
  • מה דעתך על AMD לעומת CommonJS?
  • הסבר/י מדוע הקוד הבא לא יעבוד כ-IIFE:
    function foo(){ }();

    מה יש לשנות על מנת שהקוד יעבוד?
  • מה ההבדל בין null, undefined, ומשתנה שלא הוגדר? כיצד תבדוק/י את מצבם של משתנים מסוג זה?
  • מהו closure וכיצד תשתמש/י בו?
  • הסבר/י את ההבדל בין לולאת forEach לבין לולאת .map(), ומה הסיבה לבחור אחד על פני האחר?
  • לשם מה משתמשים על פי רוב בפונקציה אנונימית?
  • כיצד את/ה מארגן/ת את הקוד שלך (תבנית מודולים, תורשת קלאסית)?
  • מה ההבדל בין host objects לבין native objects?
  • מה ההבדלים בין שלוש הדוגמאות הבאות:
    +      function Person(){}
    +      var person = Person()
    +      var person = new Person()
    +    
  • מה ההבדל בין .call לבין .apply?
  • הסבר/י מהו Function.prototype.bind.
  • מה ההבדל בין feature detection, feature inference לבין שימוש ב-UA string?
  • הסבר/י מהו Ajax כמה שיותר לעומק.
  • מהם היתרונות והחסרונות של שימוש ב-Ajax?
  • הסבר/י כיצד JSONP עובד, ובמה הוא שונה מ-Ajax?
  • האם השתמשת בעבר ב-JavaScript templating? במידה וכן, באילו ספריות השתמשת?
  • מהו hoisting?
  • מהו event bubbling?
  • מה ההבדל בין attribute לבין property?
  • מדוע הרחבה של אוביקטים מסוג built-in בג׳אווהסקריפט אינו רעיון טוב?
  • מה ההבדל בין document load event לבין document DOMContentLoaded event?
  • מה ההבדל בין == לבין ===?
  • הסבר/י את מדיניות ה-same-origin בהקשר של ג׳אווהסקריפט.
  • כיצד תגרום/י לקוד הבא לעבוד:
    duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • מה משמעות השם Ternary operator, ומה מרמזת המילה Ternary?
  • מהו "use strict";? מה היתרונות והחסרות של שימוש בכלי זה?
  • צור/צרי לולאה שמבצעת עד 100 איטרציות תוך כדי שהיא מדפיסה "fizz" במכפלה של 3, "buzz" במכפלות של 5, ו-"fizzbuzz" במכפלות של 3 ו-5.
  • מדוע זה בדרך כלל רעיון טוב לא להשתמש ב-global scope של אתר?
  • לשם מה תשתמש/י במשהו כמו איבנט load? האם לאיבנט זה ישנם חסרונות? האם ידוע לך על אלטרנטיבות, ובאילו מקרים תשתמש/י בהם?
  • הסבר/י מהי אפליקציית עמוד יחיד (single page app), וכיצד תיצור/י כזו שתהיה SEO-friendly?
  • כמה ניסיון יש לך בשימוש ב-Promises ו/או ה-polyfills שלהן?
  • מהם היתרונות והחסרונות של שימוש ב-Promises לעומת שימוש ב-callbacks?
  • מהם כמה מהיתרונות והחסרונות של כתיבת קוד ג׳אווהסקיפט בשפה שמתקמפלת (compiles to) ג׳אווהסקריפט?
  • באילו כלים וטכניקות תשתמש/י כדי לדבג (debugging) קוד שנכתב בג׳אווהסקריפט?
  • באילו constructions של השפה תשתמש/י כדי לבצע איטרציה על איברים של אוביקט ואיברים של מערך?
  • הסבר/י את ההבדלים בין אוביקטים הניתנים לשינוי לבין כאלה שאינם ניתנים לשינוי (mutable/immutable).
    • תן/י דוגמה לאוביקט שאינו ניתן לשינוי (immutable) בג׳אווהסקריפט.
    • מהם היתרונות של immutability?
    • כיצד תוכל/י להשיג immutability בקוד שלך?
  • הסבר/י את ההבדל בין פונקציות סינכרוניות לא-סינכרוניות.
  • מהו event loop? מה ההבדל בין call stack לבין task queue?
  • הסבר/י את ההבדלים בשימוש ב-foo במקרים הבאים:
    +      function foo() {};
    +      var foo = function() {};
    +    
  • מה ההבדלים בין משתנים שנוצרו באמצעות מילות המפתח let, var, ו-const?
  • מה ההבדל בין constructors של מחלקה ב-ES6 לבין constructors של פונקציה ב-ES5?
  • האם תוכל/י להדגים מקרה שבו כדאי להשתמש בסינטקס פונקציות החץ החדש? כיצד סינטקס זה שונה מפונקציות אחרות?
  • מה היתרון בשימוש של סינטקס החץ => עבור method בתוך constructor?
  • מה ההגדרה של פונקציה מסוג higher-order?
  • תן/י דוגמה ל-destructuring של מערך או של אוביקט.
  • תן/י דוגמה לגמישות ביצירת strings שמציע שימוש ב-Template Literals הזמין ב-ES6.
  • תן/י דוגמה לפונקציית curry, והסבר/י אילו יתרונות מציע סינטקס זה?
  • מה היתרונות שבשימוש ב-spread syntax ומה ההבדל בינו לבין rest syntax?
  • האם ניתן לשתף קוד בין קבצים?
  • מה הסיבה שבגינה תרצה/י ליצור static class members?

שאלות בנושא בדיקות (Testing)

  • מהם חלק מהיתרונות והחסרונות בביצוע בדיקות לקוד שלך?
  • באילו כלים תשתמש/י כדי לבדוק את הפונקציונליות של הקוד שלך?
  • מה ההבדל בין unit test לבין functional/integration test?
  • מה היתרונות של כלי linting לקוד?

שאלות בנושא ביצועים (Performance)

  • באילו כלים תשתמש/י כדי לאתר באג ביצועים בקוד שלך?
  • באילו דרכים ניתן לשפר את ביצועי הגלילה באתר?
  • הסבר/י את ההבדלים בין layout, painting ו-compositing.

שאלות בנושא רשתות (Networks)

  • מדוע היה נהוג לספק את נכסי האתר (assets) מתוך מספר דומיינים שונים?
  • הסבר/י את התהליך מרגע שהמשתמש מקליד URL עד לסיום טעינת האתר על המסך.
  • מה ההבדלים בין Long-Polling, Websockets ואירועי Server-Sent?
  • הסבר את ה-headers הבאים:
    • Diff. between Expires, Date, Age and If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • מהן HTTP methods? מנה/י את ה-HTTP methods שאת/ה מכיר/ה, והסבר/י אותן.

שאלות תכנות:

    מהו הערך של foo?

    +    var foo = 10 + '20';
    +  

    מה יהיה ה-output של הקוד הבא?

    +    console.log(0.1 + 0.2 == 0.3);
    +  

    כיצד תגרום/תגרמי לקוד הבא לעבוד?

    +    add(2, 5); // 7
    +    add(2)(5); // 7
    +  

    מה יהיה הערך המוחזר מהקוד הבא:

    +    "i'm a lasagna hog".split("").reverse().join("");
    +  

    מה הערך של window.foo?

    +    ( window.foo || ( window.foo = "bar" ) );
    +  

    מה תהיה התוצאה של שתי הודעות ה-alert המופיעות למטה?

    +    var foo = "Hello";
    +    (function() {
    +      var bar = " World";
    +      alert(foo + bar);
    +    })();
    +    alert(foo + bar);
    +  

    מהו הערך של foo.length?

    +    var foo = [];
    +    foo.push(1);
    +    foo.push(2);
    +  

    מהו הערך של foo.x?

    +    var foo = {n: 1};
    +    var bar = foo;
    +    foo.x = foo = {n: 2};
    +  

    מה יעשה הקוד הבא?

    +    console.log('one');
    +    setTimeout(function() {
    +      console.log('two');
    +    }, 0);
    +    console.log('three');
    +  

    מה ההבדל בין ארבע ה-promises הבאות?

    +    doSomething().then(function () {
    +      return doSomethingElse();
    +    });
    +
    doSomething().then(function () {
    +  doSomethingElse();
    +});
    +
    +doSomething().then(doSomethingElse());
    +
    +doSomething().then(doSomethingElse);
    +
    +

שאלות כיפיות:

  • ספר/י על פרויקט מעניין/ מגניב שעליו עבדת לאחרונה.
  • מהם הדברים שאת/ה אוהב/ת בנוגע לתוכנות הפיתוח איתן את/ה עובד/ת?
  • מי מעורר בך השראה בקהילת הפיתוח לווב?
  • האם יש לך פרויקטים אישיים? מאיזה סוג?
  • מה הפיצ׳ר האהוב עליך ב-Internet Explorer?
  • כיצד את/ה שותה את הקפה שלך?

תומכים:

פרויקט זה החל ב-2009 כשיתוף פעולה של @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

הפרויקט פעיל מאז בזכות תמיכתם של אנשים רבים ונהדרים.

\ No newline at end of file diff --git a/_site/translations/hungarian/index.html b/_site/translations/hungarian/index.html new file mode 100644 index 000000000..871dd3f64 --- /dev/null +++ b/_site/translations/hungarian/index.html @@ -0,0 +1 @@ +Interjú kérdések front-end fejlesztőknek ★ Front-end Job Interview Questions

Interjú kérdések front-end fejlesztőknek

Interjú kérdések front-end fejlesztőknek

Ebben a gyűjteményben összeválogattuk a legjobb front-end fejlesztő interjú kérdéseket. Ellenben nem tanácsoljuk az összes kérdés egyidejű feltevését, hiszen ez órákat venne igénybe de egy válogatott kérdéssorral megkönnyíthetjük a potenciális jelentkezők szelektálását.

Rebecca Murphey, Baseline For Front-End Developers cikke is hasznos alapja lehet egy interjúnak.

Megjegyzés: Ne feledd, hogy a kérdések többsége érdekes beszélgetésé alakulhat, ami többet elárulhat az emberről mintha csak egyszerű válaszokat adna.

Tartalom

  1. Eredeti közreműködők
  2. Általános kérdések
  3. HTML kérdések:
  4. CSS kérdések
  5. JS kérdések
  6. jQuery kérdések
  7. Példakódok
  8. Választható és vicces kérdések
  9. További referenciák

####[⬆] Eredeti közreműködők:

A kérdések többsége egy oksoclap beszélgetés alapján készült, amit Paul Irish (@paul_irish) kezdeményezett az alábbi közreműködőkkel:

####[⬆] Általános kérdések:

  • Tanultál valami újat a héten/tegnap és ha igen, mit?
  • Mi számodra a legérdekesebb és izgalmasabb a kódolás során?
  • Milyen UI, biztonsági, teljesítménybeli, SEO, karbantarthatósági és technológiai szempontokat tartasz szem elött fejlesztés közben?
  • Mi a számodra legelőnyösebb fejlesztői környezet? (operációs rendszer, szerkesztő, böngésző, fejlesztői eszközök, stb.)
  • Részletezd a munkafolyamatot, hogyan készítesz el egy weboldalt.
  • Mi a különbség a fokozatos javítása és a között, hogy a weboldalt folyamatosan optimalizálod régebbi és egyszerűbb felületekre is?
    • Bónusz pont a funkció működésének tesztelése adott eszközön.
  • Magyarázd el mit jelent a “szemantikus HTML”.
  • Milyen böngészőt és milyen eszközöket használsz a fejlesztéshez?
  • Hogyan optimalizálod egy weboldal forrásait/eszközeit?
    • Keress több megoldást, amik tartalmazzák az alábbiakat:
      • Fájl egyesítés
      • Fájl minimalizálás
      • CDN hoszting
      • Cachelés
      • stb.
  • Miert jobb az eszközöket egyszerre több domainnek is kiszolgálni?
    • Hány lekérdezés futhat a böngészőben egyidejűleg az adott domain irányába?
  • Nevezz meg 3 lehetőséget az oldalletöltés időtartámanak csökkentésére. (előtöltött vagy aktuális töltési idő)
  • Ha beszállsz egy projektbe, és ők tabot használnak te pedig szókozt a kód rendezésénél, mit teszel?
    • Tanácsolod, hogy használjatok valami technológiát, pl. EditorConfig
    • Elfogadod (vagy tartózkodsz)
    • issue :retab! command
  • Készíts egy egyszerű slideshow oldalt.
    • Bónusz pont ha nem szükséges hozzá JavaScript.
  • Milyen eszközökkel teszteled a kódod teljesítményét? ()
  • Ha idén elsajátíthatnál egy technológiát, mi lenne az?
  • Ismertesd a sztandardok fontosságát.
  • Mi a FOUC? Hogyan kerulöd el a FOUC-et?
  • Magyarázt el legjobb tudásod szerint mi történik a böngészőben attól kezdve hogy beírod az oldal url-jét, addig hogy az betöltődött a képernyőn.
  • Magyarázd el mi az ARIA és a képernyőolvasók, és hogy tudsz egy weboldalt hozzáférhetővé tenni hátrányos helyzetben élők számára.

####[⬆] HTML kérdések:

  • Mi a doctype feladata és hány fajtáját tudod megnevezni?
  • Mi a különbség a standard és a quirks módok között?
  • Nevezd meg az XHTML oldalak korlátait?
    • Van bármi akadálya annak, hogy egy oldalt application/xhtml+xml-ként szolgáljon ki?
  • Hogyan készítesz fel egy weboldalt többnyelvű tartalom megjelenítésére?
    • Mikre kell figyelni egy többnyelvű oldal tervezése és fejlesztése során?
  • Mire valók a data- attribútumok?
  • Tegyük fel, hogy a HTML5 egy nyílt webes felület. Mik az építőelemei?
  • Mi a különbség a cookie a sessionStorage és a localStorage között.
  • El tudod mondani mi a különbség a GET és a POST között?
  • Mi a különbség a <script>, <script async> és <script defer> között.

####[⬆] CSS kérdések:

  • Mire való a “reset” CSS fájl és mennyire hasznos?
  • Hogyan működik a CSS float?
  • Milyen clear technikákat ismersz és melyik milyen környezetben a megfelelő?
  • Magyarázd el a CSS sprites működését és, hogy hogyan alkalmazod egy weboldalon?
  • Mi a kedvenc képpel helyettesítő (image replacement) technikád és mit használsz mire?
  • CSS hackek, böngésző függő CSS fájlok, vagy… valami más?
  • Hogyan jelenítesz meg oldalakat korlátozott böngészőkben?
    • Milyen technológiákat/folyamatokat használsz?
  • Milyen módon tudsz tartalmakat vizuálisan elrejteni (és csak screen olvasók számára elérhetővé tenni)?
  • Használtál már “grid system”-et? Ha igen nevezz meg párat.
  • Használtál már “media query”-ket vagy mobil specifikus layoutokat/CSS-eket?
  • Jártas vagy az SVG használatában?
  • Hogyan alakítasz egy weboldalt nyomtatóbaráttá?
  • Mik a legjobb “ötletek” a hatékony CSS kód írásához?
  • Használsz CSS előfeldolgozó technilógiát? (SASS, Compass, Stylus, LESS)
    • Ha igen mit szeretsz és mit nem szeretsz bennük?
  • Hogyan valósítasz meg egy olyan dizájn kompozíciót, ami nem a szabványos betűtípusokat tartalmazza?
  • Miként határozza meg a böngésző a megfelelő CSS szelektort?
  • Hogyan értelmezed a “box model”-t és hogyan alkalmazod a böngészőkben?
  • Mit csinál a * { box-sizing: border-box; }? Mik az előnyei?
  • Sorold fel a display tulajdonság annyi értékét amennyit tudsz.
  • Mi a különbség az inline és az inline-block között?
  • Mi a különbség a relative , fixed, absolute és statikusan pozicionált elemek között?
  • A ‘C’ feloldása a CSS-ben a cascading (lépcsőzetes). Hogy van a prioritás meghatározva a stílusok közt (néhány példával)? Hogy használhatod ezt a rendszert a saját előnyödre?
  • Használtál már CSS keretrendszert? (Bootstrap, PureCSS, Foundation stb.)
  • Ha igen, melyiket? Ha tehetnéd, hogy változtatnád/fejlesztenéd tovább?
  • Foglalkoztál már az új CSS Flexbox és Grid specifikációkkal?
  • Miben más a reszponzív design és az adaptív design?
  • Dolgoztál már retina grafikával? Ha igen, milyen teknikákat használtál?

####[⬆] JS kérdések:

  • Mit jelent az event delegation?
  • Magyarázd el hogyan működik a this a JavaScript-ben.
  • Hogyan működik a protokol öröklés (prototypal inheritance)?
  • Hogyan teszteled a JavaScript kódodat?
  • AMD vs. CommonJS?
  • Mi a hashtábla?
  • Miért nem működik a következő kód IIFE-ként? function foo(){ }();
    • Mit kell megváltoztatni, hogy működjön?
  • Mit jelent az undefined és az undeclared változó?
    • Miként ellenőrzöd ezeket?
  • Mi a “closure”, milyen formáit ismered és hogyan használod azokat?
  • Hogyan néz ki egy anoním funkció?
  • Magyarázd el a JavaScript modul sablont és, hogy mikor használjuk.
    • Bónusz pont, ha említi a tiszta “namespace”-ket.
    • Mi történik akkor, ha a modul “namespace” mentes?
  • Miként rendszerezed a kódodat? (module pattern, classical inheritance)
  • Mi a különbség hoszt objektum és natív objektum között?
  • Mi a különbség az következő kódok között:
    function Person(){}, var person = Person() és var person = new Person()
  • Mi a különbség a .call és az .apply között?
  • Magyarázd el mire jó a Function.prototype.bind?
  • Mikor szoktad optimalizálni a kódodat?
  • Magyarázd el hogyan működik az öröklődés szabálya a JavaScript-ben?
  • Mikor használod a document.write() funkciót?
    • A legtöbb generált hírdetésben még mindig használják annak ellenére, hogy nem ajánlatos.
  • Mi a különbség a “feature” észlelés (detection), “feature” következtetés (inference) és az UA sztring használata között?
  • Magyarázd meg az AJAX működését a lehető legrészletesebben.
  • Magyarázd el, hogyan működik a JSONP (és miért nem AJAX valójában).
  • Használtál már JavaScript template rendszert?
    • Ha igen mit? (Mustache.js, Handlebars, stb.)
  • Mit jelent a “hoisting”?
  • Mit jelent az event bubbling?
  • Mi a különbség az “attribute” és a “property” között?
  • Miért nem jó ötlet kiegészíteni a beépített JavaScript objektumokat?
  • Miért jó ötlet kiegészíteni a bepített funkciókat?
  • Mi a különbség a “document load” és a “document ready” között?
  • Mi a különbség == és === között?
  • Hogyan olvasol be egy paramétert a böngésző ablak URL-ből?
  • Mit jelent a “same-origin” szabály a JavaScript-bet?
  • Ismertesd a JavaScript öröklési mintáját.
  • Javítsd ki az alábbi példát:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • írj le egy memorizáló stratégiát (ismétlődő kalkulációk nélkül) JavaScriptben.
  • Mit nevezünk “Ternary” kifejezésnek? Mire utal a “Ternary” szó?
  • Mennyi attribútumot lehet átadni egy funkciónak?
  • Mi a "use strict";, mik az előnyei és a hátrányai?
  • Készíts egy ciklust ami 100-ig számol, minden 3-al osztható számnál kiírja hogy “fizz”, minden 5-el osztható számnál kiírja hogy “buzz”, és minden 3-al és 5-el is osztható számnál kiírja hogy “fizzbuzz”
  • Általánosságban miért jó ötlet a weboldal global scope-ját érintetlenül hagyni?

####[⬆] jQuery kérdések:

  • Mit jelent a chaining?
  • Mit jelent a deferreds?
  • Milyen jQuery specifikus optimalizálást ismersz?
  • Mire használhatjuk az .end() funkciót?
  • Hogyan neveznél el egy kapcsolt esemény kezelőt (bound event handler) és miért?
  • Nevezz meg 4 különböző értéket, ami átadható egy jQuery folyamatnak.
    • Szelektor (sztring), HTML (sztring), Callback (funkció), HTMLElement, objektum, tömb, elemb tömb, jQuery objektum, stb.
  • Mit jelent az effektek (vagy fx) sorba állítas?
  • Mi a különbség .get(), [], és .eq() között?
  • Mi a különbség .bind(), .live(), és .delegate() között?
  • Mi a különbség $ és $.fn között? Vagy mit jelent a $.fn?
  • Optimalizáld a alábbi szelektort:
$(".foo div#bar:eq(0)")

####[⬆] Példakódok:

modulo(12, 5) // 2

Kérdés: Készítsd el a modulo funkció, hogy a fenti példa eredménye 2 legyen.

"i'm a lasagna hog".split("").reverse().join("");

Kérdés: Milyen értékkel tér vissza a fenti állítás?

Válasz: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Kérdés: Mi az értéke a window.foo-nak?

Válasz: “bar” (de csak ha a window.foo hamis egyébként megtartja az értékét.)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Kérdés: Mi a fenti két alert-nek a kimenete?

Válasz: “Hello World” és ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Kérdés: Mi a foo.length értéke?

Válasz: 2

####[⬆] Választható és vicces kérdések:

  • Mi a legjobb dolog, amit eddig kódoltál? Mire vagy a legbüszkébb?
  • Mi a kedvenced az általad használt fejlesztői eszközökben?
  • Van dédelgetett projekted? Ha igen, milyen?
  • Mit szeretsz a legjobban az Internet Explorerben?

####[⬆] További referenciák:

\ No newline at end of file diff --git a/_site/translations/index.html b/_site/translations/index.html new file mode 100644 index 000000000..e2fc1e625 --- /dev/null +++ b/_site/translations/index.html @@ -0,0 +1 @@ +Translations ★ Front-end Job Interview Questions
\ No newline at end of file diff --git a/_site/translations/indonesian/index.html b/_site/translations/indonesian/index.html new file mode 100644 index 000000000..136cadeb7 --- /dev/null +++ b/_site/translations/indonesian/index.html @@ -0,0 +1 @@ +Daftar Pertanyaan Wawancara Kerja Front-End ★ Front-end Job Interview Questions

Daftar Pertanyaan Wawancara Kerja Front-End

Daftar Pertanyaan Wawancara Kerja Front-End

File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancarai calon pekerja. Namun, bukan berarti anda dianjurkan untuk bertanya kepada si calon pekerja dengan semua pertanyaan dari daftar di bawah ini (karena itu akan memakan waktu beberapa jam). Dengan cukup memilih beberapa pertanyaan dari daftar ini akan membantu anda mengenal kemampuan yang anda cari dari si calon pekerja.

Catatan: Perlu diingat bahwa kebanyakan pertanyaan-pertanyaan ini bersifat terbuka dan mungkin dapat mengarah menjadi diskusi menarik yang bisa memberikan gambaran lebih lanjut mengenai kemampuan seseorang.

Daftar Isi

  1. Pertanyaan Umum
  2. Pertanyaan HTML
  3. Pertanyaan CSS
  4. Pertanyaan JS
  5. Pertanyaan Pengujian
  6. Pertanyaan Kinerja
  7. Pertanyaan Jaringan
  8. Pertanyaan Koding
  9. Pertanyaan Seru / Sampingan

Cara Partisipasi

  1. Kontributor
  2. Cara Kontribusi
  3. Lisensi

Pertanyaan Umum:

  • Apa yang baru Anda pelajari kemarin / minggu ini?
  • Apa yang membuatmu tertarik dengan coding?
  • Tantangan teknis apa yang baru-baru ini Anda hadapi, dan bagaimana Anda mengatasinya?
  • Pertimbangan-pertimbangan apa yang Anda ambil dari sisi UI, Keamanan, Kinerja, SEO, Maintainability maupun Teknologi saat Anda membangun aplikasi web atau situs?
  • Jelaskan tentang lingkungan coding yang Anda sukai. (OS, Editor atau IDE, Browser, Tools, dll)
  • Sistem kontrol versi apa saja yang Anda kenali?
  • Dapatkah Anda menjelaskan alur kerja Anda ketika Anda membuat sebuah situs?
  • Katakan Anda memiliki 5 stylesheet yang berbeda, bagaimana cara terbaik untuk mengintegrasikannya ke situs Anda?
  • Dapatkah Anda menjelaskan perbedaan antara progressive enhancement dan graceful degradation?
  • Bagaimana Anda mengoptimalkan aset / resource sebuah website?
  • Berapa banyak resource yang didownload oleh browser dari domain pada suatu waktu?
    • Apa saja pengecualiannya?
  • Sebutkan 3 cara untuk mengurangi beban halaman (waktu yang dirasakan maupun waktu loading yang sebenarnya).
  • Jika Anda mendapatkan sebuah proyek, dan dalam proyek ini mereka menggunakan tab dan Anda menggunakan space, apa yang akan Anda lakukan?
  • Jelaskan bagaimana Anda membuat halaman slideshow sederhana.
  • Jika Anda bisa mempelajari satu teknologi tahun ini, apakah itu?
  • Jelaskan pentingnya standar dan badan-badan standar.
  • Apa itu Flash of Unstyled Content alias FOUC? Bagaimana Anda menghindari FOUC?
  • Jelaskan apa itu ARIA dan screenreader, dan bagaimana membuat sebuah website dapat diakses.
  • Jelaskan beberapa pro dan kontra animasi CSS dibandingkan animasi JavaScript.
  • Apa arti CORS dan tujuannya?

Pertanyaan HTML:

  • Apa yang doctype lakukan?
  • Apa perbedaan antara modus standar dan modus quirks?
  • Apa perbedaan antara HTML dan XHTML?
  • Apakah ada masalah dengan melayani halaman sebagai aplikasi/xhtml+xml?
  • Bagaimana Anda melayani halaman dengan konten dalam berbagai bahasa?
  • Apa saja hal yang harus Anda waspadai ketika mendesain atau mengembangkan situs multibahasa?
  • Apa kegunaan atribut data-?
  • Katakan HTML5 adalah platform web terbuka, apa saja yang membentuk HTML5?
  • Jelaskan perbedaan antara cookie, sessionStorage dan localStorage.
  • Jelaskan perbedaan antara <script>, <script async> dan <script defer>.
  • Mengapa meletakkan <link> CSS di antara <head></head> dan meletakkan <script> JS sebelum <body></body> dianggap baik pada umumnya? Apakah ada pengecualiannya?
  • Apa itu progressive rendering?
  • Apakah Anda pernah menggunakan bahasa HTML templating yang berbeda?
  • Jelaskan perbedaan antara GET danPOST.

Pertanyaan CSS:

  • Apa perbedaan antara class dan id dalam CSS?
  • Apa perbedaan antara reset dan normalisasi dalam CSS? Apa yang Anda pilih, dan kenapa?
  • Jelaskan float dan cara kerjanya.
  • Jelaskan z-index dan bagaimana susunan konteks terbentuk.
  • Apa saja teknik-teknik kliring, dan yang mana sesuai untuk konteks apa?
  • Jelaskan sprite CSS, dan bagaimana Anda implementasikan pada suatu halaman atau situs.
  • Apa teknik pengganti gambar favorit Anda? Dan yang mana akan Anda gunakan, lalu kapan digunakan?
  • Bagaimana anda menghadapi masalah styling yang spesifik pada browser?
  • Bagaimana Anda melayani halaman untuk browser dengan fitur terbatas?
    • Teknik / contents apa yang Anda gunakan?
  • Apa saja cara-cara untuk menyembunyikan suatu konten secara visual (dan membuatnya tersedia hanya untuk pembaca layar / screenreader)?
  • Apakah Anda pernah menggunakan sistem grid, dan jika pernah, apa yang lebih Anda sukai?
  • Apakah Anda pernah menggunakan atau menerapkan media query atau layout / CSS khusus untuk mobile?
  • Apakah Anda fasih dengan styling SVG?
  • Bagaimana Anda mengoptimalkan halaman web Anda untuk dicetak?
  • Apa saja yang perlu diwaspadai dalam menulis CSS yang efisien?
  • Apa keuntungan / kerugian dari menggunakan precontentsor CSS? (Sass, Compass, Stylus, LESS)
    • Jelaskan apa yang Anda sukai dan tidak sukai dari precontentsor CSS yang pernah Anda gunakan.
  • Bagaimana Anda akan menerapkan desain web comp yang menggunakan font non-standar?
  • Jelaskan bagaimana browser mencocokan suatu elemen dengan selector CSS.
  • Jelaskan apa itu pesudo-element dan bagaimana penggunaannya.
  • Jelaskan pemahaman Anda tentang model kotak, dan bagaimana Anda memberitahu suatu browser dalam CSS untuk menggunakan layout model kotak yang mana.
  • Apa yang terjadi dengan ini : { box-sizing: border-box; }? Apa keuntungannya?
  • Sebutkan sebanyak mungkin value untuk properti display yang anda ingat.
  • Apa perbedaan antara inline dan inline-block?
  • Apa perbedaan antara elemen yang diposisikan secara relative, fixed, absolute, dan static?
  • Huruf ‘C’ dalam CSS adalah singkatan dari Cascading. Bagaimana cara kerja prioritas dalam menentukan stylenya (berikan beberapa contoh)? Bagaimana Anda bisa menggunakan sistem ini untuk keuntungan Anda?
  • Framework CSS apa yang pernah Anda gunakan secara lokal, maupun dalam produksi? (Bootstrap, PureCSS, Foundation dll). Dan kalau bisa, bagaimana Anda ingin mengubah / memperbaikinya?
  • Apakah Anda pernah mencoba CSS Flexbox yang baru atau Grid specs?
  • Bagaimana desain responsif berbeda dari desain adaptif?
  • Apakah Anda pernah bekerja dengan grafis retina? Jika ya, kapan dan teknik apa yang Anda gunakan?
  • Apakah Anda mempunyai alasan untuk menggunakan translate() dibandingkan posisi absolute, ataupun sebaliknya? Kenapa?

Pertanyaan JS:

  • Jelaskan event delegation.
  • Jelaskan bagaimana cara kerja this dalam JavaScript.
  • Jelaskan cara kerja inheritance prototype.
  • Apa pendapat Anda mengenai AMD dan CommonJS?
  • Jelaskan mengapa berikut ini tidak bekerja sebagai IIFE: function foo () {} ();.
    • Apa yang perlu diubah untuk membuatnya sebagai IIFE?
  • Apa perbedaan antara variabel: null,undefined dan undeclared?
    • Bagaimana Anda menguji status-status variabel ini?
  • Apa itu closure, dan bagaimana / mengapa Anda akan menggunakannya?
  • Bagaimana biasanya fungsi anonim (anonymous function) digunakan?
  • Bagaimana Anda mengatur kode Anda? (pola modul, warisan klasik?)
  • Apa perbedaan antara host object dan native object?
  • Apa perbedaan antara: function Person(){}, var person = Person(), dan var person = new Person()?
  • Apa perbedaan antara .call dan.apply?
  • Jelaskan Function.prototype.bind.
  • Kapan saja document.write () digunakan?
  • Kapan saja Anda mengoptimalkan kode Anda?
  • Apa perbedaan antara fitur deteksi, fitur inferensi, dan penggunaan string UA?
  • Jelaskan AJAX sedetail mungkin.
  • Apa keuntungan dan kerugian menggunakan AJAX?
  • Jelaskan bagaimana cara kerja JSONP (dan bagaimana itu bukan AJAX).
  • Apakah Anda pernah menggunakan JavaScript template?
    • Kalau ya, library apa yang pernah Anda gunakan? (Mustache.js, Handlebars dll.)
  • Jelaskan “hoisting”.
  • Jelaskan event bubbling.
  • Apa perbedaan antara “atribut” dan “properti”?
  • Mengapa tidak baik meng-extend object Javascript built-in?
  • Apa perbedaan antara document load dan document ready?
  • Apa perbedaan antara == dan ===?
  • Jelaskan kebijakan same-origin dalam konteks JavaScript.
  • Kerjakan ini :
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Mengapa disebut ekspresi Ternary, dan apa maksud “Ternary”?
  • Apa itu "use strict";? Apa keuntungan dan kerugian dalam penggunaannya?
  • Buatkan loop yang beriterasi sampai 100, dan print “fizz” pada kelipatan 3, “buzz” pada kelipatan 5 dan “fizzbuzz” pada kelipatan 3 dan 5.
  • Kenapa pada umumnya, lebih baik membiarkan scope global dalam suatu website sebagai apa adanya dan jangan diutak-atik?
  • Kenapa load event digunakan? Apakah event ini mempunyai kerugiannya? Apakah Anda tau cara alternatif lain, dan kenapa Anda menggunakan cara itu?
  • Jelaskan apa itu single page app, dan bagaimana membuatnya ramah SEO?
  • Sejauh apa pengalaman Anda dengan promise dan / atau polyfills?
  • Apakah pro dan kontrak menggunakan promise dibandingkan callback?
  • Apa keuntungan / kerugian menulis kode JavaScript dalam bahasa yang kompile ke JavaScript?
  • Program dan teknik apa yang Anda gunakan dalam mendebug kode Javascript?
  • Konstruksi bahasa apa yang Anda gunakan untuk mengiterasi properti objek dan array?
  • Jelaskan perbedaan antara object mutable dan immutable
    • Apa contoh objek immutable dalam JavaScript?
    • Apa pro dan kontra immutability?
    • Bagaimana Anda mencapai immutability dalam kode Anda?
  • Jelaskan perbedaan antara fungsi synchronous dan asynchronous
  • event loop itu apa?
  • Perbedaan antara call stack dan task queue itu apa?

Pertanyaan Pengujian

  • Apakah keuntungan / kerugian menguji kode Anda?
  • Program apa yang Anda gunakan untuk menguji kinerja kode Anda?
  • Apa saja perbedaan antara tes unit dan tes fungsi/integrasi?
  • Apakah tujuan program lint?

Pertanyaan Kinerja

  • Tool apa yang Anda gunakan untuk mencari masalah kinerja dalam kode Anda?
  • Apa saja cara-cara yang dapat meningkatkan kinerja scrolling dalam website Anda?
  • Jelaskan perbedaan antara layout, painting, dan compositing.

Pertanyaan Jaringan:

  • Secara tradisional, mengapa lebih baik untuk melayani aset situs dari beberapa domain?
  • Jelaskan semampu Anda, bagaimana contents kerja dari saat Anda mengetikkan URL situs web sampai saat halamannya selesai tampil di layar Anda.
  • Apakah perbedaan antara Long-Polling, Websockets dan Server-Sent Events (SSE)?
  • Jelaskan request dan response header berikut ini:
    • Perbedaan antara Expires, Date, Age dan If-Modified-…
    • Do Not Track (DNT)
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • aksi HTTP itu apa? Sebutkan aksi-aksi HTTP yang Anda tahu, dan jelaskan.

Pertanyaan koding:

Pertanyaan: Apakah hasil foo?

var foo = 10 + '20';

Pertanyaan: Bagaimana Anda akan membuat fungsi berikut ini bekerja?

add(2, 5); // 7
add(2)(5); // 7

Pertanyaan: Apakah hasil yang akan dikembalikan dari pernyataan berikut?

"i'm a lasagna hog".split("").reverse().join("");

Pertanyaan: Apakah nilai window.foo?

( window.foo || (window.foo = "bar") );

Pertanyaan: Apakah hasil dari dua alert di bawah ini?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pertanyaan: Apakah hasil foo.length?

var foo = [];
foo.push (1);
foo.push (2);

Pertanyaan: Apakah hasil foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pertanyaan: Apakah hasil yang akan diprint dalam kode berikut ini?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Pertanyaan Seru / Sampingan:

  • Apa saja proyek menarik yang baru-baru ini Anda kerjakan?
  • Apa sajakah hal-hal yang Anda sukai tentang alat pengembang yang Anda gunakan?
  • Apakah Anda mempunyai proyek yang anda sukai? Apa saja?
  • Apa fitur favorit Anda di Internet Explorer?
  • Apa tipe kopi favorit Anda?

Contributors:

Dokumen ini dimulai pada tahun 2009 sebagai kolaborasi dari @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed dan @iansym.

Dari sejak itu, dokumen ini sudah menerima kontribusi lebih dari 100 developers.

\ No newline at end of file diff --git a/_site/translations/italian/index.html b/_site/translations/italian/index.html new file mode 100644 index 000000000..cbfe99f7e --- /dev/null +++ b/_site/translations/italian/index.html @@ -0,0 +1 @@ +Domande per il colloquio di lavoro per front-end ★ Front-end Job Interview Questions

Domande per il colloquio di lavoro per front-end

Domande per il colloquio di lavoro per front-end

Questo repository contiene una serie di domande che possono essere usate nei colloqui di lavoro quando si esaminano i potenziali candidati per il ruolo di front-end. Non è affatto consigliato usare ogni singola domanda con lo stesso candidato (richiederebbe ore). Scegliere alcune di queste domande dalla lista dovrebbe aiutarti ad esaminare le skill che richiedi.

L’articolo Baseline For Front-End Developers di Rebecca Murphey è un’ottima risorsa da leggere prima di affrontare un colloquio.

Nota: Tieni presente che molte di queste domande sono a risposta aperta e possono portare a interessanti discussioni che ti possono far capire le capacità di una persona più di quello che farebbe una risposta diretta.

Indice dei Contenuti

  1. Collaboratori Originali
  2. Domande Generali
  3. Domande Specifiche su HTML
  4. Domande Specifiche su CSS
  5. Domande Specifiche su JS
  6. Domande Specifiche su jQuery
  7. Domande con Codice
  8. Domande per Divertimento
  9. Altre Ottime Risorse

####[⬆] Collaboratori Originali:

La maggior parte delle domande sono state prese da una discussione su oksoclap originariamente creata da Paul Irish (@paul_irish) e con il contributo delle seguenti persone:

####[⬆] Domande Generali:

  • Cosa hai imparato ieri/questa settimana?
  • Cosa ti entusiasma o ti interessa della programmazione?
  • Qual è una sfida tecnica che hai incontrato e come l’hai risolta?
  • Quali considerazioni fai riguardo alla UI, alla Sicurezza, alle Prestazioni, al SEO, alla Manutenibilità o alla Tecnologia mentre costruisci una applicazione web o un sito?
  • Parla del tuo ambiente di sviluppo preferito. (Sistema Operativo, Editor di testo, Browser, Strumenti ecc.)
  • Con quali sistemi di controllo di versione [VCS] hai familiarità?
  • Puoi descrivere il tuo metodo di lavoro quando crei una pagina web?
  • Se avessi 5 fogli di stile differenti, come ti comporteresti per integrarli al meglio nel sito?
  • Puoi descrivere la differenza tra miglioramento progressivo [progressive enhancement] e degradazione elegante [graceful degradation]?
  • Come ottimizzeresti le risorse/asset di un sito?
  • Quante risorse scaricherà per volta un browser da uno specifico dominio?
    • Quali sono le eccezioni?
  • Citami 3 modi per diminuire il caricamento della pagina. (percepito o effettivo tempo di caricamento)
  • Se cominci a lavorare su un progetto già iniziato dove vengono usati tab invece di spazi, cosa fai?
  • Descrivi come creeresti una semplice pagina con slideshow.
  • Se avessi la possibilità id diventare esperto in una tecnologia, quale sceglieresti?
  • Spiega l’importanza degli standard e degli enti di normazione.
  • Cosa è il FOUC? Come eviti il FOUC?
  • Spiega cosa sono ARIA e lettori di schermo [screenreaders] e come rendere un sito web accessibile.
  • Spiega alcuni dei pro e contro delle animazioni CSS rispetto alle animazioni Javascript.

####[⬆] Domande su HTML:

  • Cosa fa il doctype?
  • Qual è la differenza tra standard mode e quirks mode?
  • Qual è la differenza tra HTML e XHTML?
  • Ci sono dei problemi a servire le pagine come application/xhtml+xml?
  • Come servi una pagina con il contenuto in più lingue?
  • A cosa devi far attenzione quando progetti o sviluppi siti multilingua?
  • Per cosa sono utili gli attributi data-?
  • Considera HTML5 come una piattaforma web aperta. Quali sono i mattoni di HTML5?
  • Descrivi le differenze tra cookie, sessionStorage e localStorage.
  • Descrivi la differenza tra <script>, <script async> e <script defer>.
  • Perche è generalmente una buona idea posizionare CSS <link> tags all’interno di <head></head> e Javascript <script> tags appena prima di </body>? Conosci eccezioni?
  • Cos’è il rendering progressivo [progressive rendering]?
  • Hai mai utilizzato differeti liguaggi di templating HTML prima?

####[⬆] Domande Specifiche su CSS:

  • Descrivi cosa fa un file CSS “reset” e in cosa è utile.
  • Descrivi i Float e come funzionano.
  • Quali sono le varie tecniche di clearing e quale è appropriata per quale contesto?
  • Spiega gli sprite CSS, e come li implementeresti in una pagina o in un sito.
  • Quali sono le tue tecniche di sostituzione immagini [image replacement] preferite e quale usi quando?
  • Hack delle proprietà CSS, file .css inclusi con condizioni, o… altro?
  • Come servi le tue pagine per i browser con funzionalità limitate?
    • Che tecniche/processi usi?
  • Quali sono i vari modi per nascondere visualmente il contenuto (e renderlo disponibile solo per gli screen reader)?
  • Hai mai usato un sistema di griglie [grid system], e se sì, qual è il tuo preferito?
  • Hai mai usato o implementato media queries o CSS/layout specifici per mobile?
  • Familiarità con lo styling SVG?
  • Come ottimizzi le tue pagine web per la stampa?
  • Quali sono alcuni dei “trucchi” per scrivere CSS efficiente?
  • Quali sono i vantaggi/svantaggi nell’usare i preprocessori CSS? (SASS, Compass, Stylus, LESS)
    • Se sì, descrivi cosa ti piace e cosa non ti piace dei preprocessori CSS che hai usato.
  • Come implementeresti una grafica web che usa font non standard?
    • Webfonts (servizi di font tipo: Google Webfonts, Typekit, ecc…)
  • Spiega come un browser determina quali elementi corrispondono a un selettore CSS.
  • Spiega la tua comprensione del box model e come useresti i CSS per dire al browser di rappresentare il tuo layout nei vari box model.

####[⬆] Domande Specifiche su JS:

  • Spiega l’event delegation.
  • Spiega come funziona this in JavaScript.
  • Spiega come funziona l’ereditarietà prototipale [prototypal inheritance].
  • Come fai a testare il tuo codice JavaScript?
  • AMD contro CommonJS?
  • Cosa è una hashtable?
  • Spiega perché il seguente codice non funziona come UN IIFE: function foo(){ }();.
    • Cosa c’è bisogno di cambiare per renderlo correttamente un IIFE?
  • Quale è la differenza tra una variabile che è: null, undefined or undeclared?
    • Come faresti per controllare questi stati?
  • Cosa è una chiusura [closure], e come/perché ne useresti una?
  • Qual è l’uso tipico di una funzione anonima?
  • Spiega il “JavaScript module pattern” e quando lo useresti.
    • Punti bonus se menziona namespacing pulito.
    • E se i tuoi moduli sono senza namespace?
  • Come organizzi il tuo codice? (module pattern, ereditarietà classica?)
  • Qual è la differenza tra oggetti host e oggetti nativi?
  • Differenza tra: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual è la differenza tra .call e .apply?
  • Spiega Function.prototype.bind?
  • Quando ottimizzi il tuo codice?
  • Puoi spiegare come funziona l’ereditarietà in JavaScript?
  • Quando useresti document.write()?
    • La maggior parte delle pubblicità usa document.write() sebbene il suo utilizzo venga malvisto
  • Qual è la differenza tra il rilevamento di funzionalità [feature detection], la deduzione di funzionalità [feature inference], e l’uso della stringa UA
  • Spiega AJAX nel modo più dettagliato possibile
  • Spiega come funziona JSONP (e come non è veramente AJAX)
  • Hai mai usato il templating JavaScript?
    • Se se sì, quali librerie hai utilizzato? (Mustache.js, Handlebars ecc…)
  • Spiega “hoisting”.
  • Descrivi l’event bubbling.
  • Qual è la differenza tra un “attribute” e una “property”?
  • Perché extending built negli oggetti JavaScript non è una buona idea?
  • Perché extending built è una buona idea?
  • Differenza tra l’evento document load e l’evento document ready?
  • Qual è la differenza tra == e ===?
  • Spiega come prenderesti il parametro query string dall’URL della finestra del browser.
  • Spiega la policy “stessa origine” [same-origin] per quanto riguarda JavaScript.
  • Descrivi i pattern di ereditarietà in JavaScript.
  • Cosa ottieni da:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Descrivi la tecnica della memoizzazione (evitando la ripetizione del calcolo) in JavaScript.
  • Perché è chiamata espressione Ternaria, cosa indica la parola “Ternaria”?
  • Cosa è l’arietà di una funzione?
  • Cosa è "use strict";? Quali sono i vantaggi e gli svantaggi nell’usarlo?

####[⬆] Domande Specifiche su jQuery:

  • Spiega la “concatenazione” [chaining].
  • Spiega “deferreds”.
  • Quali sono alcune ottimizzazioni specifiche per jQuery che puoi implementare?
  • Cosa fa .end()?
  • Come, e perché, assegneresti un namespace al gestore di un evento?
  • Citami 4 differenti valori che puoi passare al metodo jQuery.
    • Selettore [selector] (testo), HTML (testo), Callback (funzione), HTMLElement, oggetti, array, element array, oggetto jQuery, ecc…
  • Cosa è la coda di effetti [fx queue]?
  • Qual è la differenza tra .get(), [], e .eq()?
  • Qual è la differenza tra .bind(), .live(), e .delegate()?
  • Qual è la differenza tra $ e $.fn? O anche solo cosa è $.fn.
  • Ottimizza questo selettore:
$(".foo div#bar:eq(0)")

####[⬆] Domande con Codice:

modulo(12, 5) // 2

Domanda: Implementa la funzione modulo che soddisfi quanto sopra

"i'm a lasagna hog".split("").reverse().join("");

Domanda: Quale valore viene ritornato dalla dichiarazione qui sopra?

Risposta: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Domanda: Qual è il valore di window.foo?

Risposta: “bar” (solo se window.foo era falso altrimenti manterrà il suo valore)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Domanda: Qual è il risultato dei due alert qui sopra?

Risposta: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Domanda: Qual è il valore di foo.length?

Risposta: 2

####[⬆] Domande per Divertimento:

  • Qual è la cosa più bella che hai mai sviluppato, di cosa sei più orgoglioso?
  • Quali sono le tue parti preferite degli strumenti di sviluppo che usi?
  • Hai qualche progetto personale? Di che tipo?
  • Qual è la tua feature preferita di Internet Explorer?

####[⬆] Altre Ottime Risorse:

\ No newline at end of file diff --git a/_site/translations/japanese/index.html b/_site/translations/japanese/index.html new file mode 100644 index 000000000..ccbba85e9 --- /dev/null +++ b/_site/translations/japanese/index.html @@ -0,0 +1 @@ +フロントエンドデベロッパー面接時の質問事項 ★ Front-end Job Interview Questions

フロントエンドデベロッパー面接時の質問事項

フロントエンドデベロッパー面接時の質問事項

@バージョン 2.0.0

本レポジトリはフロントエンドデベロッパー志願者のポテンシャルを見極めるのに有効な面接時の質問事項を列挙します。全ての下記質問事項を一人の志願者に聞くことは推奨されません(それは数時間もかかってしまうでしょう)。あなたが必要としているスキルを見極めるためには、下記の質問リストからいくつかの項目を選択するのがよいでしょう。

Rebecca MurpheyBaseline For Front-End Developersもとても参考になるので面接前によく読むことをおすすめします。

注意: これらの質問の多くはオープンエンド型の質問であり、志願者から興味深い考えを引き出すことができるでしょう。この回答は単純でストレートな回答よりもより志願者の能力を見極めるのに役立ちます。

オリジナルのコントリビューター

質問の多くはPaul Irish (@paul_irish)と下記のコントリビューターによって作成されたoksoclapスレッドをもとに作成されています。

一般的な質問事項

  • 昨日・今週に何を学びましたか?
  • 何があなたをコーディングに惹きつけていますか?
  • 最近直面した技術的な困難はどんなものですか?また、それをどのように解決しましたか?
  • ウェブアプリやウェブサイトを構築する際にユーザーインターフェース、パフォーマンス、SEO、メンテナンス性などについてどのように考えますか?
  • 好きな開発環境について教えてください。(OS、エディタ、ブラウザ、ツール等)
  • webページを作るときのあなたのワークフローを教えてください。
  • どのバージョン管理ツールに慣れていますか?(Git, SVNなど)
  • 5つの異なるスタイルシートをウェブサイトに統合する最適な方法はどんなものですか?
  • プログレッシブエンハンスメントとグレースフルデグラデーションの違いを説明してください。
  • ウェブサイトのアセット・リソースの最適化をどのように行いますか?
    • 下記のようないくつかのソリューションが期待されます。
      • ファイル結合
      • ファイルの縮小
      • CDNホスティング
      • キャッシュ利用
      • など
  • 複数のドメインからアセットを提供したほうがよい理由は何ですか?
  • 一度にブラウザが与えられたドメインからダウンロードできるリソースの数はいくつですか?
    • 例外は何ですか?
  • ページロードを減らす3つの方法を挙げてください。
  • プロジェクトに加入したときに、もし彼らがタブを使い、あなたがスペースを使っていたとしたらどうしますか?
    • EditorConfig (http://editorconfig.org) といったプラグインを利用するように提案する
    • 慣習に従う (一貫性を保つ)
    • issue :retab! command
  • シンプルなスライドショーのページを書いてください。
    • JSを使わなかったらボーナスポイント。
  • コードのパフォーマンスをテストするのにどんなツールを使いますか?
    • プロファイラー、JSPerf、Dromaeo
  • もし今年1つの技術をマスターできるとしたら、何をマスターしますか?
  • 標準化と標準化団体の重要性を説明してください。
  • FOUCとは何ですか? どのようにFOUCを防ぐことができますか?
  • ARIAとスクリーンリーダーとはなにか、またそれらがウェブサイトをどのようにアクセシブルにするか説明してください。
  • CSSアニメーションとJavaScriptアニメーションのそれぞれの利点と欠点を幾つか説明してください。
  • CORSとは何の省略ですか?また、それはどんな問題を表しますか?

HTMLに関する質問事項

  • doctypeは何をしているか説明してください。
  • スタンダードモードとクアークスモードの違いは何ですか?
  • XHTMLページを提供するときの制限は何ですか?
    • application/xhtml+xmlとしてページを提供することに何か問題はありますか?
  • 多言語でコンテンツをどのように提供しますか?
    • 多言語化サイトのデザイン・開発時にどのようなことに注意すべきですか?
  • data-属性は何にとって良いですか?
  • HTML5をオープンなWEBプラットフォームとしてみなしましょう。HTML5の基本的な構成要素は何ですか?
  • クッキー、セッションストレージ、ローカルストレージの違いを述べてください。

JSに関する質問事項

  • イベントデリゲーションを説明してください。
  • JavaScriptにおいてthisがどのように機能するか説明してください。
  • プロトタイプ継承がどのように機能するか説明してください。
  • JavaScriptをテストするのにどのように対処しますか?
  • AMDとCommonJS、何が違いますか?
  • ハッシュテーブルとは何ですか?
  • undefinedundeclared変数は何ですか?
  • クロージャとは何ですか? どのように、そしてなぜそれを使うのですか?
    • クロージャを作成するときに使うあなたの好きなパターンは何ですか? (即時実行関数表現にのみ適用)
  • 匿名関数が有効な典型的なユースケースは何ですか?
  • 「JavaScriptモジュールパターン」とそれを使う場面を説明してください。
    • 名前空間について述べたらボーナスポイント。
    • もしモジュールが名前空間無しだとしたらどうなりますか?
  • コードをどのように整理しますか?(モジュールパターン、古典的な継承を使う?)
  • ホストオブジェクトとネイティブオブジェクトの違いは何ですか?
  • 下記コードの違いは何?function Person(){}, var person = Person(), var person = new Person()
  • .call.applyの違いは何ですか?
  • Function.prototype.bindを説明してください。
  • いつコードを最適化しますか?
  • JavaScriptにおいてどのように継承が機能しているか説明してください。
  • document.write()はいつ使いますか?
    • 生成される広告の多くはいまだに嫌われている方法であるdocument.write()を活用しています。
  • feature detection, feature inference, UA stringの使用の違いは何ですか?
  • AJAXをできるだけ詳しく述べてください。
  • JSONPがどのように機能するか述べてください。(またそれがどのようにAJAXとは異なっているのか)
  • JavaScriptテンプレートは使ったことはありますか?
    • 使ったことがあるのなら、何のライブラリを使いましたか?(Mustache.js, Handlebarsなど)
  • 「巻き上げ」を説明してください。
  • イベントバブリングを説明してください。
  • 「属性」と「プロパティ」の違いは何ですか?
  • どうしてビルトインJavaScriptを拡張することは良くないのですか?
  • ドキュメントロードイベントとドキュメントレディイベントの違いを述べてください。
  • =====の違いは何ですか?
  • ブラウザのウィンドウURLからクエリ文字列をどのように取得するかを説明してください。
  • JSに関するsame-origin policyを説明してください。
  • JavaScriptにおける継承パターンを述べてください。
  • 下記を動くように書き変えてください。
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • JavaScriptにおけるメモ化(計算の繰り返しの回避)の方針について述べてください。
  • 三項演算子と呼ばれる理由は何ですか? 「三項」という言葉が示していることは何ですか?
  • 関数のarityとは何ですか?
  • "use strict";とは何ですか? これを使うことのメリット、デメリットは何ですか?

JSコードの例

~~3.14

質問: 上ステートメントで得られる値は何ですか?
回答: 3

"i'm a lasagna hog".split("").reverse().join("");

質問: 上ステートメントで得られる値は何ですか?
回答: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

質問: window.fooの値は何ですか?
回答: "bar"
window.fooがfalseと判断される場合のみ。trueの場合はその値を保持し続ける。

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

質問: 上2つのアラートの結果はどうなりますか?
回答: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

質問: foo.lengthの値はどうなりますか?
回答: 2

var foo = {};
foo.bar = 'hello';

質問: foo.lengthの値はどうなりますか?
回答: undefined

jQueryに関する質問事項

  • 「chaining(チェイン)」を説明してください。
  • 「deferreds」を説明してください。
  • jQueryに関する最適化としてどんなことができますか?
  • .end()は何ですか?
  • イベントハンドラに名前空間を与えるにはどのようにすればいいですか。またなぜ名前空間を与えますか。
  • jQueryメソッドに渡すことができる4つの異なる値を挙げてください。
    • セレクター (string)、HTML (string)、コールバック (function)、HTMLエレメント、オブジェクト、配列、エレメントの配列、jQueryオブジェクト等
  • エフェクト(あるいはfx)キューとは何ですか?
  • .get()[].eq()の違いは何ですか?
  • .bind().live().delegate()の違いは何ですか?
  • $$.fnの違いは何ですか? 単に$.fnと書いた場合はどうですか?
  • 下記のセレクターを最適化してください:
$(".foo div#bar:eq(0)")
  • delegate()live()の違いは何ですか?

CSSに関する質問事項

  • ‘reset’ CSSファイルとは何ですか? またその有用性は何ですか?
  • フロートとそれらがどのように機能するかを説明してください。
  • フロートクリアの様々なテクニックは何ですか?その内のどれが適切でそれはどんな状況ですか?
  • CSSスプライトを説明してください。またページやサイトでそれをどのように実装しますか?
  • 1番好きな画像置き換えテクニックは何ですか?またいつどのテクニックを使いますか?
  • .cssファイルに含み得るCSSハックは何ですか?また.cssファイル以外ではどうしますか?
  • 機能が制限されたブラウザに対してどのようにページを提供しますか?
    • どんなテクニック、プロセスを使いますか?
  • コンテンツを視覚的に見えなくするのにどんな方法がありますか?(またスクリーンリーダーユーザーのみに見えるようにする方法は何ですか?)
  • グリッドシステムを使ったことはありますか? 使い続けたいと思いましたか?
  • メディアクエリ、あるいはモバイルに特化したレイアウト、CSSを組んだことはありますか?
  • SVGのスタイリングの知識は何かしら持っていますか?
  • 印刷用ページの最適化はどのように行いますか?
  • CSS記述における「gotchas(見落としがちなミス)」は何ですか?
  • CSSプリプロセッサのメリット、デメリットは何ですか?(SASS、Compass、Stylus、LESS)
    • 使ったことのあるCSSプリプロセッサについてそれの好きなところ、嫌いなところを説明してください。
  • 非標準のフォントを使用したwebデザインカンプをどのように実装しますか?
    • ウェブフォント(Googleウェブフォント、Typekit 等)
  • ブラウザがどのようにあるエレメントがどのCSSセレクタにマッチするかを決定しているかを説明してください。

その他の質問事項

  • あなたがコーディングした中で一番素晴らしいものは何ですか? 何が一番誇れますか?
  • あなたが使っている開発者ツールの一番好きなところは何ですか?
  • 何か暖めてるアイディアは持っていますか? それはどんなものですか?
  • インターネットエクスプローラーの最も好きな機能は何ですか?
\ No newline at end of file diff --git a/_site/translations/korean/index.html b/_site/translations/korean/index.html new file mode 100644 index 000000000..7dc423ed4 --- /dev/null +++ b/_site/translations/korean/index.html @@ -0,0 +1 @@ +프론트엔드 면접 문제 은행 ★ Front-end Job Interview Questions

프론트엔드 면접 문제 은행

프론트엔드 면접 문제 은행

이 파일에는 잠재적인 프론트엔드 개발자 후보를 선정할 때 사용할 수 있는 여러 가지 면접 질문들이 있습니다. 후보자에게 모든 문제를 사용하는 것은 많은 시간이 소요되기 때문에 추천하지 않습니다. 대신, 여러분이 요구하는 주요 기술과 관련된 질문들을 몇 가지 선정해서 사용해보세요.

참고: 여기 있는 많은 질문은 자유롭게 추가/수정/삭제될 수 있고 정답보다 그 사람의 능력에 관해 이야기하는 흥미로는 토론을 끌어낼 수 있다는 것을 기억하세요.

목차

  1. 일반적인 질문
  2. HTML 관련 질문
  3. CSS 관련 질문
  4. JS 관련 질문
  5. 테스트 관련 질문
  6. 성능 관련 질문
  7. 코딩 관련 질문

함께하기

  1. 함께하는 분들
  2. 함께하는 방법
  3. 라이선스

일반적인 질문:

  • 어제/이번 주에 무엇을 공부하셨나요?
  • 코딩을 할 때 당신을 들뜨게 하거나 흥미를 끄는 것들은 무엇은 가요?
  • 최근에 당신이 경험한 기술적인 문제는 무엇이고 그것을 어떻게 해결했나요?
  • 웹 애플리케이션이나 사이트를 만들 때 고려해야 할 UI, Security, Performance, SEO, Maintainability에 대해서 설명해주세요.
  • 선호하는 개발 환경에 대해 자유롭게 이야기해 주세요.
  • 버전 관리 시스템은 어떤 것들을 사용해보셨습니까?
  • 당신이 웹 페이지를 만들 때의 과정을 설명해주실 수 있을까요?
  • 당신에게 5가지 다른 stylesheet가 있습니다. 어떤 방법으로 사이트에 제공하는 게 가장 효과적일까요?
  • 점진적 향상법(progressive enhancement)과 우아한 성능저하법(graceful degradation)의 차이를 설명하실 수 있습니까?
  • 웹사이트에서 assets/resources를 최적화하는 방법에 관해 설명해주세요.
  • 브라우저가 한 번에 1개의 도메인에서 내려받는 자원은 몇 개인가요?
    • 예외에는 어떤 것들이 있나요?
  • 페이지 로드 시간을 줄이는 세 가지 방법에 관해서 이야기 해 보세요.
  • 당신이 프로젝트에 합류했습니다. 근데 그들은 Tab을 이용하고, 당신은 Space를 사용했습니다. 어떻게 하실 건가요?
  • 간단한 Slideshow 페이지를 만드는 방법에 관해서 이야기해 보세요.
  • 만약 당신이 올해 기술적 책임자가 되었다면 무엇을 먼저 하시겠습니까?
  • 표준의 중요성에 관해 설명해주세요.
  • Flash of Unstyled Content에 관해 설명해주세요. 또 FOUC를 피하기 위해선 어떻게 해야 하나요?
  • ARIA와 screenreader에 대해 설명해주세요. 또 접근성을 지원하는 웹사이트를 어떻게 만드는지에 대해도 설명해주세요.
  • CSS 애니메이션과 JavaScript 애니메이션의 차이점에 관해 설명해주세요.
  • CORS는 무엇의 약자이고 어떤 문제에 대해서 언급하는 것인가요?

HTML 관련 질문:

  • doctype이 무엇을 하는 것인가요?
  • 표준모드(standards mode)와 쿽스모드(quirks mode)의 다른 점은 무엇인가요?
  • XML과 XHTML의 다른 점은 무엇인가요
  • XHTML을 이용한 페이지의 한계점은 무엇이 있나요?
  • application/xhtml+xml으로 지정한 페이지에 어떠한 문제가 있나요?
  • 다국어가 포함된 페이지는 어떤 방식으로 제공하나요?
  • 다국어 페이지를 제공하는 여러 방법에 관해 설명해주세요.
  • data-속성은 무엇을 하는 것인가요? 사용했을 때 이점은 무엇인가요?
  • HTML5를 오픈 웹 플랫폼(open web platform)으로 생각해본다면, 어떤 것들로 구성돼 있을까요?
  • 쿠키(Cookies)세션저장소(sessionStorage)로컬저장소(localStorage)의 차이점을 설명해주세요.
  • <script>, <script async><script defer>의 차이점에 관해 설명해주세요.
  • CSS<link><head></head>사이에 쓰는 것과 JS<script><body></body>뒤에 사용하는 것은 좋은 사용법일까요? 어디에 배치하는 게 좋을까요?
  • Progressive rendering이란 무엇인가요?
  • 이미지 태그에 srcset 속성을 사용하는 이유는 무엇인가요? 브라우저가 이 속성을 가진 콘텐츠를 평가할 때 사용하는 과정을 설명해보세요.
  • HTML templating language를 사용해 본 경험이 있나요?

CSS 관련 질문:

  • class와 id의 차이점에 관해서 설명해주세요.
  • “reset” CSS가 무엇인지, 어떻게 유용한지 설명해주세요.
  • Floats가 어떻게 동작하는지 설명해주세요.
  • z-index에 관해 설명해주세요.
  • BFC(Block Formatting Context)에 관해 설명해주세요
  • 클리어링(Clearing) 기술에는 어떤 것들이 있으며, 어떨 때 어떻게 사용하는 것이 적절한지 설명하세요.
  • CSS 스프라이트(CSS Sprites)를 설명하고, 페이지나 사이트를 어떻게 향상하는지 설명하세요.
  • Image Replacement를 사용해야 할 때, 선호하는 기술과 언제 사용하는지를 설명해주세요.
  • 브라우저 스펙 차이에 따른 스타일링 이슈를 수정하기 위해서 어떻게 접근하나요?
  • 기능이 제약된 브라우저를 위해서 어떤 방식으로 페이지를 만드나요?
    • 어떠한 기술과 절차를 거치는지 설명하세요.
  • 시각적으로 보이지 않고 스크린 리더에서만 가능하게 하는 방법에 관해 설명해주세요.
  • 그리드 시스템(Grid system)을 사용한 적이 있나요? 있다면 어떠한 것을 선호하나요?
  • 미디어 쿼리(media queries)를 사용한 적이 있나요? 혹은 모바일에 맞는 layout과 CSS를 사용한 적이 있나요?
  • SVG를 스타일링하는데 익숙하신가요?
  • 인쇄하기 위해 웹페이지를 어떻게 최적화 하나요?
  • 효율적인 CSS를 작성하기 위한 "비법(gotchas)"은 어떤 게 있나요?
  • CSS 전처리(CSS preprocessors)를 사용해보셨나요?
    • 그렇다면, 사용 경험에 기반을 둬 좋았던 점과 나빴던 점을 설명해주세요.
  • 페이지에서 표준 폰트가 아닌 폰트 디자인을 사용할 때 어떤 방식으로 처리하시나요? (웹폰트를 제외하고)
  • CSS Selector가 어떠한 원리로 동작하는지 설명해주세요.
  • pseudo-elements에 관해서 설명하고 어디에서 사용되는지 이야기해보세요.
  • box model에 관해 설명하고 브라우저에서 어떻게 동작하는지 설명해주세요.
  • * { box-sizing: border-box; }은 무엇이고 사용했을때 이점은 무엇인가요?
  • 기억나는 display 속성에 대한 값들을 나열해보세요.
  • inline과 inline-block의 차이점은 무엇인가요?
  • 요소를 배치하는 방법(relative, fixed, absolute, static) 간의 차이는 무엇인가요?
  • CSS에서 'C’는 Cascading을 의미합니다. Cascading에 관해서 설명해주세요. 또 cascading system의 장점은 무엇인가요?
  • CSS framework를 사용해본 적이 있으신가요? 실무에서 사용해보았다면 어떤 이점이 있었나요?
  • 새로운 CSS Flexbox 혹은 Grid 스펙을 사용해 보신 적 있나요?
  • 반응형(Responsive) 디자인은 적응형(Adaptive) 디자인과 어떤 차이점이 있나요?
  • 레티나 그래픽 환경에서 작업해 보신 적이 있나요? 하셨다면 어떤 기술을 사용하셨나요?
  • 절대 좌표대신 translate() 혹은 반대로 사용하는 이유가 있나요? 있다면 이유에 관해서 설명해주세요.

JS 관련 질문:

  • event delegation에 관해 설명해주세요.
  • this는 JavaScript에서 어떻게 작동하는지 설명해주세요.
  • prototype 기반 상속은 어떻게 하는지 설명해주세요.
  • AMD와 CommonJS는 무엇이고, 이것들에 대해 어떻게 생각하시나요?
  • 다음 코드가 즉시 호출 함수 표현식(IIFE)로 동작하지 않는 이유에 관해서 설명해보세요: function foo(){ }();.
    • IIFE로 만들기 위해서는 어떻게 해야 하나요?
  • nullunedefined 그리고 undeclared의 차이점은 무엇인가요?
    • 두개를 구분하기 위해서는 어떻게 하면 될까요?
  • 클로져(Closure)는 무엇이며, 어떻게/왜 사용하는지 설명해주세요.
    • 클로져를 만들 때 선호하는 패턴은 무엇인가요? argyle (IIFEs에만 적용할 수 있다)
  • 익명함수(anonymous functions)는 주로 어떤 상황에서 사용하나요?
  • 당신의 코드를 어떻게 구성하는지? (모듈 패턴, 전통적 상속)
  • 호스트 객체(Host Objects)와 네이티브 객체(Native Objects)의 차이점은 무엇인가요?
  • 다음 코드의 차이점은 무엇인가요?
function Person(){} var person = Person() var person = new Person()
  • .call.apply의 차이점은 무엇인가요?
  • Function.prototype.bind을 설명하세요.
  • document.write()는 언제 사용하나요?
  • UA 문자열을 이용하여 기능 검출(feature detection)과 기능 추론(feature inference)의 차이점을 설명하세요.
  • AJAX에 관해 가능한 한 자세히 설명하세요.
  • AJAX를 사용했을 때의 장단점에 대해 설명해주세요.
  • JSON이 어떻게 동작 되는지 설명하세요. (그리고 AJAX와 어떻게 다른지 설명하세요.)
  • 기존에 JavaScript 템플릿을 사용한 적이 있나요? 만약에 있다면, 어떠한 방식으로 사용했는지 말씀해주세요.
  • "호이스팅(Hoisting)"에 대해서 설명하세요.
  • 이벤트 버블링(Event Bubbling)에 대해서 설명하세요.
  • 이벤트 캡쳐링(Event Capturing)에 대해서 설명하세요.
  • "속성(Attribute)"와 "요소(property)"의 차이가 무엇인가요?
  • 내장된 JavaScript 객체를 확장하는 것이 좋지 않은 이유는 무엇인가요?
  • document load event와 DOMContentLoaded event의 차이점은 무엇인가요?
  • =====의 차이점은 무엇인가요?
  • JavaScript의 "동일출처정책(the same-origin policy)"에 대해서 설명하세요.
  • 다음 코드를 동작하게 만드세요.
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • 삼항식(Ternary statement)을 사용하는 이유는 무엇이고, 그것을 표현하기 위한 연산자 단어는 무엇인가요?
  • use strict;은 무엇이고, 사용했을 때 장단점에 관해서 설명해주세요.
  • 100번 반복되는 반복문이 있습니다. 3의 배수일 때는 fizz, 5의 배수일 때는 buzz, 3과 5의 공배수일 때는 fizzbuzz가 출력되는 코드를 작성해보세요.
  • 전역 scope를 사용했을 때 장단점에 관해 설명해주세요.
  • 때때로 load event를 사용하는 이유에 관해 설명해주세요. 또 단점이 있다면 대안에 대해서도 설명해주세요.
  • SPA에서 SEO에 유리하도록 만들기 위한 방법에 대해 설명해주세요.
  • Promise를 사용해 본 경험이 있나요?
  • Promise가 콜백 대비 장/단점은 무엇인지 설명해주세요.
  • JavaScript의 작동방식의 장단점에 관해 설명해주세요.
  • JavaScript를 디버깅할 때 사용하는 도구가 있으면 설명해주세요.
  • 객체 안의 속성과 배열의 아이템을 순회할 때 사용하는 문법에 관해 설명해주세요.
  • mutable object와 immutable object에 관해 설명해주세요.
    • JavaScript에서 immutable 객체의 예를 들어보세요.
    • immutability의 장/단점은 무엇인가요?
    • 자신의 코드에서 불변성(immutability를) 어떻게 달성할 수 있나요?
  • 동기방식과 비동기 방식 함수의 차이에 관해서 설명해주세요.
  • event loop이란 무엇인가요?
    • call stack과 task queue에 관해 설명해주세요.
  • function foo() {}var foo = function() {}에서 foo 의 차이가 무엇인지 설명해보세요.
  • let, var, const의 차이점에 관해서 설명해주세요.

테스트 관련 질문들:

  • test code를 작성하면서 개발하는 방식의 장점과 단점에 대해 설명해주세요.
  • test code를 테스트하는 툴을 사용해보신 경험이 있나요?
  • 유닛 테스트와 함수테스트의 차이점은 무엇인가요?
  • code style linting tool을 사용했을때 장점은 무엇인가요?

성능 관련 질문들:

  • 성능관련 이슈들을 발견하기 위해서 사용하는 방법은 무엇인가요?
  • 웹사이트 scrolling 성능을 향상시키기 위한 몇가지 방법에 대해 설명해보세요.
  • 브라우저의 layout, painting, compositing에 대해 설명해보세요.

네트워크 질문들:

  • 전통적으로, 웹사이트의 assets을 여러 도메인으로 서빙했을 때 장점은 무엇인가요?
  • URL로 접속했을 때 어떤 플로우로 화면에 웹사이트가 그려지는지 네트워크 관점에서 설명해주세요.
  • Long-Polling과 Websocket, Server-Sent Event에 대해 설명해주세요.
  • 다음 request header들에 대해 설명해주세요.
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP와 HTTPS에 대해 설명해주세요.
  • HTTP Method들에 대해 설명해주세요.

코딩 질문:

질문: foo의 값은 무엇인가요?

var foo = 10 + '20';

질문: 아래 코드의 결과값은 무엇인가요?

console.log(0.1 + 0.2 == 0.3);

질문: 아래 코드가 동작하게 하기 위해선 어떻게 해야할까요?

add(2, 5); // 7
add(2)(5); // 7

질문: 아래 구문의 반환값은 무엇인가요?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?
질문: window.foo의 값은 무엇인가요?

( window.foo || ( window.foo = "bar" ) );

질문: 아래 두 alert의 결과값은 무엇인가요?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

질문: foo.length의 값은 무엇인가요?

var foo = [];
foo.push(1);
foo.push(2);

질문: foo.x의 값은 무엇인가요?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

질문: 아래 코드의 출력값은 무엇인가요?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

그 외 흥미로운 질문들:

  • 최근에 수행했던 흥미로운 프로젝트는 무엇인가요?
  • 사용하는 개발 도구에서 마음에 드는 부분은 무엇인가요?
  • 프론트엔드 커뮤니티에서 당신에게 영감을 준 사람이 있다면 누구인가요?
  • 애완동물 관련 프로젝트를 해 보았나요? 해보았다면 어떤 종류의 프로젝트인가요?
  • IE에서 가장 좋아하는 기능은 무엇인가요?
  • 어떤 커피를 좋아하시나요?

함께하는 분들:

이 문서는 2009년에 다음에 언급된 분들과의 협업으로 시작했습니다.
@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

현재는 100이 넘는 개발자들이 함께하고 있습니다.

\ No newline at end of file diff --git a/_site/translations/korean/reference.html b/_site/translations/korean/reference.html new file mode 100644 index 000000000..092fb0bbb --- /dev/null +++ b/_site/translations/korean/reference.html @@ -0,0 +1,4 @@ +해설집 ★ Front-end Job Interview Questions

해설집

##해설집

이 문서는 정답을 알려주는 문서가 아닙니다.
+면접에 대한 답은 스스로가 찾아야 좋으며,
+그 판단을 돕기 위한 해설서 임을 밝히는 바입니다.
+

##기여자
@Songhun(http://songhun.blogspot.com)
@YiHanghee(http://blog.javarouka.me)

##일반적인 질문에 대한 참고

  • SNS에 대해서 물어보는 이유가 무엇일까요?

##HTML에 대한 참고

  • doctype에 대한 설명은 Wikipedia 에서 찾아볼 수 있습니다.
  • 표준 모드는 W3C의 표준에 맞춘 구현 렌더링으로 동작하며(미세하게 다릅니다), 쿽스 모드는 다양한 브라우저 및 표준 정립 이전의 구버전 기준으로 작성된 HTML의 fallback 과 비슷합니다.
  • XHTML 과 HTML의 차이 블로그 포스팅에 4부작(?)으로 좋은 설명이 있네요.
    • application/xhtml+xml 컨텐트 타입은 브라우저에 따라 해석할 수 없기도 합니다.(IE…)
  • 엘리먼트의(특히 루트인 html) lang attribute 와 관련이 있을까요…?
  • HTML 5 + XML = XHTML 5, <!doctype xhtml>
  • Programer custom attribute. ex) 자동차를 엘리먼트로 나타내야 할 경우를 생각해보면 기본 html 속성으로는 부족하겠죠.
  • HTML4의 콘텐츠 모델이 div와 span에 id와 클래스를 입힌 inline 및 block display의 사용자 정의형이라면, HTML5는 그것을 표준화한 콘텐츠 모델.
  • open web platform 이 뭘까요…?
  • 서버와 공유할 필요가 있는지의 여부, 저장 용량, 저장 생명주기에 따라 셋을 구분할 수 있습니다.

##Javascript에 대한 참고

##jQuery에 대한 참고

##CSS 참고

##흥미로운 질문들에 대한 참고

\ No newline at end of file diff --git a/_site/translations/latvian/index.html b/_site/translations/latvian/index.html new file mode 100644 index 000000000..a873a5e28 --- /dev/null +++ b/_site/translations/latvian/index.html @@ -0,0 +1 @@ +Front-end web programmētāja darba intervijas jautājumi ★ Front-end Job Interview Questions

Front-end web programmētāja darba intervijas jautājumi

Front-end web programmētāja darba intervijas jautājumi

Šis repozitorijs satur vairākus ar front-end web programmētāja darba prasmēm saistītus jautājumus, ko var izmantot, intervējot potenciālos vakances kandidātus. Nav ieteicams izmantot katru šeit minēto jautājumu, jo tas patērētu ļoti daudz laika. Izvēlieties tikai dažus jautājumus no šī saraksta, kas Jums palīdzēs ātrāk atlasīt kandidātus ar nepieciešamajām prasmēm.

Rebecca Murphey Baseline For Front-End Developers raksts ir ļoti piemērota lasāmviela, kuru izlasīt pirms dodaties uz darba interviju.

Piezīme: Paturiet prātā, ka daudzi no šiem jautājumiem ir atvērta tipa, kas varētu izvērsties plašākā diskusijā un ļautu iepazīt cilvēka prasmes daudz labāk nekā tieša atbilde.

Saturs

  1. Sākotnējie Kontributori
  2. Vispārēji Jautājumi
  3. HTML Jautājumi
  4. CSS Jautājumi
  5. JS Jautājumi
  6. jQuery Jautājumi
  7. Kodēšanas Jautājumi
  8. Interesanti Jautājumi
  9. Citas Lieliskas Atsauces

####[⬆] Sākotnējie Kontributori:

Vairums no jautājumiem tika paņemti no oksoclap raksta, ko sākotnēji izveidoja Paul Irish (@paul_irish) un kuru papildināja sekojoši cilvēki:

####[⬆] Vispārēji Jautājumi:

  • Ko jaunu Jūs apguvāt vakar/šonedēļ?
  • Kas Jūs aizrauj un interesē programmēšanā?
  • Kādas UI (lietotāja interfeisa), performances, SEO, apkopes vai tehnoloģijas apsvērumus jūs ņemat vērā, kad veidojat web-aplikāciju vai mājas lapu?
  • Pastāstiet par sev vēlemo darba vidi. (Operētājsistēma, pārlūki, rīki utt.)
  • Vai variet aprakstīt savu darba procesu, kad veidojiet mājas lapu?
  • Vai jūs variet aprakstīt starpību starp “progressive enhancement” un “graceful degradation”?
    • Bonus punkti, ja tiek pieminēta funkciju noteikšana (feature detection).
  • Izskaidrojiet, ko nozīmē “Semantisks HTML”.
  • Kā Jūs optimizētu mājas lapas failus/resurus?
    • Potenciāli vairāki risinājumu, starp kuriem būtu:
      • Failu konkatenācija (savienošana)
      • Failu minimizēšana
      • CDN hostēšana
      • Kešošana
      • u.c.
  • Kāpēc ir labāk lapas resurus izvietot uz vairākiem domēniem?
    • Cik daudz resursus pārlūks spēj vienlaicīgi lejuplādēt no viena domēna?
  • Nosauciet 3 veidus, kā samazināt lapas ielādes laiku (šķietamo vai faktisko)
  • Kā Jūs rīkotos, ja Jūs pievienotos projektam un viņi izmantotu tabulāciju, bet Jūs atstarpes koda atkāpju veidošanai?
    • Ieteiktu projektā izmantot kaut ko līdzīgu EditorConfig (http://editorconfig.org)
    • Pieskaņoties kolēģiem
    • Veikt retabulāciju ar ‘:retab!’ komandu
  • Izveidojiet vienkāršū slaidrāža lapu
    • Bonus punkti, ja netiek izmantots JavaScript
  • Kādus rīkus Jūs izmantojiet, lai pārbaudītu sava koda veiktspēju (performanci)?
    • Profiler, JSPerf, Dromaeo
  • Ja šogad Jūs varētu pilnībā apgūt vienu tehnoloģiju, kura tā būtu?
  • Kādas ir atšķirības starp Long-Polling, Websockets un SSE?
  • Izskaidrojiet standartu un standartizēšanas komisiju nozīmi.
  • Kas ir FOUC? Kā izvairīties no FOUC?

####[⬆] HTML Jautājumi:

  • Ko dara doctype?
  • Kāda ir starpība starp standarta režīmu un quirks režīmu?
  • Kādi ir XHTML lapu ierobežojumi?
    • Vai var rasties problēmas, ja lapa tiek servēta kā application/xhtml+xml?
  • Kā servēt lapu ar saturu vairākās valodās?
    • Par ko ir īpaši jāpiedomā, kad dizainē vai izstrādā vairāku valodu mājas lapas?
  • Ar ko ir noderīgi data- atribūti?
  • Pieņemot, ka HTML5 ir atvērta web-platforma, kas ir HTML5 pamatelementi?
  • Aprakstiet atšķirības starp sīkdatnēm (cookies), sessionStorage un localStorage.

####[⬆] CSS Jautājumi:

  • Aprakstiet, ko dara “reset” CSS fails un ar ko tas ir noderīgs.
  • Aprakstiet Float parametru un to, kā tas strādā.
  • Kādas ir dažādas Clear parametra lietošanas tehnikas un kādā kontekstā katra ir vispiemērotākā?
  • Izskaidrojiet, kas ir CSS spraiti (sprites) un kā Jūs tos izmantotu lapā?
  • Kāda ir Jūsu iecienītākā attēlu aizvietošanas tehnika un kādos brīžos Jūs to izmantojiet?
  • CSS parametru hacki, nosacīti iekļauti .css faili vai kas cits?
  • Kā Jūs servējat lapas priekš pārlūkiem ar ierobežotu funkcionalitāti?
    • Kādas tehnikas/procesu Jūs piekopjat?
  • Kādi ir dažādi paņēmieni, kā vizuāli noslēpt saturu (un padarīt to pieejamu tikai priekš ekrāna lasītājiem)?
  • Vai esat kādreiz izmantojis režģa (grid) sistēmu? Ja jā, tad kurai dodiet priekšroku?
  • Vai esat izmantojis mediju vaicājumus (media queries) vai izkārtojumus(layouts)/CSS domātus speciāli priekš mobilajām iekārtām?
  • Vai esat pazīstams ar SVG stilu definēšanu?
  • Kā Jūs optimizējiet mājas lapas priekš printēšanas?
  • Kādi ir dažādi triki un paņēmieni (kā arī ar ko der uzmanīties), lai veidotu efektīvu CSS?
  • Kādi ir plusi/mīnusi izmantojot CSS preprocesorus? (SASS, Compass, Stylus, LESS)
    • Aprakstiet plusus un mīnusus tiem CSS preprocesoriem, kurus esiet izmantojis.
  • Kā Jūs veidotu mājas lapas dizainu, kas izmanto nestandarta fontus?
    • Webonti (tādi fontu servisi kā Google Webfonts, Typekit u.c.)
  • Izskaidrojiet kā pārlūks nosaka kuri elementi atbilst CSS selektoriem?
  • Izskaidrojiet kā Jūs saprotiet “box model” un kā Jūs ar CSS palīdzību norādītu pārlūkam attēlot izkārtojumu(layout) ar dažādiem “box model” iestatījumiem.

####[⬆] JS Jautājumi:

  • Izskaidrojiet notikumu deleģēšanu (event delegation)
  • Izskaidrojiet kā this strādā JavaScript valodā
  • Izskaidrojiet kā strādā prototipiskā mantošana?
  • Kā Jūs testējat savu JavaScript kodu?
  • AMD vai CommonJS?
  • Kas ir asociatīvais masīvs (hashtable)?
  • Paskaidrojiet kāpēc šis kods nestrādā kā IIFE: function foo(){ }();.
    • Kas ir jāpamaina, lai tā pareizi strādātu kā IIFE?
  • Kāda ir atšķirība starp mainīgajiem, kas ir definēti kā: null, undefined or undeclared?
    • Kā jūs pārbaudītu vai mainīgais atbilst kādam no šiem stāvokļiem?
  • Kas ir slēgums(closure) un kā/kāpēc Jūs tādu izmantotu?
  • Kādos gadījumos parasti tiek izmantotas anonīmās funkcijas?
  • Izskaidrojiet “JavaScript module pattern” un kādos gadījumos Jūs to izmantotu.
    • Bonus punkti, ja tiek pieminēta tīra nosaukumvietas uzturēšana (clean namespacing)
    • Gadījumā ja Jūsu moduļi neizmanto nosaukumvietu?
  • Kā Jūs organizējat savu kodu? (Moduļu veidā, klasiskā mantošana?)
  • Kāda ir atšķirība starp “host” objektiem un “native” objektiem?
  • Kāda ir atšķirība starp: function Person(){}, var person = Person(), un var person = new Person()?
  • Kāda ir atšķirība starp .call un .apply?
  • Izskaidrojiet Function.prototype.bind?
  • Kurā brīdī Jūs optimizējiet savu kodu?
  • Vai variet izskaidrot kā JavaScript valodā strādā mantošana?
  • Kādos gadījumos Jūs izmantotu document.write()?
    • Vairums reklāmas joprojām izmanto document.write() kaut arī šāda prakse tiek pelta.
  • Kāda ir atšķirība starp funkciju noteikšanu (feature detection), funkciju secināšanu (feature inference) un UA virknes (UA string) izmantošanu?
  • Izskaidrojiet AJAX cik vien detalizēti iespējams
  • Izskaidrojiet kā stradā JSONP (un kā tas atšķiras no AJAX)
  • Vai esat jebkad izmantojuši JavaScript šablonošanai (templating)?
    • Ja jā, kuras bibliotēkas Jūs esat izmantojuši? (Mustache.js, Handlebars etc.)
  • Izskaidrojiet “hoisting”
  • Izskaidrojiet notikumu burbuļošanu (event bubbling)
  • Kāda ir atšķirība starp atribūtu un rekvizītu (property)?
  • Kāpēc paplašināt iebūvētos JavaScript objektus nav laba doma?
  • Kāpēc paplašināt “built ins” ir laba doma?
  • Kāda ir atšķirība starp “document load” un “document ready” notikumu?
  • Kāda ir atšķirība starp == un ===?
  • Paskaidrojiet kā Jūs iegūtu kverija stringa parametru no pārlūka loga URL?
  • Izskaidrojiet vietējās izcelsmes (same-origin) noteikumu attiecībā uz JavaScript
  • Izskaidrojiet mantošanas paternus JavaScript valodā.
  • Lieciet šim strādāt:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Izskaidrojoet memoizācijas stratēģiju (izvairīšanos no aprēķinu atkārtošanas) JavaScript valodā.
  • Kāpēc to sauc par ternāru izteiksmi (Ternary expression)? Uz ko norāda vārds ternārs?
  • Kas ir funkcijas “arity”?
  • Kas ir "use strict";? Kādas ir priekšrocības un trūkumi to izmantojot?

####[⬆] jQuery Jautājumi:

  • Izskaidrojiet savirknēšanu (chaining).
  • Izskaidrojiet novēlojumus (deferreds).
  • Kādas ir jQuery specifiskas optimizācijas, ko Jūs spējat ieviest praksē?
  • Ko veic .end()?
  • Kā un kāpēc Jūs nosauktu pievienotu notikumu apdarinātāju (bound event handler)?
  • Nosauciet 4 dažādas vērtības, ko Jūs varat padot jQuery metodei
    • Selektoru (virkne), HTML (virkne), atgriezenisko funkciju (funkcija), HTMLElement, Object, Array, Element Array, Jquery Object u.c.
  • Kas ir efektu (vai fx) rinda?
  • Kāda ir atšķirība starp .get(), [], un .eq()?
  • Kāda ir atšķirība starp .bind(), .live(), un .delegate()?
  • Kāda ir atšķirība starp $ un $.fn? Vai vienkārši kas ir $.fn?
  • Optimizējiet šo selektoru
$(".foo div#bar:eq(0)")

####[⬆] Kodēšanas Jautājumi:

modulo(12, 5) // 2

Jautājums: Izveidojiet modulo funkciju, kas apmierina augstākminēto

"i'm a lasagna hog".split("").reverse().join("");

*Jautājums: Kāda vērtība tiek atgriezta no augšākminētā koda?

Atbilde: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Jautājums: Kāda ir window.foo vērtība?

Atbilde: “bar” (vienīgi°ja window.foo “falsey”, savādāk tas paturētu savu esošo vērtību)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Jautājums: Kāds ir abu augstākminēto paziņojumu iznākums?

Atbilde: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Jautājums: Kāda ir foo.length vērtība?

Atbilde: 2

####[⬆] Interesanti Jautājumi:

  • Kas ir pati foršākā lieta, ko jebkat esiet uzprogrammējis un ar ko lepojaties?
  • Kuras ir Jūsu izstrādes rīku iemīļotākās funkcijas, kuras izmantojiet?
  • Vai Jums ir kādi hobiju projekti? Kādi?
  • Kāda ir Jūsu iecienītakā Internet Explorer raksturiezīme?

####[⬆] Citas Lieliskas Atsauces:

\ No newline at end of file diff --git a/_site/translations/polish/index.html b/_site/translations/polish/index.html new file mode 100644 index 000000000..acdd58bc4 --- /dev/null +++ b/_site/translations/polish/index.html @@ -0,0 +1 @@ +Pytania kwalifikacyjne na stanowisko front-end web developera ★ Front-end Job Interview Questions

Pytania kwalifikacyjne na stanowisko front-end web developera

Pytania kwalifikacyjne na stanowisko front-end web developera

@version 2.0.0

To repozytorium zawiera wiele pytań weryfikujących wiedzę potencjalnych kandydatów na stanowisko front-end web developera. Nie zaleca się zadawania wszystkich pytań jednej osobie (zajęłoby to godziny). Wybranie pojedynczych pozycji z listy pomoże w sprawdzeniu wymaganych umiejętności.

Rebecca Murphey opracowała Podstawowe wymagania dla Front-End web developerów, które są warte przeczytania zanim udamy się na rozmowę o pracę.

Uwaga: Pamiętaj, że wiele pytań jest otwartych, co prowadzi do ciekawych dyskusji, które powiedzą Ci więcej o możliwościach danej osoby, niż w przypadku prostej odpowiedzi.

Pierwotni autorzy

Większość pytań zaczerpnięto z wątku oksoclap stworzonego pierwotnie przez Paula Irisha (@paul_irish) i rozwijanego przez następujące osoby:

Pytania ogólne:

  • Czego nauczyłeś się wczoraj/w tym tygodniu?
  • Co pobudza lub interesuje cię w programowaniu?
  • Jakie jest Twoje preferowane środowisko programistyczne? (system operacyjny, edytor, przeglądarki, narzędzia itd.)
  • Opisz kolejne zadania podczas tworzenia strony internetowej?
  • Opisz różnicę między stopniowym ulepszaniem (progressive enhancement) i wdzięczną degradacją (graceful degradation)?
    • Dodatkowe punkty za opisanie wykrywania obsługi cech (feature detection)
  • Wyjaśnij, co kryje się za terminem “semantyczny HTML”.
  • Jak optymalizowałbyś zasoby strony internetowej?
    • Myśląc o wielu rozwiązaniach, które zawierają:
      • Łączenie plików
      • Zmniejszenie rozmiaru plików
      • Zasoby CDN
      • Buforowanie
      • itd.
  • Dlaczego serwowanie zasobów strony przez wiele domen jest lepsze?
    • Ile zasobów pobiera przeglądarka z danej domeny w jednej chwili?
  • Podaj 3 sposoby na zmniejszenie czasu ładowania strony. (postrzeganego lub rzeczywistego czasu ładowania)
  • Jeśli dołączasz do projektu, w którym używa się tabulacji, a ty używasz spacji, co wtedy zrobisz?
    • Sugerowanie użycia narzędzi w stylu EditorConfig (http://editorconfig.org)
    • Zgodnie z konwencjami (pozostań konsekwentny)
    • issue :retab! command
  • Napisz prosty pokaz slajdów
    • Dodatkowe punkty, jeśli nie używasz JS.
  • Jakich narzędzi używasz do sprawdzenia wydajności swojego kodu?
    • Profiler, JSPerf, Dromaeo
  • Gdybyś mógł opanować jedną technologię w tym roku, jaka byłaby to technologia?
  • Wyjaśnij znaczenie standardów sieciowych i ich twórców.
  • Czym jest FOUC? Jak unikasz FOUC?

Pytania HTML:

  • Co robi doctype i jakie znasz przykłady?
  • Jaka jest różnica między trybem standardów a trybem dziwactw (quirks mode)?
  • Jakie są ograniczenia w serwowaniu stron XHTML?
    • Czy istnieją problemy z serwowaniem stron jako application/xhtml+xml?
  • Jak serwujesz stronę z treścią w wielu językach?
    • Co jest ważne przy projektowaniu i tworzeniu stron wielojęzycznych?
  • Jaka jest przydatność atrybutów data-
  • Rozpatrujemy HTML5 jako otwartą platformę internetową. Jakie składniki tworzą HTML5?
  • Opisz różnice między cookies, sessionStorage i localStorage.

Pytania JS:

  • Wyjaśnij delegację zdarzeń.
  • Wyjaśnij jak działa this w JavaScripcie.
  • Wyjaśnij jak działa dziedziczenie prototypowe.
  • Jak radzisz sobie z testowaniem swojego kodu JavaScript?
  • AMD kontra CommonJS?
  • Czym jest tablica mieszająca (hashtable)?
  • Co oznaczają komunikaty undefined i undeclared dla zmiennych?
  • Czym są domknięcia, jak i po co są używane?
    • Ulubiony wzorzec używany do ich tworzenia? argyle (Dotyczy tylko IIFE)
  • Jakie znasz typowe użycie funkcji anonimowych?
  • Wyjaśnij pojęcie “Moduł JavaScript” i kiedy jest warte stosowania.
    • Dodatkowe punkty za wzmiankę na temat czystości przestrzeni nazw.
    • Co jeśli Twój kod nie używa przestrzeni nazw?
  • Jak organizujesz swój kod? (moduły, klasyczne dziedziczenie?)
  • Jaka jest różnicza między obiektami typu host i native?
  • Różnica między:
function Person(){} var person = Person() var person = new Person()
  • Jaka jest różnica między .call i .apply?
  • Wyjaśnij Function.prototype.bind?
  • Kiedy optymalizujesz swój kod?
  • Wyjaśnij działanie dziedziczenia w JavaScript?
  • Kiedy użyłbyś document.write()?
    • Wiele generowanych reklam używa document.write() choć nie jest to mile widziane
  • Jakie są różnice między wykrywaniem obsługi funkcji, wnioskowaniem obsługi funkcji i używaniem ciągu UA?
  • Omów AJAX jak najbardziej szczegółowo.
  • Wyjaśnij działanie JSONP (i dlaczego nie jest właściwie AJAX).
  • Czy kiedykolwiek używałeś szablonów w JavaScript?
    • Jeśli tak, jakie to były biblioteki? (Mustache.js, Handlebars itd.)
  • Wyjaśnij pojęcie “hoisting”.
  • Opisz bąbelkowanie zdarzeń.
  • Jak jest różnica między “atrybutem” i “właściwością”?
  • Czemu rozszerzanie obiektów wbudowanych w JavaScript jest złym pomysłem?
  • Czemu rozszerzanie to dobry pomysł?
  • Jak jest różnicą między zdarzeniami load i ready dla strony internetowej?
  • Jaka jest różnica między == i ===?
  • Wyjaśnij ewentualny sposób pobrania parametrów z adresu URL w oknie przeglądarki.
  • Wyjaśnij politykę same-origin w odniesieniu do JavaScript.
  • Opisz wzorce dziedziczenia w JavaScript.
  • Napisz działający kod:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opisz strategię zapamiętywania (unikanie powtarzalnych obliczeń) w JavaScript.
  • Dlaczego mówimy wyrażenie trójkowe, co dokładnie oznacza słowo “trójkowy”?
  • Czym jest arity funkcji?
  • Co oznacza "use strict";? Jakie są zalety i wady takiego rozwiązania?

Przykłady kodu JS:

~~3.14

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: 3

"i'm a lasagna hog".split("").reverse().join("");

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pytanie: Jaka jest wartość window.foo?
Odpowiedź: "bar"
tylko jeśli window.foo było fałszywe, w innym przypadku zwraca swoją wartość.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pytanie: Jaki będzie wyniki wywołania dwóch powyższych poleceń alert?
Odpowiedź: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: 2

var foo = {};
foo.bar = 'hello';

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: undefined

Pytania jQuery:

  • Wyjaśnij termin “chaining”.
  • Wyjaśnij termin “deferreds”.
  • Jakie przykłady optymalizacji jQuery potrafisz wykonać?
  • Co robi .end()?
  • Jak i dlaczego użyjesz przestrzeni nazw przy obsłudze wiązania zdarzeń?
  • Podaj 4 różne wartości, jakie możesz przekazać do metody jQuery.
    • Selektor (string), HTML (string), funkcja zwrotna, HTMLElement, obiekt, tablica, element tablicy, obiekt jQuery itd.
  • Co to jest kolejka effects (lub fx)?
  • Jakie są różnice między .get(), [], i .eq()?
  • Jakie są różnice między .bind(), .live(), i .delegate()?
  • Jakie są różnice między $ i $.fn? Czym jest $.fn?
  • Zoptymalizuj selektor:
$(".foo div#bar:eq(0)")

Pytania CSS:

  • Opisz, czym jest plik “reset” dla CSS i dlaczego jest użyteczny.
  • Opisz jak działa właściwość float.
  • Jakie znasz techniki kasowania (clearing) i kiedy wskazane jest ich stosowanie?
  • Wyjaśnij technikę “CSS sprites” oraz sposób jej wdrożenia na stronie.
  • Jakie są Twoje ulubione techniki zastępowania obrazów i kiedy je stosujesz?
  • Haczyki właściwości CSS, warunkowe dołączanie plików .css lub… coś innego?
  • Jak serwujesz strony dla przeglądarek z ograniczonym wsparciem funkcji?
    • Jakie techniki stosujesz?
  • Jakie istnieją sposoby wizualnego ukrycia treści (uczynienia ich dostępnymi tylko dla czytników ekranu)?
  • Czy kiedykolwiek używałeś systemów siatek, a jeśli tak, to jakie preferujesz?
  • Czy używałeś ‘media queries’ lub tworzyłeś konkretne układy i arkusze dla urządzeń mobilnych?
  • Czy miałeś styczność ze stylizacją SVG?
  • Jak optymalizujesz swoje strony do druku?
  • Jakie stosujesz “sztuczki” przy pisaniu efektywnych CSS?
  • Czy używasz narzędzi do przetwarzania CSS? (SASS, Compass, Stylus, LESS)
    • Jeśli tak, opisz cechy, które lubisz i nie lubisz w używanych narzędziach.
  • Jak tworzysz i wdrażasz projekt używający niestandardowych czcionek?
    • Czcionki sieciowe (serwisy czcionek jak: Google Webfonts, Typekit itd.)
  • Wyjaśnij jak przeglądarka określa elementy pasujące do selektora CSS?

Pytania dodatkowe (zabawne):

  • Opowiedz o najfajniejszej rzeczy jaką kiedykolwiek zakodowałeś. Z czego jesteś najbardziej dumny?
  • Jakie są Twoje ulubione części narzędzi programistycznych, których używasz?
  • Czy masz jakiś swój własny projekt na boku? Jaki?
  • Jaka jest Twoja ulubiona funkcja w Internet Explorer?
\ No newline at end of file diff --git a/_site/translations/portuguese/index.html b/_site/translations/portuguese/index.html new file mode 100644 index 000000000..6a4d66097 --- /dev/null +++ b/_site/translations/portuguese/index.html @@ -0,0 +1 @@ +Questões para entrevista de profissionais Front-end ★ Front-end Job Interview Questions

Questões para entrevista de profissionais Front-end

Questões para entrevista de profissionais Front-end

Este repositório contém uma série de perguntas para entrevista de profissionais de front-end que podem ser usadas para avaliar os candidatos. Não é recomendado de maneira alguma usar todas as perguntas aqui no mesmo candidato (que levaria horas). A escolha de alguns itens dessa lista deverá ajudar a identificar as habilidades requeridas do candidato.

O artigo Baseline For Front-End Developers de Rebecca Murphey é também uma ótima fonte para ler antes de entrevistar um candidato.

Note: Tenha em mente que muitas destas questões estão em aberto e poderia levar à discussões interessantes que dizem mais sobre as capacidades do candidato do que a resposta em si.

Tabela de Conteúdos

  1. Contribuintes Originais
  2. Questões Gerais
  3. Questões de HTML
  4. Questões de CSS
  5. Questões de JS
  6. Questões de jQuery
  7. Questões de Código
  8. Questões Divertidas
  9. Outras Grandes Referências
  10. Licença

Contribuintes originais:

A maiorida das questões foram retiradas de um _thread_da oksoclap originalmente criada por Paul Irish (@paul_irish) e com a contribuição das seguintes pessoas: @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

Questões Gerais:

  • O que você aprendeu ontem ou esta semana?
  • O que te excita ou te interessa em programação/codificação?
  • Quais as suas considerações sobre UI, Segurança, Perfomance, Aplicação, Manutenibilidade ou Tecnologia quando você desenvolve uma aplicação web ou site?
  • Fale sobre seu ambiente de desenvolvimento preferido. (SO, Editor, Browser, Ferramentas, etc.)
  • Com quais sistemas de controle de versão você é familiar?
  • Descreva seu trabalho quando cria uma página web.
  • Se você tivesse 5 diferentes arquivos de folhas de estilo, qual seria a melhor forma de integrá-los no site?
    • Concatenação de arquivos
  • Descreva a diferença entre progressive enhancement and graceful degradation.
    • Bônus se descrever ou mencionar detecção de recursos.
  • Como você pode otimizar os recursos de um site?
    • À procura de uma série de soluções que possam incluir:
      • Concatenação de arquivo
      • “Minificação” de arquivo
      • Utilização de CDN
      • Caching
      • etc.
  • Por que é melhor servir recursos de um site de múltiplos domínios?
  • Fale 3 formas de diminuir o page load (tempo de carregamento real e percebido)
  • Se você caísse em um projeto que as pessoas usam tabs para indentação e você usa espaços, o que você faria?
    • Sugerir que o projeto utilize algo como EditorConfig (http://editorconfig.org)
    • Se conformar com as convenções (ficar consistente)
    • issue :retab! command
  • Escreva uma página simples de slideshow
    • Bônus se não usar JS.
  • Quais ferramentas você usa para testar a performance do seu código?
    • Profiler, JSPerf, Dromaeo
  • Se você pudesse dominar uma tecnologia deste ano, qual seria?
  • Quais as diferenças entre Long-Polling, Websockets and SSE?
  • Explique a importância de normas e órgãos normativos.
  • O que é FOUC? Como você evita FOUC?
  • Dê a sua melhor descrição do processo do momento que você digita a URL de um website até o final do carregamento da página na sua tela.

Questões de HTML:

  • O que um doctype faz?
  • Qual a diferença entre standards mode e quirks mode?
  • Quais as limitações quando utilizamos páginas XHTML?
    • Existe algum problema em utilizar páginas como application/xhtml+xml?
  • Como você desenvolve uma página com conteúdo em múltiplos idiomas?
    • Que tipo de coisas que você deve tomar cuidado ao desenvolver um website multi-língua?
  • Quais são os benefícios em utilizar o atributo data-?
  • Considere o HTML5 como uma plataforma web aberta. Quais são os blocos de construção de HTML5?
  • Descreva a diferença entre cookies, sessionStorage e localStorage.
  • Você pode explicar a diferença entre GET e POST?

Questões de CSS:

  • Qual é a diferença entre classes e IDs no CSS?
  • Descreva o que é o arquivo “reset” do CSS e o que ele faz e como ele é útil.
    • Bônus para identicação das desvantagens de um reset e/ou mencionar normalize como uma melhor alternativa.
  • Descreva o que são Floats e como eles funcionam.
  • Descreva z-index e como o empilhamento do contexto é formado.
  • Quais são as várias técnicas para “clearing” e quais delas são apropriadas para qual contexto?
  • Explique o que são CSS Sprites, e como você implementaria eles em um website.
  • Quais são suas técnicas favoritas para troca de imagens e quais dela você usa.
  • CSS Hacks, arquivo condicional .css, ou… alguma outra coisa?
  • Como você desenvolve sua página para browsers com recursos limitados?
    • Quais técnicas/processos você usa?
  • Quais são as diferentes formas de visualizar conteúdo escondido (e como fazer para deixar eles disponíveis apenas para leitores de tela?)
  • Você já utilizou algum sistema de grid, se sim, qual você prefere?
  • Você já utilizou ou implementou media queries ou CSSs específicos para mobile?
  • Qual sua familiaridade com SVG?
  • Como você optimiza suas páginas para impressão?
  • Quais são algumas técnicas para escrever um eficiente CSS?
  • Você já utilizou pré-processadores CSS? (SASS, Compass, Stylus, LESS)
    • Se sim, descreva o que você gostou e o que não gostou com eles.
  • Como você implementaria um website que não utilizaria fontes padrões nos computadores?
    • Webfonts (Serviços como: Google Webfonts, Typekit, etc.)
  • Explique como um browser determina quais os elementos que correspondem a um seletor CSS.
  • Explique o que você entende sobre box model e como você poderia dizer para o navegador en CSS para renderizar seu layout em diferentes box models.
  • O que * { box-sizing: border-box; } faz? Quais são as vantagens?
  • Liste quantas propriedades display você puder lembrar.
  • Qual a diferença entre inline e inline-block?
  • Qual a diferença entre elementos posicionados de forma relativa, fixa, absoluta e estática?
  • Quais frameworks CSS você tem usado localmente ou em produção? (Bootstrap, PureCSS, Foundation, etc.)
    • Se sim, quais deles? Se você puder, como você mudaria/melhoraria ele(s)?
  • Você já brincou com as novas especificações de CSS Flexbox e CSS Grid?
  • Como o design responsivo é diferente do design adaptavel?
  • Você já trabalhou com gráficos retina? Se sim, quando e quais técnicas você usou?

Questões de JS:

  • Explique o evento delegation.
  • Explique como this funciona em JavaScript.
  • Explique como funciona herança prototipada.
  • Como você testa seu JavaScript?
  • AMD vs. CommonJS?
  • Explique por que a seguinte função não funciona como uma IIFE: function foo(){ }();.
    • O que precisa ser alterado para se tornar uma IIFE?
  • Qual a diferença entre uma variável que null, undefined ou undeclared?
    • Como você verificaria esses estados?
  • O que é uma closure, e como/por que você usaria uma?
  • Qual o caso de uso típico para funções anônimas?
  • Como você organiza seu código? (module pattern, herança clássica?)
  • Qual a diferença entre objetos herdados e objetos nativos?
    Qual a diferença entre: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual a diferença entre .call e .apply?
  • Explique Function.prototype.bind.
  • Quando você otimiza seu código?
  • Você pode explicar como funciona a herença no Javascript?
  • Quando você deve usar o document.write()?
    • A maioria dos anúncios de publicidade ainda utilizam document.write() embora seu uso não seja recomendado.
  • Qual a diferença entre feature detection, feature inference, e o uso de UA string?
  • Explique o que é AJAX o mais detalhadamente possível.
  • Explique como o JSONP funciona (e como ele realmente não é AJAX).
  • Você já utilizou templates com Javascript?
    • Se sim, quais bibliotecas foram utilizadas? (Mustache.js, Handlebars, etc.)
  • Explique o que é “hoisting”.
  • Descreva o que é event bubbling.
  • Qual a diferença entre “atributo” e “propriedade”?
  • Porque a extensão de objetos nativos não é uma boa ideia?
  • Qual a diferença entre o evento document load e o evento document ready?
  • Qual a diferença entre == e ===?
  • Explique como você pega um parâmetro na URL do browser.
  • Explique a política de same-origin em relação a Javascript.
  • Faça isso funcionar:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • O que é um operador ternário, o que a palavra “ternário” indica/significa?
  • O que é o "use strict";? Quais a vantagens e desvantagens de sua utilização?
  • Crie um loop for que itere até 100 enquanto retorna fizz em múltiplos de 3, buzz em múltiplos de 5 e fizzbuzz em múltiplos de 3 e 5.

Questões de jQuery:

  • Explique “chaining”.
  • Explique “deferreds”.
  • Quais são algumas otimizações de jQuery que você pode implementar?
  • O que .end() faz?
  • Nomeie 4 valores diferentes que você pode passar para um método jQuery.
    • Seletor (string), HTML (string), Callback (function), HTMLElement, object, array, elemento de array, jQuery Object, etc.
  • Qual a diferença entre .get(), [], e .eq()?

Questões de código:

Questão: Como você faria isso funcionar?

add(2, 5); // 7
add(2)(5); // 7

Questão: Qual valor é retornado da seguinte declaração?

"sou uma lasanha".split("").reverse().join("");

Resposta: "ahnasal amu uos"

Questão: Qual é o valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Resposta: “bar” (apenas se window.foo for falso, se não ele vai retornar o seu valor próprio).

Questão: Qual o retorno dos dois alerts abaixo?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Resposta: “Hello World” & ReferenceError: bar is not defined

Questão: Qual o valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Resposta: 2

Questões Divertidas:

  • Qual a coisa mais legal que você desenvolveu recentement? Qual você ficou mais orgulhoso?
  • Quais suas partes favoritas sobre as ferramentas de desenvolvimento que você usa?
  • Você teve algum projeto para animais de estimação? Qual tipo?
  • Qual sua feature favorita do Internet Explorer?

Outras Grandes Referências:

Licença:

Lançado sobre a Licença MIT. Veja o arquivo LICENSE para detalhes.

\ No newline at end of file diff --git a/_site/translations/romanian/index.html b/_site/translations/romanian/index.html new file mode 100644 index 000000000..6555c4e92 --- /dev/null +++ b/_site/translations/romanian/index.html @@ -0,0 +1 @@ +Întrebări pentru interviu tehnic web front-end ★ Front-end Job Interview Questions

Întrebări pentru interviu tehnic web front-end

Întrebări pentru interviu tehnic web front-end

Acest fișier conține o serie de întrebări pentru interviuri tehnice pe partea
de front-end, care pot fi folosite pentru a verifica un potențial candidat. Nu
este deloc recomandat să fie folosite toate întrebările pentru un singur
candidat (ar lua câteva ore). Alegând câteva întrebări din această listă ar
trebui să te ajute în verificarea calităților pe care le urmărești.

Notă: Ține minte că multe dintre întrebări au răspuns liber și ar
putea duce la discuții interesante care ți-ar putea spune mai multe despre
capacitățile persoanei.

Cuprins

  1. Întrebări generale
  2. Întrebări despre HTML
  3. Întrebări despre CSS
  4. Întrebări despre JS
  5. Întrebări despre testare
  6. Întrebări despre perfomanță
  7. Întrebări despre rețea
  8. Întrebări despre programare
  9. Întrebări amuzante

Procesul de implicare

  1. Contribuitori
  2. Cum să contribui
  3. Licență

####[⬆] Întrebări generale:

  • Ce ai învățat ieri/săptămâna asta?
  • Ce te fascinează sau interesează la programare?
  • Ce provocare technica ai intampinat recent si cum ai rezlovat-o?
  • Ce aspecte de UI, Securitate, Performanță, SEO, Întreținere sau Tehnologie
    iei în cosiderare când construiești o aplicație web sau un site?
  • Povestește despre mediul de lucru preferat.
  • Îți poți descrie fluxul de lucru când creezi o pagină web?
  • Dacă ai 5 fișiere cu cod CSS, cum le poți integra cel mai bine în site?
  • Poți descrie diferența dintre “progressive enhancement” și “graceful
    degradation”?
  • Cum ai optimiza resursele statice ale unui site?
  • Câte resurse poate un browser descărca de la un domeniu la un moment dat?
    • Care sunt excepțiile?
  • Numește 3 moduri pentru a scădea timpul de încarcare a paginii. (perceput
    sau chiar timpul de descărcare)
  • Dacă intri într-un proiect și se folosesc taburi în loc de spații, ce faci?
  • Descrie modul în care ai crea o simplă pagină de prezentare.
  • Ce unelte folosești pentru a testa performanța codului pe care îl scrii?
  • Dacă ai putea învăța o tehnologie anul asta, care ar fi?
  • Explică importanța standardelor și a organismelor de standardizare.
  • Ce este Flash of Unstyled Content? Cum eviți FOUC?
  • Explică ce sunt screenreaders și ARIA și cum faci un site accesibil.
  • Compară părți bune și negative pentru animații CSS versus animații JavaScript.
  • Ce reprezintă CORS si ce probleme incearcă să rezolve?

####[⬆] Întrebări despre HTML:

  • La ce este util doctype?
  • Care este diferența dintre “standards mode” și “quirks mode”?
  • Care este diferența dintre HTML și XHTML?
  • Apar probleme când servești pagini ca application/xhtml+xml?
  • Cum servești o pagină cu conținut în mai multe limbi?
  • La ce trebuie să fii atent când creezi un design sau dezvolți pentru site-uri
    multilingve
  • La ce sunt utile atributele data-?
  • Considerând HTML5 ca o platformă web deschisă, care sunt parțile
    componente alte HTML5?
  • Descrie diferența dintre cookies, sessionStorage și localStorage.
  • Descrie diferența dintre <script>, <script async> și <script defer>.
  • Ce înseamnă randare progresivă?
  • Ai folosit altceva în afară de HTML până acum?

####[⬆] Întrebări despre CSS:

  • Care este diferența dintre clase și ID-uri în CSS?
  • Care este diferența între a ‘reseta’ și a ‘normaliza’ in CSS? Pe care ai
    alege-o și de ce?
  • Descrie ‘Float’ si cum funcționează.
  • Descrie z-index și cum se formează stacking context.
  • Descrie BFC(Block Formatting Context) și cum functionează.
  • Care sunt diferitele metode de a ‘curăța’ (clearing) și care este potrivită
    pentru ce context?
  • Explică conceptul de CSS sprites și cum le-ai implementa pe o pagină sau
    un site.
  • Care sunt tehnicile tale preferate pentru înlocuirea imaginilor și care
    când le folosești?
  • Hack-uri de proprietăți CSS, includerea condițională a fișierelor .css,
    sau… altceva?
  • Cum servești pagini pentru browsere cu capabilități reduse?
    • Ce procese/tehnici folosești?
  • Care sunt diferitele modalități de a ascunde vizual conținut (dar sa-l
    faci disponibil pentru cititoare de ecrane) ?
  • Ai folosit vreodată un sistem ‘grid’ și dacă da, ce preferi?
  • Ai folosit sau implementat ‘media queries’ sau interfețe/CSS specific
    pentru mobile?
  • Ești familiar cu stilizarea unui SVG?
  • Cum optimizezi paginile pentru print?
  • Ceva ‘gotchas’ când scrii CSS eficient?
  • Care sunt avantajele/dezavantajele folosirii preprocesoarelor CSS (SASS,
    Compass, Stylus, LESS)
    • Descrie ce îți place respectiv nu îți place la preprocesoarele CSS pe
      care le-ai folosit
  • Cum ai implementa un design care folosește fonturi non-standard?
  • Explică cum un browser determina ce elemente se potrivesc unui selector CSS?
  • Descrie ‘pseudo-elements’ și explică la ce sunt folosite.
  • Explică, în cuvintele tale, conceptul “box model” si cum ai instrui
    browser-ul, prin CSS, sa randeze layoutul în modele diferite.
  • Ce face * { box-sizing: border-box; }? Care sunt avantajele?
  • Ce proprietăți de display știi?
  • Care este diferența între inline și inline-block?
  • Care este diferența între poziționarea relativă, fixă, absolută și statică
    a unui element?
  • C-ul din CSS vine de la Cascading. Cum este determinată prioritatea în
    atribuirea stilului (câteva exemple)? Cum folosești acest sistem în avantajul
    tău?
  • Ce framework CSS ai folosit local sau în producție? (Bootstrap, PureCSS,
    Foundation etc.)
    • Ce ai schimba / îmbunătăți la ele?
  • Ai avut ocazia să te joci cu noile specificații pentru CSS Flexbox sau Grid?
  • Cum este design-ul ‘responsive’ diferit de cel ‘adaptive’?
  • Ai lucrat vreodata pentru retina display? Dacă da, când și ce tehnici ai
    folosit?
  • Este vreun motiv pentru care ai vrea să folosești translate() în loc de
    posiționare absolută sau invers? De ce?

####[⬆] Întrebări despre JS:

  • Explică “event delegation”.
  • Explică cum funcționează this în JavaScript.
  • Explică cum funcționează moștenirea prototipală.
  • Cum îti testezi codul JavaScript?
  • Ce părere ai despre AMD vs. CommonJS?
  • Explică de ce următoarea nu functionează ca un IIFE: function foo(){ }();
    • Ce trebuie schimbat ca să o transformi într-o IIFE?
  • Care este diferența dintre o variabilă care este: null, undefined sau
    undeclared?
    • Cum ai face sa verifici după fiecare dintre stările acestea?
  • Ce este un “closure” și cum/de ce ai folosi unul?
  • Care este un caz în care sunt folosite funcții anonime?
  • Cum îți organizezi codul? (module pattern, moștenire?)
  • Care este diferența dintre obiecte host si obiecte native?
  • Diferența dintre: function Person(){}, var person = Person() și
    person = new Person()
  • Care este diferența dintre .call și .apply?
  • Explică Function.prototype.bind?
  • Când îți optimizezi codul?
  • Când ai folosi document.write()?
  • Care este diferența dintre ‘feature detection’, ‘feature inference’ și
    folosirea șirului User Agent?
  • Explică AJAX cât mai detaliat posibil.
  • Explică cum funcționează JSONP (și cum nu este chiar AJAX ).
  • Ai folosit vreodată template-uri JavaScript?
    • Dacă da, ce librării ai folosit? (Mustache.js, Handlebars etc.)
  • Explică “hoisting”.
  • Descrie “event bubbling”.
  • Care este diferența dintre un atribut și o proprietate?
  • De ce nu este o idee bună extinderea obiectelor JavaScript “built-in”?
  • Care este diferența dintre evenimentul “document load” și “document ready”?
  • Care este diferența dintre “==” și “===”?
  • Explică politica “same-origins” în legătură cu JavaScript.
  • Fă următorul cod să funcționeze:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ce este o expresie ternară și ce indică cuvântul ternar?
  • Ce este "use strict;" și care sunt avantajele și dezavantajele folosirii
    acestuia?
  • Create a for loop that iterates up to 100 while outputting "fizz"
    at multiples of 3, "buzz" at multiples of 5 and “fizzbuzz” at
    multiples of 3 and 5.
  • De ce este, de regulă, o idee bună să nu poluezi scope-ul global al unui
    website?
  • Explică ce este o ‘single page app’ și cum ai putea să improvizezi SEO-ul?
  • Care este gradul tău de experiență cu ‘Promises’ și/sau ‘polyfills’-ul lor?
  • Care sunt avantajele și dezavantajele in a folosi ‘Promises’ in loc de
    ‘callbacks’ ?
  • Care sunt avantajele și dezavantajele prin a scrie JavaScript într-o limbă ce
    compilează JavaScript?
  • Ce unelte si tehnici foloșeti pentru a ‘depana’ (debug) JavaScript?
  • Ce construcții de limbaj folosești pentru a itera peste proprietățile obiectelor și
    elmentele listelor (array)?
  • Explică diferența dintre obiectele mutabile și imutabile.
  • Ce exmplu de obiect imutabil poți da în JavaScript?
  • Avantaje si dezavantaje a imutabilității?
  • Cum poți obține imutabilitate în propriul cod?
  • Explică diferența dintre funcțiile sincrone (synchronous) și
    asincrone (asynchronous).
  • Ce este un ‘even loop’?
  • Care este diferența dintre ‘call stack’ si ‘task queue’?

####[⬆] Întrebări despre testare:

  • Care sunt avantajele/dezavantajele în a-ți testa codul?
  • Ce unelte ai folosi pentru a testa functionalitatea codului?
  • Care este diferența dintre unitatea de testare (unit test) și testarea de
    funcționalitate/integrare?
  • Care este scopul unei unelte de lintarea a stilului de cod?

####[⬆] Întrebări despre perfomanță:

  • Ce unelte ai folosi pentru a găsi bug-uri de performanță in codul tau?
  • Ce diferite metode prin care ai putea îmbunătăți performanța defilării
    (scroll) a unui site știi?
  • Explică diferența dintre o schemă (layout), desenare (painting) și compoziție
    (compositing).

####[⬆] Întrebări despre rețea:

  • Tradițional, de ce a fost mai bine să servești resurse de pe mai multe domenii?
  • Încearcă să descrii cât mai bine ce se întâmplă din momentul în care scrii
    un URL-ul unui site în browser până când este complet încărcat pe ecranul tău.
  • Care sunt diferențele dintre Long-Polling, WebSockets și Server-Sent Events?
  • Explică semnificația următoarelor antete HTTP:
    • Diferența dintre Expires, Date, Age și If-Modified
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Care sunt acțiunile HTTP? Listează toate acțiunile HTTP pe care le ști și
    explică-le.

####[⬆] Întrebări despre cod:

Întrebare: Care este valoarea lui foo?

var foo = 10 + '20';

Întrebare: Ce valoare returnează următorul cod?

console.log(0.1 + 0.2 == 0.3);

Întrebare: Cum ai face următoarea să funcționeze?

add(2, 5); // 7
add(2)(5); // 7

Întrebare: Ce valoare este returnată de expresia următoare?

"i'm a lasagna hog".split("").reverse().join("");

Întrebare: Care este valoare lui window.foo?

( window.foo || ( window.foo = "bar" ) );

Întrebare: Care este rezultatul celor două apelări ale funcției alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Întrebare: Care este valoarea lui foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Întrebare: Care este valoarea lui foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Întrebare: Ce output printează acest cod?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

####[⬆] Întrebări amuzante:

  • Povestește-mi despre un proiect mișto la care ai lucrat recent?
  • Ce îți place cel mai mult la uneltele de dezvoltare pe care le folosești?
  • Ai proiecte personale? Ce fel?
  • Care este funcționalitatea ta preferată din Internet Explorer?
  • Cum îți place cafeaua?

####[⬆] Contribuitori:

Acest document a început în 2009 ca o colaborare între
@paul_irish
@bentruyman
@cowboy
@ajpiano
@SlexAxton
@boazsender
@miketaylr
@vladikoff
@gf3
@jon_neal
@sambreed și
@iansym.

De atunci au contribuit mai mult de 100 de
persoane
!

\ No newline at end of file diff --git a/_site/translations/russian/index.html b/_site/translations/russian/index.html new file mode 100644 index 000000000..f629d41dc --- /dev/null +++ b/_site/translations/russian/index.html @@ -0,0 +1 @@ +Вопросы кандидату на должность front-end разработчика ★ Front-end Job Interview Questions

Вопросы кандидату на должность front-end разработчика

Вопросы кандидату на должность front-end разработчика

Замечание: Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность front-end разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь).

Также имейте в виду, что многие вопросы не требуют однозначного короткого ответа, а лишь помогают завести беседу на ту или иную тему (предоставляя кандидату возможность показать себя во всей красе).

Содержание

  1. Авторы
  2. Общие вопросы
  3. Вопросы по HTML
  4. Вопросы по CSS
  5. Вопросы по JavaScript
  6. Вопросы по тестированию
  7. Вопросы по производительности
  8. Вопросы по сетям
  9. Примеры кода на JavaScript
  10. “Светская беседа”

[⬆] Авторы

Этот проект был запущен в 2009 году в сотрудничестве с @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed и @iansym.

В настоящее время этот проект поддерживают:

С тех пор он был активным благодаря этим замечательным людям.

[⬆] Общие вопросы:

  • Что вы изучили вчера/на этой неделе?
  • Что вас привлекает в программировании?
  • С какой технической сложностью вы недавно столкнулись и как с ней справились?
  • Какие методы для повышения производительности вы использовали при создании или обслуживании сайта?
  • Можете ли вы описать некоторые методы SEO, которые вы использовали в последнее время?
  • Можете ли вы объяснить общие принципы относительно front-end безопасности или недавние проблемы, которые вы решили?
  • Какие действия вы лично предприняли в недавних проектах для повышения удобства использования вашего кода?
  • Расскажите о предпочтительной среде разработки.
  • С какими системами контроля версий вы знакомы?
  • Можете ли вы описать порядок действий при создании новой веб-страницы?
  • Если у вас есть 5 разных файлов со стилями, какой лучший способ интегрировать их в сайт?
  • Можете ли вы описать разницу между прогрессивным улучшением и изящной деградацией?
  • Как можно оптимизировать загрузку внешних ресурсов на странице?
  • Сколько ресурсов браузер может одновременно загружать с одного домена?
    • Какие есть исключения?
  • Назовите три способа уменьшения времени загрузки страницы (воспринимаемого или реального).
  • Если вы присоединились к проекту, где для форматирования используются табы, а вы привыкли использовать пробелы, как вы поступите?
  • Опишите, как бы вы реализовали примитивное слайд-шоу.
  • Если бы у Вас была возможность освоить новую технологию в этом году, что бы это было?
  • Объясните важность стандартов и комитетов по стандартам.
  • Что такое FOUC (Flash Of Unstyled Content)? Как его избежать?
  • Объясните, что такое ARIA и скринридеры, а также как сделать вебсайт доступным.
  • Какие преимущества и недостатки у CSS и JavaScript анимаций?
  • Что означает CORS и какую проблему решает?

[⬆] Вопросы по HTML:

  • Для чего нужен doctype?
  • Как следует оформлять страницу, содержимое которой может быть на разных языках?
  • На что необходимо обратить внимание при разработке мультиязычных сайтов?
  • Для чего отлично подойдут data- атрибуты?
  • Представьте HTML5 как открытую веб-платформу. Из каких блоков состоит HTML5?
  • Объясните разницу между cookie, sessionStorage и localStorage.
  • Объясните разницу между <script>, <script async> и <script defer>.
  • Почему хорошей практикой считается располагать <link> для подключения CSS между <head></head>, а <script> для подключения JS ставить перед </body>? Знаете ли вы исключения?
  • Что такое прогрессивный рендеринг?
  • Для чего используется атрибут srcset в теге изображения? Опишите процесс, который использует браузер при оценке содержимого этого атрибута.
  • Приходилось ли вам работать с языками HTML-шаблонизации?

[⬆] Вопросы по CSS:

  • Что такое специфичность CSS селекторов и как она работает?
  • В чем разница между “сбросом” и “нормализацией” CSS? Что бы вы выбрали и почему?
  • Объясните, что такое плавающие элементы (floats) и как они работают.
  • Объясните, что такое z-index и как формируется контекст наложения.
  • Объясните, что такое блочный контекст форматирования и как он работает.
  • Какие вы знаете методы запрета обтекания (clearing) и в каких случаях они применяются?
  • Как вы решаете стилевые проблемы, связанные с особенностями браузеров?
  • Как вы обеспечиваете отображение страниц в браузерах с ограниченными возможностями?
    • Какие приёмы/процессы вы при этом используете?
  • Какими способами можно визуально скрыть элемент (оставив его доступным только для скринридера)?
  • Использовали ли вы систему сеток, и если да, то какую вы предпочитаете?
  • Приходилось ли Вам использовать или реализовывать медиа-запросы или вёрстку под мобильные устройства?
  • Вы знакомы со стилизацией SVG?
  • Можете ли вы привести пример свойства @media, отличного от screen?
  • На что нужно обратить внимание при написании эффективного CSS?
  • Какие преимущества/недостатки в использовании CSS препроцессоров?
    • Опишите, что вам нравится и не нравится в CSS препроцессорах, которыми вы пользовались.
  • Как вы реализуете макет, который использует нестандартные шрифты?
  • Объясните, как браузер определяет, на какие элементы накладывать CSS стили?
  • Объясните, что такое псевдоэлементы и для чего они нужны.
  • Объясните своими словами, что такое блочная модель.
  • Что делает * { box-sizing: border-box; }? В чем его преимущества?
  • Что означает свойство display и можете ли вы привести несколько примеров его использования?
  • В чем разница между строчным и блочно-строчным элементом?
  • В чем разница между относительным, фиксированным, абсолютным и статически позиционированным элементом?
  • Какими CSS фреймворками вы пользовались? Что бы вы хотели в них изменить/улучшить?
  • Пользовались ли вы Flexbox или Grid?
  • Можете ли вы объяснить разницу между responsive сайтом и mobile-first?
  • Вы имеете опыт работы с ретиновой графикой? Если да, то какие методы вы использовали?
  • В каком случае вы предпочтёте использовать translate() вместо абсолютного позиционирования и наоборот? И почему?

[⬆] Вопросы по JavaScript:

  • Объясните делегирование событий.
  • Объясните, как this работает в JavaScript.
  • Расскажите, как работает прототипное наследование.
  • Что вы думаете о AMD против CommonJS?
  • Объясните, почему это не является IIFE: function foo(){ }();.
    • Что необходимо изменить, чтобы это стало IIFE?
  • В чём различие между переменными, значение которых: null, undefined и не объявлено?
    • Как бы вы проверили их на каждое из этих значений?
  • Что такое замыкание и как/для чего его используют?
  • Можете ли вы описать основное различие между циклом forEach и циклом .map()? И в каких случаях каждый из них используется?
  • В каких случаях обычно используются анонимные функции?
  • Как вы организуете свой код? (module pattern, classical inheritance)
  • В чем разница между host-объектами и нативными объектами?
  • В чем разница между: function Person(){}, var person = Person(), и var person = new Person()?
  • В чем разница между .call и .apply?
  • Что делает и для чего нужна функция Function.prototype.bind?
  • В чем разница между feature detection (определение возможностей браузера), feature inference (предположение возможностей) и анализом строки user-agent?
  • Расскажите об Ajax как можно более подробно.
  • Какие преимущества и недостатки в использовании Ajax?
  • Объясните, как работает JSONP (и почему это не совсем AJAX).
  • Вы когда-нибудь использовали шаблонизацию на JavaScript?
    • Если да, то какие библиотеки вы использовали?
  • Расскажите, что такое “hoisting”.
  • Объясните event bubbling.
  • В чём разница между “атрибутом” (attribute) и “свойством” (property)?
  • Почему не следует расширять нативные JavaScript объекты?
  • В чём разница между событием document load и событием document DOMContentLoaded?
  • В чем разница между == и ===?
  • Объясните same-origin policy в контексте JavaScript.
  • Сделайте так, чтобы этот код работал:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Почему тернарный оператор так называется?
  • Что делает строчка "use strict";? Какие достоинства и недостатки от ее использования?
  • Напишите цикл, который перебирает числа до 100, возвращая “fizz” на числа кратные 3, “buzz” на числа кратные 5 и “fizzbuzz” на числа кратные 3 и 5
  • Почему считается хорошим тоном оставить глобальную область видимости (global scope) в нетронутом состоянии?
  • Для чего используют событие load? Есть ли у этого события недостатки? Знаете ли вы какие-либо альтернативы, и в каких случаях бы стали их использовать?
  • Расскажите, что такое одностраничное приложение, и как сделать его SEO-оптимизированным.
  • Насколько вы опытны в работе с промисами (promises) и/или их полифиллами?
  • Какие преимущества и недостатки при использовании промисов вместо функций обратного вызова (callbacks)?
  • Каковы преимущества и недостатки написания JavaScript кода на языке, который компилируется в JavaScript?
  • Какие инструменты и методы вы используете при отладке кода?
  • Какие языковые конструкции вы используете для итерации по свойствам объекта и элементам массива?
  • Объясните разницу между изменяемыми (mutable) и неизменяемыми (immutable) объектами.
    • Приведите пример неизменяемого объекта в JavaScript.
    • Какие преимущества и недостатки у неизменяемости?
    • Как вы можете достигнуть неизменяемости в вашем коде?
  • Объясните разницу между синхронными и асинхронными функциями.
  • Что такое цикл событий (event loop)?
    • В чем разница между стеком вызовов (call stack) и очередью событий (task queue)?
  • Объясните разницу при использовании foo в function foo() {} и var foo = function() {}
  • В чём различие между переменными, созданными при помощи let, var и const?
  • В чём разница между классом в ES6 и функцией-конструктором в ES5?
  • Можете ли вы привести пример использования стрелочных функции =>? Чем они отличаются от других функций?
  • Дайте определение функции высшего порядка.
  • Можете ли вы привести пример деструктуризации объекта или массива?
  • Шаблонные строки в ES6 намного упрощают создание строк, можете ли вы привести пример их использования?
  • Можете ли вы привести пример каррированной функции (curry function) и в чём их преимущество?
  • В чём преимущества использования spread оператора и чем он отличается от rest оператора?
  • Каким образом можно обмениваться кодом между файлами?
  • Для чего используются статические члены класса?

[⬆] Вопросы по тестированию:

  • Какие преимущества/недостатки в тестировании собственного кода?
  • Какие инструменты вы будете использовать для тестирования работоспособности своего кода?
  • В чём различие между юнит-тестами и функциональными/интеграционными тестами?
  • Для чего предназначены линтеры (code style linting tool)?

[⬆] Вопросы по производительности:

  • Какие инструменты вы используете, чтобы найти недостатки в производительности вашего кода?
  • Какие вы знаете способы улучшения производительности при скроллинге на вебсайте?
  • Объясните разницу между layout, painting и compositing.

[⬆] Вопросы по сетям:

  • Почему лучше загружать ресурсы для сайта с нескольких доменов?
  • Опишите весь процесс, начиная с ввода адреса сайта в адресную строку до окончания его загрузки на экране.
  • В чём различия между Long-Polling, Websockets и Server-Sent Events?
  • Опишите следующие заголовки HTTP-запросов и ответов:
    • Разницу между Expires, Date, Age и If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Что такое HTTP методы? Перечислите все HTTP-методы, которые вы знаете, и объясните их.

[⬆] Примеры кода на JavaScript

Вопрос: Чему равно foo?

var foo = 10 + '20';

Вопрос: Что выводит код ниже?

console.log(0.1 + 0.2 == 0.3);

Вопрос: Как сделать, чтобы это выражение работало?

add(2, 5); // 7
add(2)(5); // 7

Вопрос: Какое значение возвращает данное выражение?

"i'm a lasagna hog".split("").reverse().join("");

Вопрос: Чему равно window.foo?

( window.foo || ( window.foo = "bar" ) );

Вопрос: Что покажут эти два alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Вопрос: Чему равно foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Вопрос: Чему равно foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Вопрос: Что выводит код ниже?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Вопрос: В чем разница между этими четырьмя промисами (promises)?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);

[⬆] “Светская беседа”:

  • Самое крутое, что вы когда-либо делали и чем гордитесь?
  • Что вы больше всего любите в ваших инструментах разработки?
  • Кто из фронтенд-сообщества вас вдохновляет?
  • У вас есть какие-нибудь личные проекты? Какого рода?
  • Какая ваша любимая “фишка” Internet Explorer?
  • Какой кофе вы предпочитаете?
\ No newline at end of file diff --git a/_site/translations/serbian/index.html b/_site/translations/serbian/index.html new file mode 100644 index 000000000..1a4fe9bae --- /dev/null +++ b/_site/translations/serbian/index.html @@ -0,0 +1 @@ +Intervju za posao Front-end Developer-a ★ Front-end Job Interview Questions

Intervju za posao Front-end Developer-a

Intervju za posao Front-end Developer-a

@version 0.0.1

Ovaj repo sadrži mnogobrojna pitanja za intervju iz oblasti front-end develpment-a koja možete koristiti u proceni mogućih kandidata.
Ne preporučuje se korišćenje svih pitanja jer bi intervju trajao dugo. Izbor od nekoliko pitanja sa ove liste bi Vam pomogao.

Pre intevjua, preporučujemo da proučite članak: Rebecca Murphey Baseline For Front-End Developers.

Napomena: Uzmite u obzir da veliki broj dole navedenih pitanja može biti korisna tema za razgovor koja će Vam možda reći vise o sposobnostima osobe nego direktni odgovori.

####Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je originalno pokrenuo Paul Irish (@paul_irish) i kojoj su doprineli:

Opšta pitanja:

  • Opišite Vaš omiljeni radni prostor. (OS, Editor, Browseri, Alati itd.)
  • Opišite Vaš proces izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektovanje mogućnosti browsera
  • Objasnite šta je to “Semantički HTML”.
  • Kako biste optimizirali infrastrukturu i resurse web stranice?
    • Traže se više rešenja, na primer:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korišćenje CDN-a
      • Keširanje (Caching)
      • itd.
  • Zbog čega je bolje preuzimati delove stranice sa više domena?
    • Koliko resursa browser može preuzeti istovremeno sa jednog domena?
  • Navedite tri načina za smanjivanje vremena učitavanja strane. (uočeno ili stvarno vrieme učitavanja)
  • Ako bi došli na projekt gde se koriste tabovi a Vi koristite razmake, šta biste uradili?
    • Preporučili korištenja EditorConfig-a (http://editorconfig.org)
    • Prilagodili se postojećoj praksi (zadržavanje konzistentnosti)
    • koristili :retab! naredbu
  • Napravite jednostavnu stranicu za prezentacije
    • Bonus bodovi ako se ne koristi JavaScript.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kada bi ste odabrati jednu tehologiju koju ćete naučiti ove godine, koja bi to bila?
  • Objasnite važnost standarda i organizacija za standardizaciju
  • Šta je to FOUC? Kako možete izbeći FOUC?

HTML pitanja:

  • Koja je funkcija doctype?
  • Koja je razlika između standardnog i quirks moda?
  • Koja su ograničenja u obsluživanju XHTML standarda?
    • Postoje li problemi kod obsluživanju stranica sa header-om application/xhtml+xml?
  • Kako biste obslužili stranicu sa višejezičnim sadržajem?
    • Na što morate obratit pažnju prilikom dizajna ili razvoja višejezične stranicu?
  • Čemu služe data- atributi?
  • Posmatrajte HTML5 kao platformu otvorenog koda. Koji su gradivni elementi HTML-a 5?
  • Objasnite razliku između kolačića, podataka sesije (sessionStorage) i lokalnog snimanja.

CSS pitanja:

  • Objasnite čemu služi “reset” CSS i zašto je koristan.
  • Opišite šta su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i u kojim slučajevima bi ste ih koristili?
  • Objasnite CSS sprite-ove i kako se koriste na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamene slike i kada ih koristite?
  • Koje su Vaše omiljene tehnike: CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako obslužujete sadržaj za browser-e slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (vidljivi su samo za screen reader-e)?
  • Da li ste ikada koristili grid system, i ako jeste koji Vam je omiljeni?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifične za mobilne?
  • Imate li iskustva u stilizovanju SVG slika?
  • Kako prilagođavate stranicu za štampu?
  • Šta se podrazumeva pod dobrom praksom za pisanje efikasnog CSS-a?
  • Koje su prednosti/nedostatci korišćenja CSS pred-procesora? (SASS, Compass, Stylus, LESS)
    • Opišite što vam se sviđa ili ne sviđa kod CSS pred-procesora koje ste koristili.
  • Objasnite kako bi ste napravili stranicu čiji dizajn ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.
  • Objasnite Vaše razumevanje “box model”-a i na koji način bi ste naveli browser da prikaže (render) izgled vaše strane?

JavaScript pitanja:

  • Objasnite delegaciju događaja
  • Objasnite kako se u Javascriptu koristi this
  • Objasnite nasleđivanje prototype-a
  • Kako testirate JavaScript?
  • AMD ili CommonJS?
  • Šta je to hash tabela?
  • Objasnite zašto sledeća funkcija neće raditi kao IIFE: function foo(){ }();?
    • Šta treba izmeniti da bi radila kao IIFE?
  • U čemu je razlika između null, undefined i undeclared?
    • Kako bi ste promenili ova stanja?
  • Šta je closure, kako i zašto se koristi?
  • Koja je uobičajena primena anonimne funkcije?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za predlog namespacing-a
    • Šta ako su moduli bez namespacing-a?
  • Kako organizujete Vaš kod? (module pattern, klasično nasleđivanje?)
  • Koja je razlika između host i native objekta?
  • Koja je razlika između function Person(){}, var person = Person(), i var person = new Person()?
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kada optimizirate Vaš kod?
  • Možete li objasniti nasleđivanje u JavaScriptu?
  • Kada koristite document.write()?
    • Većina oglasa još uvijek koristi document.write() iako se to ne preporučuje.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korišćenja UA string-a?
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i u čemu se razlikuje od pravog AJAX-a)
  • Da li ste ikad koristili JavaScript template?
    • Ako da, koje ste koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi ste pročitali parametar URL adrese
  • Objasnite pravilo jednog izvora gledano sa staništa JavaScript-a.
  • Opišite načine nasleđivanja u JavaScript-u.
  • Popravite: [1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Objasnite memoization strategiju (izbegavanje ponavljanja računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Šta je arity funkcije?
  • Šta radi "use strict";? Koje su mane, koje prednosti?

jQuery pitanja:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korišćenja jQuery-a znate?
  • Čemu služi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u namespace?
  • Navedite četri vrednosti koje možete poslati jQuery metodu.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Čemu služi red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor: $(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Kod vežbe:

modulo(12, 5) // 2

Pitanje: Napišite modulo funkciju koja daje rezultat prikazan iznad

"i'm a lasagna hog".split("").reverse().join("");

Pitanje: Šta će biti vraćeno iz funkcije prikazane iznad?

Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koja je vrednost window.foo?

Odgovor: "bar"

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Šta će se desiti kao rezultat 2 alerta iznad?

Odgovor: “Hello World” i ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrednost foo.length?

Odgovor: 2

Zanimljiva pitanja:

  • Šta je najzanimljivije što ste napravili do sad? na čemu ste najponosniji?
  • Šta Vam je najinteresantnije u alatima koje koristite za rad?
  • Imate li neke hobi projekte? Koje?
  • Šta Vam se najviše sviđa kod Internet Explorer?

Dodatni clanci

\ No newline at end of file diff --git a/_site/translations/slovakian/index.html b/_site/translations/slovakian/index.html new file mode 100644 index 000000000..1b75eba5f --- /dev/null +++ b/_site/translations/slovakian/index.html @@ -0,0 +1 @@ +Otázky k pohovoru; front-end vývojár ★ Front-end Job Interview Questions

Otázky k pohovoru; front-end vývojár

Otázky k pohovoru: front-end vývojár

Tento repozitár obsahuje rad otázok, ktoré môžete položiť pri pohovore kandidátovi na pozíciu front-end vývojár a overiť si tak jeho znalosti v tomto odbore. Nie je zamýšľané položiť všetky tieto otázky (ich korektné zodpovedanie by trvalo hodiny), bohato postačí len určitú časť vyhovujúci vašim potrebám.

Za prečítanie stojí tiež Baseline For Front-End Developers (anglicky) od Rebecci Murphey.

Poznámka: Majte na pamäti, že tieto otázky majú viesť skôr k diskusii na danú tému a prezradiť tak niečo viac o schopnostiach daného vývojára, než aby boli zodpovedané jedným slovom alebo vetou.

Obsah

  1. Pôvodní prispievatelia
  2. Všeobecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky
  9. Ďalšie zaujímave referencie

####[⬆] Pôvodní prispievatelia:

Väčšina otázok bola prevzatá z oksoclap pôvodne vytvoreného Paulom Irishom (@paul_irish) a následne doplnená týmito osobami:

####[⬆] Všeobecné otázky:

  • Čo ste sa naučili včera/minulý týždeň nové?
  • Čo vás vzrušuje alebo zaujíma na kódovaní?
  • Povedzte niečo o vašom obľúbenom vývojovom prostredí (operačný systém, editor, prehliadač, nástroje, …).
  • Opíšte ako postupujete pri vytváraní novej webovej stránky.
  • Dokážete vysvetliť rozdiel medzi pozvoľným degradováním (graceful degradation) a postupným vylepšovaním (progressive enhancement)?
      * Body navyše za opis detekcie pokročilej funkcionality
  • Vysvetlite pojem “sémantické HTML”.
  • Ako by ste optimalizovali zdroje (obrázky, JS, CSS, …) webovej stránky?
      * K dispozícii je celý rad optimalizácií napr.:
        * spájanie súborov
        * minifikácia súborov
        * CDN hosťovanie
        * caching, …
  • Prečo je lepšie posielať zdroje webovej stránky z viacerých domén?
      * Koľko súborov môže z danej domény sťahovať prehliadač naraz?
  • Vymenujte tri spôsoby ako znížiť dobu nahrávania webovej stránky (vnímanú alebo skutočnú dobu nahrávania).
  • Ak nastúpite do projektu, kde sa namiesto odsadzovania tabulátormi používajú medzery, čo urobíte?
      * Navrhnutie, že projekt by mohol využívať niečo ako EditorConfig (http://editorconfig.org)
      * Prispôsobenie sa konvencii (ale zostať konzistentný).
      * issue :retab ! command
  • Napíšte jednoduchú stránku so slideshow.
      * Body navyše pokiaľ nepoužíva JS.
  • Aké nástroje používate pre testovanie rýchlosti vášho kódu?
      * Profiler, JSPerf, Dromaeo
  • Ak by ste sa chcel/chcela tento rok naučiť jednu novú technológiu, ktorá by to bola?
  • Vysvetlite dôležitosť štandardov a štandardizačných orgánov.
  • Čo to je FOUC? Ako je možné sa vyhnúť FOUC?

####[⬆] HTML otázky:

  • Čo robí doctype?
  • Aký je rozdiel medzi štandardným a tkz. quirks módom?
  • Aké sú obmedzenia pri poskytovaní XHTML stránok?
      * Existuje nejaký problém pri poskytovaní stránok ako application/xhtml+xml?
  • Ako poskytujete stránku s viacjazyčným obsahom?
      * Na čo všetko si musíte dať pozor pri vytváraní viacjazyčnej stránky?
  • K čomu sú dobré atribúty data-?
  • Uvažujte o HTML5 ako o otvorenej platorme. Aké sú základné stavebné kamene HTML5?
  • Opíšte rozdiel medzi cookies, sessionStorage a localStorage.

####[⬆] CSS otázky:

  • Opíšte čo robí a na čo je dobrý “reset” CSS súbor.
  • Opíšte obtekanie (floats) a ako funguje.
  • Popíšte rôzne techniky pre zastavenie obtekanie (clear fixing) a povedzte, ktoré sa hodia v ktorom kontexte.
  • Vysvetlite, čo to sú CSS sprites a ako by ste ich implementovali.
  • Aká je vaša obľúbená technika pre nahrádzanie obrázkov a ktorú a kedy používate?
  • CSS property hacks, podmienené vkladanie .css súborov alebo niečo ďalšie?
  • Ako poskytujete stránky pre funkcionálne/vlastnosťami obmedzený prehliadač?
      * Akú techniku​/proces používate?
  • Aké sú spôsoby pre zneviditeľnie obsahu (a zachovanie jeho dostupnosti pre čítačky)?
  • Použili ste niekedy grid systém a ak áno, ktorý uprednostňujete?
  • Použili ste niekedy mediálne selektory (media query) alebo špecifický layout/CSS pre mobilné zariadenia?
  • Máte nejaké skúsenosti so štýlovaním SVG?
  • Ako optimalizujete stránky pre tlač?
  • Aké sú zásady pre písanie efektnivního CSS?
  • Aké sú výhody/nevýhody použítia CSS preprocesorov (SASS, Compass, Stylus, LESS)?
      * Popíšte, čo sa Vám na CSS preprocesoroch, ktoré ste použili, páči/nepáči.
  • Ako by ste implementovali návrh webovej stránky, ktorá používa neštandardné rezy písma?
      * Webfonts (služby typu: Google Webfonts, Typekit, …)
  • Vysvetlite ako prehliadač určuje, ktorý element zodpovedá CSS selektoru.
  • Vysvetlite vaše chápanie box modelu a ako poviete pomocou CSS prehliadaču, aby váš layout vykreslil v odlišnom box modele

####[⬆] JS otázky:

  • Vysvetlite delegáciu udalostí.
  • Vysvetlite ako funguje this v JavaScripte.
  • Vysvetlite ako funguje prototypová dedičnosť.
  • Ako testujete JavaScript?
  • AMD vs. CommonJS?
  • Čo je hashovacia tabuľka?
  • Vysvetlite prečo nasledujúce volanie nebude fungovať ako IIFE : function foo(){ }();.
      * Čo musíte zmeniť, aby volania zafungovalo ako IIFE?
  • Vysvetlite rozdiel medzi premennou, ktorá je null, undefined alebo undeclared?
      * Akým spôsobom by ste overili tieto jednotlivé stavy?
  • Čo to je “closure” a ako/prečo by sme ich mali používať?
  • Aké je typické využitie pre anonymné funkcie?
  • Vysvetlite “JavaScript module pattern” a kedy by ste ho mali použiť.
      * Body navyše za zmienku o čistých menných priestoroch.
      * Čo ak sú vaše moduly bez menného priestora?
  • Ako organizujete váš kód? (module pattern, klasická dedičnosť?)
  • Aký je rozdiel medzi natívnymi a hostiteľskými objektami?
  • Rozdiel medzi:
function Person(){}
var person = Person()
var person = new Person()
  • Aký je rozdiel medzi .call a .apply?
  • Aký je rozdiel medzi undefined a null?
  • Vysvetlite Function.prototype.bind.
  • Kedy optimalizujete váš kód?
  • Vysvetlite ako funguje dedičnosť v JavaScripte.
  • Kedy by ste použili document.write()?
      * Väčšina generovaných reklám stále používa tento prístup aj napriek tomu, že je to dlhodobo odsudzované.
  • Aký je rozdiel medzi detekciou vlastností, odvodenie vlastností a použitie UA reťazca?
  • Vysvetlite AJAX čo najpodrobnejšie to ide.
  • Vysvetlite ako funguje JSONP (a prečo to nie je naozajstný AJAX).
  • Použili ste niekedy JavaScriptové šablóny?
      * Ak áno, ktoré knižnice ste použili (mustache.js, Handlebars, …)?
  • Vysvetlite “hoisting”.
  • Vysvetlite prebublávanie udalostí.
  • Aký je rozdiel medzi atribútom (attribute) a vlastnosťou (property)?
  • Prečo nie je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Prečo je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Aký je rozdiel medzi udalosťami “document load” a “document ready”?
  • Aký je rozdiel medzi == a ===?
  • Vysvetlite akým spôsobom získate parameter z URL zadaného v okne prehliadača.
  • Vysvetlite JavaScriptové pravidlo rovnakého pôvodu (same-origin policy).
  • Opíšte prístupy dedenia v JavaScripte.
  • Nasledujúci kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opíšte stratégia pre memorizáciu (odstránenie opakovaných výpočtov) v JavaScripte.
  • Prečo sa hovorí ternárny operátor, čo označuje slovo ternárny?
  • Čo je označované ako “arita” funkcie?
  • Čo znamená "use strict";? Aké sú výhody a nevýhody použitia?

####[⬆] jQuery otázky:

  • Vysvetlite reťazenie (chaining).
  • Vysvetlite odkladanie (deferreds).
  • Aké poznáte a viete implementovať optimalizácie špeciálne pre jQuery?
  • Čo robí .end()?
  • Ako a prečo by ste váš “event handler” zaopatrili menným priestorom?
  • Vymenujte štyri rôzne typy hodnôt, ktoré môžete odovzdať ako vstupný parameter metód v jQuery.
      * selektor (reťazec), HTML (reťazec), callback (funkcia), HTMLElement, object, polia, polia elementu, jQuery Object, …
  • Čo to je fronta efektov (alebo fx front)?
  • Aký je rozdiel medzi .get(), [] a .eq()?
  • Aký je rozdiel medzi .bind(), .live() a .delegate()?
  • Aký je rozdiel medzi $ a $.fn? Alebo len, čo je $.fn?
  • Zoptimalizujte tento selektor :
$(".foo div#bar:eq(0)");
  • Aký je rozdiel medzi .delegate() a .live()?

####[⬆] Otázky z kódu:

modulo(12, 5) // 2

Otázka: Implementujte funkciu modulo tak, aby splnila zadanie.

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Akú hodnotu vráti uvedený výraz?

Odpoveď:" goh angasal a m’i"

(window.foo || (window.foo = "bar"));

Otázka: Akú hodnotu má window.foo?

Odpoveď: “bar” (iba ak window.foo bolo false, inak vráti svojou hodnotu)

var foo = "Hello";
(function() {
var bar = "World";
alert(foo + bar);
})();
alert(foo + bar);

Otázka: Čo zobrazia uvedené dva alerty?

Odpoveď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Aká je hodnota foo.length?

Odpoveď: 2

####[⬆] Zábavné otázky:

  • Aká je najúžasnejšia vec, ktorú ste kedy nakódovali, alebo na ktorú ste najviac pyšní?
  • Aké sú vaše obľúbené časti vývojárskych nástrojov, ktoré používate?
  • Máte nejaký vlastný hobby projekt?
  • Aká je Vaša obľúbená vlastnosť Internet Exploreru?

####[⬆] Ďalšie zaujímave referencie:

\ No newline at end of file diff --git a/_site/translations/slovenian/index.html b/_site/translations/slovenian/index.html new file mode 100644 index 000000000..90d043e88 --- /dev/null +++ b/_site/translations/slovenian/index.html @@ -0,0 +1 @@ +Intervju vprašanja za front-end programerja ★ Front-end Job Interview Questions

Intervju vprašanja za front-end programerja

Intervju vprašanja za front-end programerja

@verzija 1.0

Obvestilo: Ta repositorij vsebuje vrsto front-end vprašanj, ki se lahko uporabijo za preverjanje potencialnih kandidatov. Ni priporočljivo, da se vsa vprašanja uporabijo za vsakega kandidata (to bi trajalo ure). Izberite nekaj vprašanj, ki vam bodo pomagala preveriti kandidata za znanja, ki jih potrebujete.

Mnogo teh vprašanj je odprtega tipa in lahko pripeljejo do zanimivih diskusij, ki vam bodo o kandidatih sporočili več, kot pa navaden kratek odgovor.

####Originalni Avtorji

Obvestilo: večino teh vprašanj je bilo pobranih iz foruma, ustvarjenega in vzdrževanega od nasljednjih ljudi:

Splošna vprašanja:

  • Ali uporabljaš Twitter?
    • Če ja, katerim osebam slediš?
  • Ali uporabljaš GitHub?
    • Če ja, katerim repositorijem slediš?
  • Katere bloge spremljaš?
  • Katere programe za hranjenje verzij si uporabljal/a (Git, SVN, …)?
  • Katero okolje najraje uporabljaš za razvoj? (OS, editor, brskalnik, orodja, …)
  • Lahko opišeš tvoj potek dela, ko kreiraš novo spletno stran?
  • Lahko opišeš razliko med “progressive enhancement” in “graceful degradation”?
    • bonus točke za opis “feature detection”-a
  • Razloži pojem “Semantic HTML”.
  • V katerem brskalniku primarno razvijaš in katera orodja uporabljaš?
  • Kako bi optimiziral/a nalaganje spletne strani (s stališča zahtevanih datotek)?
    • Iščemo več rešitev, ki med drugimi vklučujejo tudi:
      • Združevanje datotek
      • Minifikacija datotek
      • CDN gostovanje
      • Caching
  • Zakaj je bolje statične vsebine servirati z večih domen?
    • Koliko različnih datotek bo brskalnik prenesel iz ene domene na enkrat?
  • Naštej 3 načine za zmanjšanje “page load time”-a. (dejanski ali zaznavan “load time”).
  • Če bi se pridružil/a projektu, kjer uporabljajo “tab”-e, ti pa uporabljaš presledke, kaj bi storil/a?
  • Ustvari preprosto prezentacijsko stran (slide-show).
    • Bonus točke, če ne uporablja JS.
  • Katera orodja uporabljaš za testiranje performančnosti kode?
  • Če bi to leto lahko popolnoma osvojil/a novo tehnologijo, katera bi to bila?
  • Razloži pomembnost standardov in organov za nadzorovanje standardov.
  • Kaj je FOUC? Kako se izogneš FOUC-u?

HTML vprašanja:

  • Kaj naredi doctype in koliko različtih lahko našteješ?
  • Kaj je razlika med “standards mode” in “quirks mode”?
  • Kaj so omejitve pri serviranju XHTML strani?
    • Ali so kakšni problemi pri servviranju strani z application/xhtml+xml?
  • Kako serviraš stran z vsebino v večih jezikih?
    • Na katere stvari moraš paziti ko dizajniraš ali programiraš večjezično stran?
  • Ali lahko uporabljaš XHTML sintakso v HTML5?
  • Kako uporabljaš XML v HTML5?
  • Zakaj lahko uporabimo data- atribute?
  • Kaj so “content models” v HTML4 in ali so različni v HTML5?
  • Predpostavi da je HTML5 odprta spletna platforma. Kaj so gradniki HTML5?
  • Opiši razliko med “cookies”, “sessionStorage” in “localStorage”.

JavaScript vprašanja:

  • Katere JavaScript knjižnice si že uporabljal/a?
  • Si kdaj gledal/a izvorno kodo knjižnic/ogrodij, ki si jih uporabljal/a?
  • Razlika med Java in JavaScript?
  • Kaj je “hashtable”?
  • Kaj sta undefined in undeclared spremenljivki?
  • Kaj je “closure”, in zakaj/kako bi jo uporabil/a?
  • Tipičen primer uporabe anonimnih funkcij?
  • Razloži “JavaScript module pattern” in kdaj bi ga uporabil/a.
    • Bonus točke če omeni “clean namespacing”.
  • Kako organiziraš svojo kodo? (module pattern, classical inheritance?)
  • Razlika med “host object” in “native object”?
  • Razlika med:
function Person(){} var person = Person() var person = new Person()
  • Razlika med .call in .apply?
  • Razloži Function.prototype.bind?
  • Kdaj optimiziraš kodo?
  • Ali lahko razložiš dedovanje v JavaScript-u?
  • Kdaj bi uporabil/a document.write()?
  • Razlika med zaznavanjem funkcionalnosti, sklepanjem o funkcionalnosti in uporabljanjem UA niza.
  • Razloži AJAX s čim več detajli.
  • Razloži kako deluje JSONP (in zakaj to ni res AJAX).
  • Si že kdaj uporabil/a JavaScript “templates”-e?
    • Če ja, katere knjižnice si uporabil/a? (Mustache.js, Handlebars etc.)
  • Razloži “hoisting”.
  • Opiši “event bubbling”.
  • Razlika med “attribute” in “property”?
  • Zakaj je razširjanje vgrajenih JS objektov slaba ideja?
  • Zakaj je razširjanje vgrajenih JS objektov dobra ideja?
  • Razlika med “document load” in “document ready”?
  • Razlika med == in ===?
  • Kako bi dobil URL GET parameter?
  • Razloži “same-origin policy”.
  • Razloži “event delegation”.
  • Razloži različne načine doseganja dedovanja.
  • Napiši kodo za “duplicator()” funkcijo:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Opiši strategijo za pomnenje (izogibanje ponovnemu računanju).
  • Od kod ime “Ternary statement”, kaj označuje beseda “Ternary”?
  • Kaj je “arity” funkcije?
  • Kaj je "use strict";? Prednosti/slabosti?

JavaScript koda primeri:

~~3.14

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: 3

"i'm a lasagna hog".split("").reverse().join("");

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Vprašanje: Kaj je vrednost window.foo?
Odgovor: "bar"
samo če je bil window.foo “lažen”, drugače bo ohranil svojo vrednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Vprašanje: Kaj je rezultat zgornjih dveh alert-ov?
Odgovor: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vprašanje: Kaj je vrednost od foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Vprašanje: Kaj je vrednost od foo.length?
**Answer: undefined

foo = foo||bar

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
*Odgovor: if(!foo) foo = bar

foo>>1

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: Math.floor(foo/2)

foo|0
foo+.5|0

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Vprašanje: Kako dobiti število paremetrov podanih v funkcijo?
**Odgovor: foo.length // 3 za ta primer

jQuery vprašanja:

  • Razloži “chaining”.
  • Razloži “deferreds”.
  • Naštej nekaj, za jQuery specifičnih, optimizacij.
  • Kaj naredi .end()?
  • Kako, in zakaj, bi uporabil/a “namespace”-e za “event handler”-je?
  • Naštej 4 različne vrednosti, ki jih lahko podaš jQuery funkciji.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object, …
  • Kaj je “effects” vrsta (oz. fx)?
  • Razlika med .get(), [], in .eq()?
  • Razlika med .bind(), .live(), in .delegate()?
  • Razlika med $ in $.fn? Oz. kaj je $.fn?
  • Optimiziraj naslednji selektor:
$(".foo div#bar:eq(0)")
  • Razlika med ‘delegate()’ in ‘live()’?

CSS vprašanja:

  • Opiši namen CSS “reset” datoteke in zakaj je uporabna.
  • Opiši “float”-e in kako delujejo.
  • Opiši različne “clearing” tehnike.
  • Razloži CSS “sprite”-e in kako bi jih implementiral/a.
  • Tvoje najljubše tehnike za zamenjavo slik?
  • CSS hacki, pogojno vključene .css datoteke ali kaj drugega?
  • Kako serviraš strani brskalnikom ki imajo omejen nabor funkcionalnosti?
    • Katere tehnike/procese uporabljaš?
  • Na katere načine lahko vizualno skriješ vsebino (tako da je navoljo samo “screen reader”-jem)?
  • Si že kdaj uporabil/a “grid” sistem. Če ja, kateri ti je najljubši?
  • Si že implementiral/a “media queries” ali za mobilnike specifičen HTML/CSS?
  • Imaš kaj izkušenj s CSSjem v navezi s SVGjem?
  • Kako optimizeraš strani za tiskanje?
  • Naštej nekaj pasti pri pisanju efektivnega CSSja.
  • Ali uporabljaš CSS pred-procesor (sass, compass, Stylus, LESS)?
    • Če ja, opiši kaj ti je/ni všeč.
  • Kako bi implementiral/a spletno stran, ki uporablja nestandardno tipografijo?
    • Webfonts (google webfonts, typekit, …)
  • Razloži kako brskalnik ugotovi kateri element pripada kateremu CSS selektorju.

Opcijska zabavna vprašanja:

  • Kaj je najbolj “cool” stvar, ki si jo sprogramiral/a? Na kaj si najbolj ponosen/a?
  • Poznaš znak (logo) za HTML5?
  • Ali si trenutno, oz. si kdaj bil/a, na ladji?
  • Najljubše stvari tvojih razvojnih orodij?
  • Imaš kak zasebni projekt? Kakšen?
  • Razloži pomembnost “cornify”.
  • Na list papirja napiši vertikalno črke A B C D E . Sedaj pa jih postavi v spuščajoči vrstni red, brez da napišeš vrstico kode.
    • Počakaj če bo obrnil/a list papirja na glavo
  • Pirat ali Ninja?
    • Bonus točke če je kombiniran/a in je dal/a dober razlog (+2 za zombi opica pirat ninja)
  • Če nebi bil/a web-developer, kaj bi počel/a?
  • Najljubša lastnost Internet Explorerja?
  • Dokončaj naslednji stavek: Brendan Eich in Doug Crockford sta __________ javascript-a.
  • jQuery: dobra ali najboljša knjižnica? Debata.
  • http://www.w3schools.com/ ali http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/spanish/index.html b/_site/translations/spanish/index.html new file mode 100644 index 000000000..3883b2547 --- /dev/null +++ b/_site/translations/spanish/index.html @@ -0,0 +1 @@ +GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO ★ Front-end Job Interview Questions

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

Este repositorio contiene preguntas de entrevistas a programadores front-end, que pueden ser usadas para revisar a candidatos potenciales. Bajo ningún concepto se recomienda usar todas las preguntas aquí expuestas con el mismo candidato (eso llevaría horas). Escoger algunos elementos de esta lista debería ayudarle a revisar las habilidades que requiere.

Nota: Tenga en mente que muchas de estas preguntas son abiertas y pueden llevar a interesantes discusiones que le pueden decir más sobre las capacidades de la persona que una simple respuesta.

Índice

  1. Preguntas generales
  2. Preguntas específicas de HTML
  3. Preguntas específicas de CSS
  4. Preguntas específicas de JavaScript
  5. Preguntas sobre pruebas de código
  6. Preguntas sobre rendimiento
  7. Preguntas sobre conectividad
  8. Preguntas de código
  9. Preguntas divertidas

Contribuyendo

  1. Contribuyentes
  2. Cómo contribuir
  3. Licencia

Preguntas generales:

  • ¿Qué has aprendido en esta semana?
  • ¿Qué es lo que te interesa de la programación?
  • ¿Podría describir algún problema técnico que haya resuelto recientemente?
  • ¿Cuáles son las consideraciones del área de interfaces, rendimiento, posicionamiento, mantenimiento o seguridad que toma en cuenta al desarrollar sitios o aplicaciones web?
  • Hable acerca de su ambiente de desarrollo preferido.
  • ¿Qué sistemas de control de versiones ha usado?
  • ¿Puede describir el proceso que sigue cuando crea una página web?
  • Si tuviera cinco hojas de estilo distintas, ¿cómo las integraría a su página web?
  • ¿Puede describir la diferencia entre “Progressive Enhancement” y “Graceful Degradation”?
  • ¿Cómo optimizaría los recursos de un sitio web?
  • ¿Cuántos recursos se pueden descargar simultáneamente de un mismo dominio?
  • ¿Cuáles son las excepciones?
  • Mencione tres formas para disminuir el tiempo de carga de una página (tiempo real o percibido).
  • Si se ha unido a un proyecto y los desarrolladores usan tabs y usted usa espacios, ¿qué hace?
  • Describa como elaboraría una página con una galería sencilla.
  • Si pudiera elegir una tecnología para dominar este año, ¿cuál sería?
  • Explique la importancia de estándares y los grupos que los definen.
  • ¿Sabe que es el Flash Of Unstyled Content?, ¿cómo lo evita?
  • Explique qué son las Aplicaciones de internet enriquecidas y accesibles y los lectores de pantalla, además de cómo hacer una página web accesible
  • Explique las ventajas y desventajas de usar animaciones en CSS contrario a usar animaciones hechas con JavaScript.
  • ¿Qué significa CORS y a qué problema está relacionado?

Preguntas específicas de HTML:

  • ¿Qué función cumple el doctype y cuántos tipos puede nombrar?
  • ¿Cuál es la diferencia entre el modo convencional y el “quirks mode”?
  • ¿Cuál es la diferencia entre HTML y XHTML?
  • ¿Hay algún problema al servir las páginas usando: application/xhtml+xml?
  • ¿Cómo presentaría una página con contenido en varios lenguajes?
  • ¿Qué consideraciones se deben tener cuando se diseñan/desarrollan sitios multi-lenguajes?
  • ¿Para qué son buenos los atributos data-?
  • ¿Puede usar sintaxis de XHTML en HTML5?
  • ¿Cómo usa XML en HTML5?
  • Si consideramos HTML5 como una plataforma web abierta, ¿cuáles son los componentes que constituyen HTML5?
  • Describa la diferencia entre cookies, sessionStorage y localStorage.
  • Describa la diferencia entre <script>, <script async> y <script defer>.
  • Generalmente, ¿por qué es una buena idea agregar la etiqueta <link> dentro de la etiqueta <head> y la etiqueta <script> justo antes de cerrar la etiqueta <body>. ¿Conoces algún caso excepcional?
  • ¿Qué es el renderizado progresivo?
  • ¿Haz usado algún motor para creado de plantillas HTML?

Preguntas específicas de CSS:

  • ¿Cuál es la diferencia entre clases e identificadores en CSS?
  • ¿Cuál es la diferencia entre normalizar y anular el CSS?, ¿cuál usarías y por qué?
  • Describa qué son los “floats” y su funcionamiento.
  • Describa el z-index y como se decide el contexto de apilado de elementos.
  • Describa el contexto de formato de bloques (BFC) y como funciona.
  • ¿Cuáles son las técnicas para usar la propiedad clear y cuál funciona para cuál contexto?
  • Explique ¿qué son los sprites en CSS y cómo los implementarías en una página?
  • ¿Cuál es su técnica favorita para reemplazar imágenes y cuando usa cada una?
  • ¿Cómo intentaría resolver problemas de estilo para navegadores específicos?
  • ¿Cuál es su enfoque al desarrollar páginas que dan soporte a navegadores con capacidades limitadas?
  • ¿Qué técnicas o procesos usas?
  • ¿Cuáles son las distintas formas para esconder contenido, pero mantenerlo disponible únicamente para lectores de pantalla?
  • ¿Ha usado algún sistema para cuadrículas (grids) y cuál prefiere?
  • ¿Ha usado o implementado “media queries” o reglas específicas para dispositivos móviles?
  • ¿Está familiarizado con aplicar estilos a SVGs?
  • ¿Cómo optimiza sus páginas para la impresión?
  • ¿Cuáles son algunos de los “trucos” para escribir CSS eficiente?
  • Menciona las ventajas y desventajas de usar preprocesadores de CSS
  • Menciona lo que te agrada y desagrada de los preprocesadores que usas.
  • ¿Cómo implementaría un diseño que usa fuentes que no son web-safe?
  • ¿Puede explicar cómo determina un navegador qué elementos coinciden con un selector de CSS?
  • Describa los pseudo-elementos y discuta sus usos.
  • ¿Puede explicar cómo entiende el box model (modelo de cajas) y como podría hacer que un navegador renderize su esquema usando diferentes modelos de cajas?
  • ¿Qué sucede al usar * {box-sizing: border-box;}. ¿Qué desventajas supone su uso?
  • Por favor enliste todos los valores para la propiedad display que pueda recordar
  • ¿Cuál es la diferencia entre inline y inline-block?
  • ¿Cuál es la diferencia entre las posiciones relative, fixed, absolute y static para un elemento dado?
  • La C en CSS significa cascading (en cascada). ¿Cómo se determina la prioridad al asignar los estilos? ¿Cómo podemos aprovechar ese sistema?
  • ¿Cuáles frameworks de CSS has usado en desarrollo y producción? ¿Cómo los mejoraría?
  • ¿Qué sabe sobre CSS Flexbox y cuáles son sus ventajas?
  • ¿En que difiere el diseño responsivo del diseño adaptativo?
  • ¿Has trabajado con tecnología retina?, ¿qué técnicas usaste?
  • ¿Hay alguna razón por la cual preferirías usar translate() en vez de el posicionamiento absoluto? ¿Alguna razón para hacer lo contrario?

Preguntas específicas de JavaScript:

  • Explique “event delegation”.
  • Explique cómo funciona this en JavaScript.
  • Explique cómo funciona la herencia de prototipos (prototypal inheritance) en JavaScript.
  • ¿Qué opina de AMD en comparación con CommonJS?
  • Explique por qué function foo(){ }(); no funciona como un IIFE.
  • ¿Qué se necesita cambiar para que funcione como una IIFE?
  • ¿Cuál es la diferencia entre variables null, undefined y undeclared?
  • ¿Cómo comprobarías que una variable refiere a alguno de esos valores?
  • ¿Qué es un “closure” y cuando, o por qué usaría uno?
  • ¿Puede hablar de un uso típico para una función anónima?
  • ¿Cómo organiza su código, patrón módulo, herencia clásica?
  • ¿Cuál es la diferencia entre objetos huésped (host objects) y objetos nativos?
  • ¿Cuál es la diferencia entre: function Person(){}, var person = Person() y var person = new Person()?
  • ¿Cuál es la diferencia entre .call y .apply?
  • ¿Puede explicar el uso de Function.prototype.bind?
  • ¿Cuándo usarías document.write()?
  • ¿Cuál es la diferencia entre detección de capacidades, inferencia de capacidades y usar la cadena del user agent?.
  • Explique AJAX con tanto detalle como pueda.
  • Explique cómo funciona JSONP (y cómo no es AJAX realmente)
  • ¿Ha utilizado alguna vez templates en JavaScript?
    • De ser así, ¿qué bibliotecas ha usado?
  • ¿Puede explicar en qué consiste el “hoisting”?
  • ¿Puede hablar sobre “event bubbling”?
  • ¿Cuál es la diferencia entre un “atributo” y una “propiedad”?
  • ¿Por qué es una mala idea extender objetos nativos de JavaScript?
  • ¿Cuál es la diferencia entre el evento “document load” y el evento “document ready"?
  • ¿Cuál es la diferencia entre == y ===?
  • Explique la política de mismo origen (same-origin policy) y sus repercusiones en JavaScript.
  • Haga que este código funcione:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • ¿Por qué reciben el nombre de sentencias ternarias? ¿Qué significa la palabra “ternaria”?
  • ¿Qué es "use strict";? ¿Cuáles son las ventajas y desventajas de usarlo?
  • Haga un ciclo for de 100 iteraciones que imprima “fizz” en los múltiplos de 3, “buzz” en los múltiplos de 5 y “fizzbuzz” en los múltiplos de 3 y 5
  • De manera general, ¿por qué es una buena idea no usar el “ámbito” (scope) global de un sitio web?
  • ¿Por qué usaría el evento load?, ¿usarlo representa alguna ventaja?, ¿conoce alternativas y el por qué usaría dichas alternativas?
  • Explique en qué consiste una aplicación de una sola página y como hacer una que bajo los términos del posicionamiento en los buscadores.
  • ¿Qué tanto sabes acerca de las promesas en javascript? ¿Conoce alternativas a ellas?
  • Mencione las ventajas y desventajas de usar promesas en vez de callbacks.
  • Menciona las ventajas y desventajas de escribir Javascript a través de otro lenguaje que compile y su resultado sea Javascript.
  • ¿Qué herramientas y técnicas usa para depurar código Javascript?
  • ¿Qué código utiliza para iterar sobre propiedades de un objeto y sobre arreglos?
  • Explique la diferencia entre objetos mutables y objetos inmutables.
  • Mencione un ejemplo de un objeto inmutable en javascript.
  • Mencione las ventajas y desventajas de la inmutabilidad.
  • ¿Cómo puede usar la inmutabilidad en su código?
  • Explique la diferencia entre funciones síncronas y asíncronas.
  • ¿Qué es el event loop?
  • ¿Cuál es la diferencia entre la pila de llamadas y la cola de tareas?

Preguntas sobre pruebas de código:

  • Menciona ventajas y desventajas de realizar pruebas en el código
  • ¿Qué herramientas usarías para probar la funcionalidad de tu código?
  • ¿Cuál es la diferencia entre una prueba unitaria y una prueba de funcionalidad?
  • ¿Cuál es el propósito de usar herramientas para verificar los estilos usados en el código?

Preguntas sobre rendimiento:

  • ¿Qué herramientas usarías para detectar un error en el rendimiento de tu código?
  • ¿De qué formas podrías mejorar el rendimiento del scrolling en tu sitio web?
  • Menciona las diferencias entre los términos layout, painting y compositing.

Preguntas sobre conectividad:

  • Tradicionalmente, ¿Por qué es mejor servir los recursos estáticos del sitio desde múltiples dominios?
  • Intenta explicar el proceso desde el momento en el cual ingresas una URL en el navegador hasta que termina de cargar la página en tu pantalla.
  • ¿Cuáles son las diferencias entre Long-polling, websockets y server-sent events?
  • Explique las siguientes cabeceras de respuesta y envío.
  • Expires, Date, Age y If-Modified-
  • Do Not Track
  • Cache-Control
  • Transfer-Encoding
  • Etag
  • X-Frame-Options
  • ¿Qué son las acciones HTTP? explique las acciones HTTP que conozca.

Preguntas de código:

Pregunta: ¿Cuál es el valor de foo?

var foo = 10 + '20';

Pregunta: ¿Cómo harías funcionar esto?

add(2, 5); // 7
add(2)(5); // 7

Pregunta: ¿Cuál es el resultado de la siguiente sentencia?

"i'm a lasagna hog".split("").reverse().join("");

Pregunta: ¿Cuál es el valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Pregunta: ¿Cuál es el resultado de los dos alerts?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pregunta: ¿Cuál es el valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Pregunta: ¿Cuál es el valor de foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pregunta: ¿Qué imprime el siguiente código?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Preguntas divertidas:

  • ¿Qué es lo más genial que ha programado y qué es lo que más le enorgullece de ello?
  • ¿Cuáles son sus partes favoritas de las herramientas de desarrollo que usa?
  • ¿Tiene algún proyecto personal? ¿De qué tipo?
  • ¿Cuál es su funcionalidad favorita de Internet Explorer?
  • ¿Cómo te gusta tu café?

Contribuyentes

Este documento se creó en 2009 como una colaboración de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed y @iansym.

Ha recibido contribuciones de 100 desarrolladores.

\ No newline at end of file diff --git a/_site/translations/swedish/index.html b/_site/translations/swedish/index.html new file mode 100644 index 000000000..d2e2eed69 --- /dev/null +++ b/_site/translations/swedish/index.html @@ -0,0 +1 @@ +Front-end Anställningsfrågor ★ Front-end Job Interview Questions

Front-end Anställningsfrågor

Front-end Anställningsfrågor

Detta arkiv innehåller ett urval av frågor som kan ställas till den arbetssökande. Det är verkligen inte rekommenderat att ställa alla frågor här till samma person (det skulle ta timmar). Att välja ut ett par stycken från listan bör hjälpa dig besluta huruvida den arbetssökande uppfyller dina krav.

Att tänka på: Kom ihåg att många av de här frågorna är öppna och kan leda till intressanta diskussioner som berättar mer om personens kunskaper än vad en sluten fråga skulle.

Innehållsförteckning

  1. Allmänna frågor
  2. HTML-frågor
  3. CSS-frågor
  4. JS-frågor
  5. Nätverksgrågor
  6. Kodfrågor
  7. Roliga frågor

Hjälpa till

  1. Bidragande skribenter
  2. Att hjälpa till
  3. Licens

Allmänna frågor:

  • Vad lärde du dig igår/den här veckan?
  • Vad tycker du är spännande eller intressant med kodning?
  • Berätta om en teknisk utmaning du haft nyligen och hur du löste den.
  • Vilka övervägningar gör du angående gränssnitt, säkerhet, prestanda, SEO, underhållsmässighet och tekniker när du bygger en webbapplikation eller -plats?
  • Berätta lite om den utvecklingsmiljö du helst sitter i.
  • Vilka versionshanteringssystem har du använt?
  • Kan du beskriva ditt arbetsflöde när du skapar en hemsida?
  • Om du har fem olika stilmallar, hur skulle du bäst integrera dem i sajten?
  • Kan du beskriva skillnaden mellan “progressive enhancement” och “graceful degradation”?
  • Hur skulle du optimera en webbplats resurser?
  • Hur många resurser kan en webbläsare ladda från en specifik domän åt gången?
    • Vilka är undantagen?
  • Nämn tre sätt att minska laddningstiden för en webbsida (uppfattad eller faktisk laddningstid).
  • Om du hoppade på ett projekt och de använde tabbar och du mellanslag, vad skulle du då göra?
  • Beskriv hur du skulle göra ett enkelt bildspel.
  • Om du kunde bemästra en teknologi i år, vad skulle det vara?
  • Beskriv varför det är viktigt med standarder och standardiseringsorganisationer.
  • Vad är “Flash of Unstyled Content”? Hur undviker du FOUC?
  • Förklara vad ARIA och skärmläsare är och hur man gör en webbplats tillgänglig.
  • Förklara några av fördelarna och nackdelarna mellan CSS- och JavaScript-animationer.

HTML-frågor:

  • Vad gör en dokumenttyp (doctype)?
  • Vad är skillnaden mellan standardläge och quirksläge?
  • Vad är skillnaden mellan HTML och XHTML?
  • Finns det några problem med att skicka sidor som application/xhtml+xml?
  • Hur skickar du en sida innehållandes flera språk?
  • Vad måste du vara försiktig med när du designar eller utvecklar för flerspråkssidor?
  • Vad är data--attribut bra för?
  • Tänk dig HTML5 som en öppen webbplattform. Vad är byggstenarna i HTML5?
  • Beskriv skillnaden mellan en cookie, sessionStorage och localStorage.
  • Beskriv skillnaden mellan <script>, <script async> och <script defer>.
  • Varför är det generellt en bra idé att lägga CSS-<link>ar mellan <head></head> och JS-<script>ar precis före </body>? Känner du till några undantag?
  • Vad är progressiv rendering?
  • Har du använt dig av några HTML-mallspråk tidigare?

CSS-frågor:

  • Vad är skillnaden mellan klasser och ID:n i CSS?
  • Vad är skillnaden mellan att “nollställa” och att “normalisera” CSS? Vad skulle du välja och varför?
  • Beskriv floats och hur de fungerar.
  • Beskriv z-index och hur stacking context skapas.
  • Beskriv BFC (Block Formatting Context) och hur det fungerar?
  • Vilka olika clearing-tekniker finns det och vilka passar för vilka sammanhang?
  • Förklara CSS-sprites och hur du skulle implementera dem på en sida.
  • Vilka är dina favorittekniker för bildersättning och vilka använder du i vilka situationer?
  • Hur skulle du fixa webbläsarspecifika stilproblem?
  • Hur skickar du sidor till funktionsbegränsade webbläsare?
    • Vilka tekniker/processer använder du?
  • Vilka olika sätt finns det att visuellt dölja element (och bara göra dem tillgängliga för skärmläsare)?
  • Har du någonsin använt ett rutnätsystem, och i sådana fall vilket föredrar du?
  • Har du använt eller implementerat mediafrågor eller mobilspecifika layouter/CSS:er?
  • Har du någon erfarenhet av att styla SVG?
  • Hur optimerar du dina webbplatser för utskrift?
  • Vilka är några av de fallgropar som finns för att skriva effektiv CSS?
  • Vilka är fördelarna/nackdelarna med att använda CSS-preprocessorer?
    • Beskriv vad du gillar och ogillar med de CSS-preprocessorer du använt.
  • Hur skulle du implementera en webbdesign som använder icke-standardiserade typsnitt?
  • Förklara hur en webbläsare bestämmer vilka element som matchar en selektor.
  • Beskriv pseudoelement och vad de används till.
  • Förklara boxmodellen och hur du skulle göra i CSS för att få webbläsaren att rendera din layout i olika boxmodeller.
  • Vad gör * { box-sizing: border-box; }? Vad är dess fördelar?
  • Lista så många värden för display-egenskapen som du kan komma ihåg.
  • Vad är skillnaden mellan inline och inline-block?
  • Vad är skillnaden mellan element som är positionerade med relative, fixed, absolute och static?
  • C:et i CSS står för “Cascading”. Hur bestäms prioritet när stilar sätts (några exempel)? Hur kan du använda det här systemet till din fördel?
  • Vilka CSS-ramverk har du använt lokalt eller i produktion? Hur skulle du förändra/förbättra dem?
  • Har du lekt något med de nya CSS-specifikationerna för Flexbox och Grid?
  • På vilket sätt skiljer sig responsiv design från adaptiv design?
  • Har du någon gång arbetat med retinagrafik? I så fall, när var det och vilka tekniker använde du?
  • Finns det någon anledning till att du skulle vilja använda translate() i stället för absolut positionering och vice-versa? I så fall varför?

JS-frågor:

  • Förklara eventdelegering.
  • Förklara hur this fungerar i JavaScript
  • Förklara hur prototypiskt arv fungerar.
  • AMD eller CommonJS?
  • Förklara varför följande inte fungerar som en IIFE: function foo(){ }();.
    • Vad behöver ändras för att göra den till en fungerande IIFE?
  • Vad är skillnaden mellan en variabel som är: null, undefined eller undeclared?
    • Hur skulle du göra för att kolla efter någon av dessa?
  • Vad är en “closure” och hur/varför vill du använda det?
  • Vad är ett typiskt användningsområde för en anonym funktion?
  • Hur organiserar du din kod? (Modulmönstret, klassiskt arv?)
  • Vad är skillnaden mellan “host objects” och “native objects”?
  • Skillnaden mellan: function Person(){}, var person = Person() och var person = new Person()?
  • Vad är skillnaden mellan .call och .apply?
  • Förklara Function.prototype.bind?
  • När skulle du använda document.write()?
  • Vad är skillnaden mellan “feature detection”, “feature inference”, och att använda UA-strängen?
  • Förklara AJAX så noggrant som möjligt.
  • Förklara hur JSONP fungerar (och varför det egentligen inte är AJAX).
  • Har du någonsin använt “JavaScript templating”?
    • Om så är fallet, vilka bibliotek har du använt?
  • Förklara “hoisting”.
  • Beskriv “event bubbling”.
  • Vad är skillnaden mellan “attribute” och “property”?
  • Varför är det inte bra att utvidga (extend) inbyggda JavaScript-objekt?
  • Skillnaden mellan “document load event” och “document ready event”?
  • Vad är skillnaden mellan == och ===?
  • Förklara “same-origin policy” med hänsyn till JavaScript.
  • Få det här att fungera
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Varför kallas det för “ternary expression”, vad menas med ordet “ternary”?
  • Vad är "use strict";? Vilka är för- och nackdelarna med att använda det?
  • Skapa en for-loop som itererar upp till 100 medan den skriver ut “fizz” vid multiplar av 3, “buzz” vid multiplar av 5 och “fizzbuzz” vid multiplar av 3 och 5.
  • Varför är det generellt sett en bra idé att aldrig röra det globala scopet på en webbsida?
  • Varför skulle man vilja använda något som load-eventet? Har det eventet några nackdelar? Känner du till några alternativ och varför skulle man i så fall vilja använda dem?
  • Förklara vad en single page-app är och hur en sådan kan göras SEO-vänlig.
  • Hur stor erfarenhet har du av Promises och/eller polyfills för dem?
  • Vad är fördelarna och nackdelarna med att använda Promises i stället för callbacks?
  • Nämn några för- och nackdelar med att skriva JavaScript-kod i ett språk som kompilerar till JavaScript.

Testfrågor:

  • Nämn några för- och nackdelar med att testa sin kod.
  • Vilka verktyg skulle du använda för att testa din kods funktionalitet?
  • Vad är skillnaden mellan ett enhetstest och ett integrations-/funktionellt test?
  • Vad är syftet med ett verktyg för lintning av kodstil?

Prestandafrågor:

  • Vilka verktyg skulle du använda för att hitta en prestandabugg i din kod?
  • Nämn några sätt att förbättra din sajts skrollningsprestanda.
  • Beskriv skillnaden mellan “layout”, “painting” och “compositing”.

Nätverksfrågor:

  • Varför har det traditionellt sett varit bättre att servera webbplatsen från flera domäner?
  • Förklara så noggrannt du kan processen från att du skriver in en webbsidas URL till att sidan har laddats färdigt på din skärm.
  • Vad är skillnaderna mellan long-polling, WebSockets och Server-Sent Events?
  • Förklara följande svarshuvuden:
    • Skillnaden mellan Expires, Date, Age och If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Vad är “HTTP actions”? Lista alla “HTTP actions” du känner till och förklara dem.

Kodfrågor

Fråga: Vad är värdet av foo?

var foo = 10 + '20';

Fråga: Hur skulle du få det här att fungera?

add(2, 5); // 7
add(2)(5); // 7

Fråga: Vilket värde returneras från nedanstående?

"i'm a lasagna hog".split("").reverse().join("");

Fråga: Vad är värdet av window.foo?

( window.foo || ( window.foo = "bar" ) );

Fråga: Vad kommer de två alerterna att ropa ut?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Fråga: Vad är värdet av foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Fråga: Vad är värdet av foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Roliga frågor:

  • Nämn en cool sak du kodat nyligen.
  • Nämn några delar som du gillar hos de utvecklarverktyg du använder?
  • Har du några egna projekt som du sköter om? I sådana fall vilken typ av projekt?
  • Vilken är din favoritfunktion i Internet Explorer?
  • Hur gillar du ditt kaffe?

Bidragande skribenter:

Det här dokumentet startades 2009 som ett samarbete mellan @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed och @iansym.

Det har sedan dess fått bidrag från över 100 utvecklare.

\ No newline at end of file diff --git a/_site/translations/turkish/index.html b/_site/translations/turkish/index.html new file mode 100644 index 000000000..ec8ba7f1d --- /dev/null +++ b/_site/translations/turkish/index.html @@ -0,0 +1 @@ +Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları ★ Front-end Job Interview Questions

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Burada ön yüz yazılım -ya da front-end- iş başvurularınızda karşınıza çıkabilecek sorular yer almaktadır. Her sorunun iş başvurularınızda karşınıza çıkması garanti değil ancak ihtimali var. Ayrıca buradaki sorular sadece iş başvurusu yapanlar için değil, bu branşta kendini geliştirmeyi düşünenler için de kaynak niteliğindedir.

Not: Buradaki birçok sorunun ucunun açık olduğunu, bu sebeple vereceğiniz cevaba göre ilginç tartışmalara yol açabileceğini unutmayın.

İçindekiler

  1. Genel Sorular
  2. HTML Soruları
  3. CSS Soruları
  4. JS Soruları
  5. Test Soruları
  6. Performans Soruları
  7. Ağ Soruları
  8. Kodlama Soruları
  9. Eğlenceli Sorular

Dahil Olmak İçin

  1. Katkıda bulunanlar
  2. Nasıl katkıda bulunabilirim?
  3. Lisans

Genel Sorular:

  • Dün -ya da bu hafta- neler öğrendin?
  • Kod yazmanda seni cezbeden şey ne?
  • Deneyimlediğin son teknik meydan okuma / problem neydi ve onu nasıl çözdün?
  • Website yada web application hazırlarken UI, güvenlik, performans, SEO, sürdürülebilirlik veya teknoloji için nelere dikkat edersin?
  • Bize biraz geliştirme ortamından bahset. -İşletim Sistemi, Web Tarayıcı, Araçlar, Kod Editörü/IDE, vb.-
  • Haangi version kontrol sistemlerine aşinasın?
  • Web sayfasını oluştururken hangi adımları takip edersin?
  • Eğer 5 farklı stil dosyası varsa, bunları siteye entegre etmenin en iyi yolu nedir?
  • “Aşamalı geliştirme (progressive enhancement)” ile “kontrollü azalma (graceful degradation)” arasında ne fark vardır?
  • Web sitesindeki dosyaları nasıl optimize edersin?
  • Belli bir zamanda, tek bir alanadı üzerinden web tarayıcısı ne kadar kaynak indirebilir?
    • İstisnalar nelerdir?
  • Sayfa yüklenme hızını azaltmanın yollarından 3 tanesini söyleyebilir misin?
  • Yeni dahil olduğunuz bir projede, kodlama için Tab boşluk kullanılıyor ama siz Space ile boşluk bırakmayı tercih ediyorsunuz. Bu durumda ne yaparsınız?
  • Basit bir slayt/galeri sayfası oluşturun
  • Eğer bu yıl bir teknolojide en iyi olmak isteseydin, hangisini seçerdin?
  • Yazılım standartlarının öneminden bahseder misin?
  • FOUC nedir? FOUC’a nasıl engel olabilirsin?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • CSS animasyonlarının JavaScript animasyonlara göre artılarını ve eksiklerini açıklayabilir misin?
  • CORS ne anlama geliyor ve nasıl bir problemi çözüyor?

HTML Soruları:

  • doctypeın işlevi nedir?
  • Full standards mode, almost standards mode ve quirks mode arasındaki farklar nelerdir?
  • HTML ve XHTML arasındaki farkler nelerdir?
  • Sayfaların application/xhtml+xml olarak çalıştırılmasında herhangi bir sakınca var mıdır?
  • Sayfa içeriği çoklu dil olan siteyi nasıl sunabilirsin?
  • Çoklu dil olan sayfalarda tasarım veya kodlama olarak nelerden kaçılmalısın?
  • data- özelliği ne faydalar sağlar?
  • HTML5’i ‘open web platform’ olarak düşün. HTML5’in yapı taşları/temelleri nelerdir?
  • cookie, sessionStorage ve localStorage arasındaki farkları açıklayabilir misin?
  • <script>, <script async> ve <script defer> arasındaki farkları açıklayabilir misin?
  • CSS <link>lerin <head></head> arasında ve JS <script>lerinin </body> etiketinden önce olması niye genelde iyi bir fikirdir? Herhangi bir istisna biliyor musun?
  • Progressive rendering nedir?
  • Önceden farklı bir HTML templating dili kullandın mı?

CSS Soruları:

  • CSS’te class ve ID arasındaki farklar nelerdir?
  • “Resetting” ve “normalizing” CSS’ler arasındaki farklar nelerdir? Hangisini kullanmamız gerekir, neden?
  • Floats özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • z-index özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • BFC (Block Formatting Context)'nin ne olduğunu ve nasıl çalıştığından bahsedin.
  • Çeşitli ‘clearing’ teknikleri nelerdir ve hangi teknik hangi içerik için uygundur?
  • CSS Sprites özelliğini ve sayfanıza veya web uygulamanıza nasıl entegre edeceğinizi anlatın.
  • En favori imaj yerini değiştirme (image replacement) tekniği sizce hangisidir ve ne gibi durumlarda kullanırsınız?
  • Browser tabanlı (browser-specific) stil problemlerini nasıl çözersiniz?
  • Özellik kısıtlamalı (feature-constrained) tarayıcılar için websitenizi nasıl hazırlarsınız?
    • Hangi teknikleri/işlemleri kullanırsınız?
  • İçerikleri görsel olarak gizlemek hangi yollar bulunmakta? (İçerik sadece ekran okuyucular (screen readers) için gözükecek.)
  • Şimdiye kadar grid sistemi kullandınız mı? Eğer kullandıysanız, ne tercih edersiniz?
  • Şimdiye kadar ‘media queries’ veya mobil bazlı CSS/tasarım kullanıdınız mı?
  • SVG stillendirme hakkında deneyiminiz var mı?
  • Yazdırmak için (print) sitenizi ne şekilde en uygun hale getirdiniz?
  • Kaliteli CSS yazmak için ‘işte bu!’ dediğiniz şeyler nelerdir?
  • CSS 'preprocessor’ler kullanmanın artı-eksileri nelerdir? (SASS, Compass, Stylus, LESS)
    • Şimdiye kadar kullandıklarınızda en çok beğendiğiniz/beğenmediğiniz özellikler nelerdi?
  • Standart fontları kullanmayan web tasarımlarını nasıl sayfanıze entegre ediyorsunuz?
  • Tarayıcılar HTML elementlerin CSS seçicilerle (selector) eşleştiğini nasıl algılıyor, açıklar mısınız?
  • Sözde elementleri (pseudo-elements) ve ne için kullandıklarını açıklayın.
  • ‘box model’ konusunu bildiğiniz kadar açıklayın ve tasarımınızı farklı bir ‘box model’ ile göstermek istediğinizde CSS tarafında tarayıcıya ne belirtmeniz gerekir?
  • * { box-sizing: border-box; } ne yapar? Avantajları nelerdir?
  • ‘Display’ özelliğinin aldığı değerleri hatırladığınız kadar sayın.
  • ‘inline’ ile ‘inline-block’ arasındaki farklılıklar nelerdir?
  • ‘relative’, ‘fixed’, ‘absolute’ ve ‘static’ konumlandırılmış elementlerin farkı nedir?
  • CSS kelimesindeki C harfi "Cascading"in (basamaklı) kısaltmasıdır. Yönlendirilen stillerde öncelikler nasıl belirlenir (birkaç örnekle birlikte)? Bunu nasıl kendi avantajınıza göre kullanabilirsiniz?
  • Kullanmış olduğunuz, daha tanınmayan - lokal CSS çatılar (frameworks) var mı? Bunları nasıl değiştirmek / geliştirmek isterdiniz?
  • Yeni CSS Flebox veya Grid özellikleriyle deneyip bir şeyler yaptınız mı?
  • Responsive tasarımın adaptive tasarımdan farkı nedir?
  • Hiç retina grafiklerle çalıştınız mı? Eğer çalıştıysanız ne zaman ve hangi teknikleri kullandınız?
  • translate() yerine absolute positioning, veya tam tersini kullanmak için bir sebebiniz olabilir mi? Ve neden?

JS Soruları:

  • ‘Event delegation’ özelliğini anlatın.
  • JavaScript’te this nasıl çalışıyor?
  • ‘prototypal inheritance’ nasıl çalışır?
  • AMD ile CommonJS’in farkı nelerdir?
  • IIFE olarak neden bu fonksiyonun çalışmadığını açıklayın: function foo(){ }();.
    • IIFE olarak çalışması için ne yapmak gerekiyor?
  • null, undefined ve undeclared arasında ne farklar var?
    • Bu değerleri kontrol ederken neler yapmalıyız?
  • ‘Closure’ nedir, ve nasıl/neden kullanırız?
  • Anonim fonksiyonları kullanma durumları nelerdir?
  • Kodunuzu nasıl organize edersiniz? (module pattern, classical inheritance?)
  • host objects ve native objects arasında ne fark var?
  • function Person(){}, var person = Person(), ve var person = new Person() arasındaki farklar nelerdir?
  • .call ve .apply arasındaki fark nedir?
  • Function.prototype.bind özelliğinin ne olduğunu açıklayınız.
  • undefined ve null arasındaki fark nedir?
  • document.write() fonksiyonunu ne zaman kullanmalıyız?
  • Özellik tespiti (feature detection), özellik çıkarım (feature inference) ve UA string kullanımı arasındaki farklar nelerdir?
  • AJAX’ı olabildiğince detaylı şekilde açıklayın.
  • Ajax kullanmanın avantajları ve dezavantajları nelerdir?
  • JSONP nasıl çalışır? (ve neden tam olarak AJAX olmadığını da açıklayınız.)
  • JavaScript ‘template’ yapısını hiç kullandınız mı?
    • Eğer kullandıysanız, Hangi 'library’leri kullandınız? (Mustache.js, Handlebars, vb.)
  • “Hoisting” özelliğini açıklayın.
  • ‘Event bubbling’ özelliğini açıklayın.
  • “Attribute” ve “property” arasındaki farklar nelerdir?
  • JavaScript objeleri genişletmek neden iyi fikir değildir?
  • “document load event” ile “document DOMContentLoaded event” arasındaki farklar nelerdir?
  • == ve === arasında ne fark vardır?
  • JavaScript için ‘same-origin policy’ konusunu açıklayın.
  • Çalışacak şekilde kodu yazın:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Neden ‘Ternary expression’ olarak çağrılmaktadır? “Ternary” kelimesi neyi belirtmektedir?
  • "use strict"; nedir? Bunu kullanmanın artı/eksileri nelerdir?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Websitenin genel skopundan ayrılmak ve dokunmamak neden genelde iyi bir fikirdir?
  • Neden load gibi bir event kullanırsınız? Bunun dezavantajları var mı? Bildiğiniz alternatifleri var mı ve neden onları kullanıyorsunuz?
  • Tek sayfa uygulama (single page app) nedir ve nasıl arama motoru uyumlu (SEO-friendly) yapılır, açıklayın.
  • “Promises” ve/veya onun polyfilleriyle alakalı deneyimler nedir?
  • "Callback"ler yerine “Promises” kullanmanın artıları ve eksileri nelerdir?
  • JavaScript’in derlendiği bir dilde JavaScript yazmanın avantajları ve dezavantajlarından bazıları nelerdir?
  • JavaScript kodunuzda hata ayıklarken (debugging) kullandığınız teknikler ve araçlar nelerdir?
  • What language constructions do you use for iterating over object properties and array items?
  • Kesilebilir (mutable) ve değişmez (immutable) nesneler arasındaki farkları açıklayın.
    • JavaScript’te değişmez (immutable) objeye bir örnek veriniz.
    • Değişmezliğin (immutability) artıları ve eksileri nedir?
    • Değişmezliği (immutability) kendi kodunuzda nasıl başarırsınız?
  • Senkron ve asenkron fonksiyonlar arasındaki farkları açıklayın.
  • Olay döngüsü (event loop) nedir?
    • Çağrı yığını (call stack) ve görev kuyruğu (task queue) arasındaki fark nedir?
  • foo, function foo() {} ve var foo = function() {} arasındaki farkları açıklayın.

Test Soruları:

  • Kodunuzu test etmenin avantajları ve dezavantajları nelerdir?
  • Kodunuzun işlevselliğini sınamak için hangi araçları kullanıyorsunuz?
  • Ünite testi (unit test) ile fonksiyonel/entgrasyon testi arasındaki fark nedir?
  • Kodu lint etme aracının (code style linting tool) kullanım amacı nedir?

Performans Soruları:

  • Kodunuzda performans problemleri bulmak için hangi araçları kullanıyorsunuz?
  • Websitenizin kaydırma (scrolling) performansını geliştirmenin yollarından bazıları nelerdir?
  • “Layout”, “painting” ve “compositing” terimleri arasındaki farkları açıklayınız.

Ağ Soruları:

  • Geleneksel olarak, neden site dosyalarını birden fazla domainden sunmak daha iyidir?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • “Long-Polling”, “Websockets” ve “Server-Sent Events” terimleri arasındaki farklar nelerdir?
  • Şu “request” ve "response header"ları açıklayın:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP metodları nelerdir? Bildiklerinizi listeleyin ve açıklayın.

Kodlama Soruları:

Soru:foo'nun değeri nedir?

var foo = 10 + '20';

Soru: Bu işi nasıl yaparsınız?

add(2, 5); // 7
add(2)(5); // 7

Soru: Bu ifadeden dönen sonuç nedir?

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo değeri nedir?

( window.foo || ( window.foo = "bar" ) );

Question: Aşağıdaki iki "alert"in çıktısı nedir?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Soru: foo.length değeri nedir?

var foo = [];
foo.push(1);
foo.push(2);

Soru: foo.x değeri nedir?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Soru: Bu kodun çıktısı nedir?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Eğlenceli Sorular:

  • Şimdiye kadar içinde bulunduğun en havalı proje neydi?
  • Kullandığınız geliştirici araçları arasında, sevdikleriniz nelerdir?
  • Önyüz (front-end) komünitesinde etkilendiklerin kimler?
  • Evcil hayvanlarla alakalı herhangi bir projen var mı? Varsa ne tür bir proje?
  • Internet Explorer’ın senin için favori özelliği nedir?
  • Kahveni nasıl seversin?

Katılımcılar:

Bu proje 2009 yılında bu katılımcılarla başladı: @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

Bu projenin bakımı şu anda aşağıdaki kişiler tarafından yapılmaktadır:

O zamandan beri bu inanılmaz derecede harika insanlar sayesinde etkin durumda.

İlham mı geldi? Katkı sağlamak için Katılım rehberimizi inceleyin!

\ No newline at end of file diff --git a/_site/translations/ukrainian/index.html b/_site/translations/ukrainian/index.html new file mode 100644 index 000000000..4c60ba60c --- /dev/null +++ b/_site/translations/ukrainian/index.html @@ -0,0 +1 @@ +Питання кандидату на посаду front-end розробника ★ Front-end Job Interview Questions

Питання кандидату на посаду front-end розробника

Питання кандидату на посаду front-end розробника

Примітка: Цей репозиторій містить підбірку питань, які можуть бути використані на співбесідах на посаду front-end розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить).
Також, майте на увазі, що багато питань не потребують однозначної короткої відповіді, а лише допомагають завести бесіду на ту чи іншу тему (даючи змогу кандидату показати себе в усій красі).

Зміст

  1. Первинні автори
  2. Загальні запитання
  3. Запитання по HTML
  4. Запитання по JavaScript
  5. Приклади коду на JavaScript
  6. Запитання по jQuery
  7. Запитання по CSS
  8. “Світська бесіда”

Первинні автори:

Загальні запитання:

  • Чи користуєтесь Ви Твіттером?
    • Якщо так, то хто присутній в Вашій стрічці?
  • Кого зі світових front-end розробників Ви знаєте?
    • А українських чи російських front-end’щиків?
  • Чи є у Вас аккаунт на GitHub?
    • Якщо так, то за якими цікавими проектами Ви стежите?
  • Які блоги Ви читаєте?
  • Які системи контролю версій Вам доводилось використовувати?
  • Розкажіть про своє середовище розробки (ОС, редактор, браузер(и), інші інструменти)
  • Опишіть послідовність Ваших дій, коли ви створюєте нову Web-сторінку
  • Чи можете ви пояснити у чому різниця між progressive enhancement і graceful degradation?
    • Бонус, якщо кандидат також скаже про feature detection (визначення можливостей браузера)
  • Поясніть, що означає поняття “Семантична розмітка”
  • Який Ваш основний браузер для розробки і якими інструментами в ньому Ви користуєтесь?
  • Як можна оптимізувати завантаження зовнішніх ресурсів на сторінці?
    • Комбінація із потенційних рішень:
      • Конкатенація
      • Мініфікація
      • Використання CDN
      • Кешування
      • тощо
  • Яка перевага в підвантаженні із зовнішніх ресурсів з декількох доменів?
    • Скільки ресурсів одночасно браузер може завантажувати з одного домена?
  • Назвіть три засоби зменшення часу завантаження сторінки (сприйманого або реального)
  • Якщо Ви прийшли на проект, де для форматуровання використовується табуляція, а Ви звикли використовувати пробіли, як Ви вчинете?
    • Запропонуєте використовувати EditorConfig (http://editorconfig.org)
    • Залишитеся вірним своїм звичкам
    • Виконаєте команду :retab!
  • Чи користуєтеся Ви засобами для прискорення написання коду (сніппети, Emmet)?
  • Чи знайомі Ви зі шаблонізаторами (Smarty, HAML, т.д.)
  • Реалізуйте примітивне слайдшоу
    • Бонус, якщо Ви зробите це без використання JS
  • Які інструменти Ви використовуєте для тестування продуктивності коду?
  • Якщо б у Вас була можливість освоїти нову технологію в цьому році, що б це було?
  • Поясніть важливість стандартів і комітетів по стандартам
  • Що таке FOUC (Flash Of Unstyled Content)? Як його уникнути?

Запитання по HTML:

  • Для чого потрібен doctype і скільки різновидів Ви можете назвати?
  • В чому різниця між standards mode і quirks mode?
  • Які обмеження накладають стандарти XHTML?
    • Чи можуть виникнути проблеми при подачі сторінок із типом application/xhtml+xml?
  • Як слід оформляти сторінку, на якій контент може бути на різних мовах?
    • Що потрібно мати на увазі при розробці багатомовних сайтів?
  • Чи можна використовувати синтаксис XHTML в HTML5?
  • Як використовувати XML в HTML5?
  • Чим корисні data- атрибути?
  • Які box-моделі є в HTML4 і чи є відмінності в HTML5?
  • Якщо розглядати HTML5 як відкриту web-платформу: на чому вона базується, з яких компонентів складається?
  • Поясніть різницю між cookies, sessionStorage і localStorage.
  • Чи знайомі з підводними каменями верстки поштових шаблонів?
  • Яка різниця між GET іPOST?

Запитання по JavaScript:

  • Якими js-бібліотеками Ви користувалися?
  • Ви коли-небудь заглядали в вихідний код бібліотек / фреймворків, якими користувалися?
  • Чим JavaScript відрізняється від Java?
  • Що-таке хеш-таблиця?
  • Що таке невизначені (undefined) і неоголошені (undeclared) змінні?
  • Що таке замикання і як / для чого його використовують?
    • На Вашу думку, як слід їх використовувати?
  • Де зазвичай використовуються анонімні функції?
  • Поясніть “JavaScript module pattern” і де він (патерн) застосовується
    • Бонус, якщо згадана чистота глобального простору імен
    • Що, якщо Ваш модуль не укладено в простір імен?
  • Як Ви організуєте свій код? (module pattern, наслідування)
  • У чому різниця між host-об’єктами і нативними об’єктами?
  • У чому різниця між останніми двома рядками:
function Person(){}
var person = Person()
var person = new Person()
  • У чому різниця між .call і.apply?
  • Що робить і для чого потрібен метод Function.prototype.bind?
  • Коли Ви оптимізуєте свій код?
  • Поясніть, як працює наслідування в JavaScript?
  • Де досі використовується document.write ()?
    • У більшості згенерованих банерів, хоча так робити не рекомендується
  • У чому різниця між feature detection (визначення можливостей браузера), feature inference (припущення можливостей) і аналізом рядку user-agent?
  • Розкажіть про AJAX якомога детальніше
  • Поясніть, як працює JSONP (і чому це не справжній AJAX)
  • Чи використовували Ви коли-небудь шаблонізації на JavaScript?
    • Якщо так, які бібліотеки використовували? (Mustache.js, Handlebars etc.)
  • Поясніть, що таке “hoisting”
  • Поясніть event bubbling
  • У чому різниця між “атрибутом” (attribute) і “властивістю” (property)?
  • Чому не слід розширювати нативні JavaScript об’єкти?
  • Коли слід розширювати нативні JavaScript об’єкти?
  • У чому різниця між подіями document load і document ready?
  • У чому різниця між == і ===?
  • Як отримати параметри з URL’а поточного вікна?
  • Поясніть same-origin policy в контексті JavaScript
  • Розкажіть про event delegation
  • Які Ви знаєте патерни організації наслідування в JavaScript?
  • Зробіть так, щоб цей код працював:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Опишіть принцип мемоізаціі (уникнення повторних обчислень) в JavaScript
  • Чому тернарний оператор так називається?
  • Що таке тернарність функції?
  • Що робить рядок " use strict ";? Які переваги та недоліки від її використання?

Приклади на JavaScript

~~3.14

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: 3

"i'm a lasagna hog".split("").reverse().join("");

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Питання: Чому дорівнює window.foo?
Відповідь: “bar” (тільки якщо вираз window.foo був хибним, інакше змінна збереже своє початкове значення),

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Питання: Що покажуть ці два alert?
Відповідь: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Питання: Чому дорівнює foo.length?
Відповідь: 2

var foo = {};
foo.bar = 'hello';

Питання: Чому дорівнює foo.length?
Відповідь: undefined

Запитання по jQuery:

  • Розкажіть про “chaining”.
  • Розкажіть про “deferreds”.
  • Які Ви знаєте прийоми оптимізації коду, що використовує jQuery?
  • Що робить .end()?
  • Як додати простір імен до обробника подій? Для чого це потрібно?
  • Назвіть 4 різних види аргументів, які приймає функція jQuery()?
    • Селектор (рядок), HTML (рядок), Callback (функція), HTMLElement, об’єкт, масив, масив елементів, об’єкт jQuery тощо.
  • Що таке черга ефектів (fx queue)?
  • В чому різниця між .get(), [], і .eq()?
  • В чому різниця між .bind(), .live(), і .delegate()?
  • В чому різниця між $ і $.fn? Що таке $.fn взагалі?
  • Оптимізуйте даний селектор:
$(".foo div#bar:eq(0)")

Запитання по CSS:

  • Що таке “reset” CSS і для чого він потрібен?
  • Поясніть, що таке плаваючі елементи (floats) і як вони працюють?
  • Які ви знаєте методи заборони обтікання (clearing) і де які застосовуються?
  • Що таке CSS спрайт? Як вони реалізуються на сторінці або сайті?
  • Які Ваші улюблені методи підміни тексту картинкою (image replacement) і коли Ви їх використовуєте?
  • CSS property hacks, умовне підключення .css файлів…
  • Як Ви забезпечуєте відображення сторінок в старих / обмежених браузерах?
    • Які прийоми / процеси Ви при цьому використовуєте?
  • Якими способами можна візуально приховати елемент (залишивши його доступним для екранного диктора, екранного зчитувача)?
  • Ви коли-небудь використовували сіткову верстку (grid system, grid design)? Якщо так, яка Ваша улюблена?
  • Чи доводилося Вам використовувати або реалізовувати media queries або верстку під мобільні пристрої?
  • Чи доводилося Вам стилізувати SVG?
  • Як оптимізувати сторінки для друку?
  • Які є підводні камені в оптимізації продуктивності CSS?
  • Ви використовуєте CSS препроцесори? (SASS, Compass, Bourbon, Stylus, LESS)
    • Якщо так, розкажіть, що Вам в них подобається і не подобається?
  • Як Ви зверстаєте макет, який використовує нестандартні шрифти?
    • Webfonts (сервіси на кшталт Google Webfonts, Typekit, Fontsquirrel etc.)
  • Розкажіть, як браузер визначає, на які елементи накладати CSS стилі?
  • Чи доводилося стикатися з Retina-дисплеями?
  • Чи чули про систему БЕМ (Блок-Елемент-Модифікатор)?
    • Якщо так, то в чому її суть? Розкажіть про систему нотифікації селектор.

“Світська бесіда”:

  • Найкрутіше, що Ви коли небудь робили і чим пишаєтесь?
  • Чи знаєте Ви секретний жест HTML5-банди?
  • (неперекладаємий гумор) Are you now, or have you ever been, on a boat.
  • Що Вам найбільше подобаються у Ваших інструментах розробника?
  • У Вас є якісь особисті проекти?
  • Візьміть аркуш паперу і напишіть в стовпчик букви A B C D E. Тепер відсортуйте стовпчик в алфавітному порядку за спаданням, не написавши жодного рядка коду.
    • Засічіть, через скільки часу кандидат переверне аркуш
  • Пірат або ніндзя?
    • Бонус за комбінацію. Аргументовану. +2 за зомбі-пірат-ніндзя-мавпу
  • Чим би Ви займалися, якщо не Web-розробкою?
  • Яка Ваша улюблена “фішка” Internet Explorer?
  • Закінчіть речення: Brendan Eich та Doug Crockford є __________ мови JavaScript.
  • jQuery: хороша бібліотека або велика бібліотека? Тема для дискусії…
\ No newline at end of file diff --git a/_site/translations/vietnamese/index.html b/_site/translations/vietnamese/index.html new file mode 100644 index 000000000..d88a68e7e --- /dev/null +++ b/_site/translations/vietnamese/index.html @@ -0,0 +1 @@ +Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end ★ Front-end Job Interview Questions

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Tập tin này chứa một số câu hỏi phỏng vấn lập trình viên front-end, có thể được sử dụng khi kiểm tra các ứng viên tiềm năng. Không khuyến khích sử dụng tất cả các câu hỏi ở đây trên cùng một ứng cử viên (sẽ mất hàng giờ đồng hồ). Chọn một vài mục từ danh sách này sẽ giúp bạn kiểm tra những kỹ năng mà bạn yêu cầu ở ứng viên đó.

Lưu ý: Hãy nhớ rằng nhiều câu trong đây là những câu hỏi kết thúc mở và có thể dẫn đến vài cuộc thảo luận thú vị cung cấp cho bạn nhiều thông tin về khả năng của một người hơn là một câu trả lời thẳng thắn.

Mục lục

  1. Các câu hỏi chung
  2. Các câu hỏi về HTML
  3. Các câu hỏi về CSS
  4. Các câu hỏi về JavaScript
  5. Các câu hỏi về Kiểm thử (Testing)
  6. Các câu hỏi về Hiệu suất (Performance)
  7. Các câu hỏi về Mạng (Network)
  8. Các câu hỏi về việc viết code
  9. Các câu hỏi vui

Tham gia đóng góp

  1. Những người đóng góp
  2. Làm sao để đóng góp
  3. Giấy phép

Các câu hỏi chung:

  • Bạn đã học được gì trong ngày hôm qua/tuần này??
  • Điều gì về lập trình làm bạn hứng thú?
  • Một thử thách về mặt kĩ thuật bạn đã trải qua gần đây là gì và bạn đã giải quyết nó như thế nào?
  • Bạn cân nhắc những Giao diện người dùng (UI), Vấn đề bảo mật (Security), Hiệu suất (Performance), Khả năng tối ưu cho các bộ máy tìm kiếm (SEO), Khả năng bảo trì (Maintainability) hay Công nghệ (Technology) nào khi xây dựng một ứng dụng/trang web?
  • Hãy nói về môi trường lập trình mà bạn muốn.
  • Những hệ thống quản lý phiên bản (version control systems) nào mà bạn đã sử dụng và cảm thấy quen thuộc?
  • Bạn có thể trình bày mạch làm việc (workflow) của bạn khi bạn tạo một trang web không?
  • Nếu bạn có 5 stylesheet khác nhau, bạn sẽ tích hợp chúng vào trang như thế nào là tốt nhất?
  • Bạn có thể trình bày sự khác nhau giữa progressive enhancement và graceful degradation không?
  • Bạn sẽ tối ưu các tài nguyên (assets/resources) của một website như thế nào?
  • Một trình duyệt sẽ tải bao nhiêu tài nguyên cùng một lúc từ một tên miền (domain) cho trước?
    • Các exception là gì?
  • Nêu 3 cách để giảm tải trang web (perceived hoặc thời gian tải thực tế (actual load time)).
  • Nếu bạn tham gia vào một dự án và họ xài nút Tab trong khi bạn sử dụng nút dấu cách (spaces), bạn sẽ làm gì?
  • Trình bày cách bạn sẽ làm một trang slideshow đơn giản.
  • Nếu bạn có thể chuyên sâu về một công nghệ (technology) trong năm nay thì nó sẽ là công nghệ gì?
  • Giải thích tầm quan trọng của các standards và standards bodies.
  • Flash of Unstyled Content là gì? Bạn tránh FOUC như thế nào?
  • Giải thích ARIA và screenreaders là gì, và làm thế nào để làm cho một trang web có thể truy cập được.
  • Giải thích một vài ưu và khuyết điểm của CSS animations so với JavaScript animations.
  • CORS là từ viết tắt của cái gì và nó đề cập đến vấn đề nào?

Các câu hỏi về HTML:

  • Một doctype làm cái gì?
  • Sự khác nhau giữa chế độ full standards, chế độ almost standards và chế độ quirks?
  • Sự khác nhau giữa HTML và XHTML là gì?
  • Có vấn đề nào không khi cung cấp (serving) các trang theo kiểu application/xhtml+xml?
  • Bạn cung cấp một trang web có nội dung được viết bằng nhiều ngôn ngữ như thế nào?
  • Bạn phải cảnh giác những điều gì khi thiết kế hoặc phát triển các trang web đa ngôn ngữ?
  • Những thuộc tính data- có lợi cho cái gì?
  • Hãy xem HTML5 như một nền tảng web mở (open web platform). Những building blocks của HTML5 là gì?
  • Trình bày sự khác nhau giữa một cookie, sessionStoragelocalStorage.
  • Trình bày sự khác nhau giữa <script>, <script async><script defer>.
  • Tại sao việc đặt các thẻ (tag) <link> CSS giữa 2 thẻ <head></head> và các thẻ <script> JS ngay trước thẻ </body> về cơ bản là một ý tưởng tốt? Bạn có biết những trường hợp ngoại lệ nào khác không?
  • Progressive rendering là gì?
  • Tại sao bạn sẽ sử dụng thuộc tính srcset trong 1 tag img? Giải thích quá trình mà trình duyệt sẽ sử dụng khi phân tích nội dung của thuộc tính này.
  • Trước đây bạn đã bao giờ sử dụng những ngôn ngữ template HTML nào khác chưa?

Các câu hỏi về CSS:

  • Điểm khác biệt giữa class và ID trong CSS là gì?
  • Sự khác nhau giữa “resetting” và “normalizing” CSS là gì? Bạn sẽ chọn cái nào, và tại sao?
  • Trình bày về Floats và cách chúng hoạt động.
  • Trình bày về z-index và làm thế nào để nội dung stack với nhau được định hình.
  • Trình bày về BFC (Block Formatting Context) và cách nó hoạt động.
  • Các kĩ thuật clearing khác nhau là những kĩ thuật nào và phù hợp với hoàn cảnh nào?
  • Giải thích về CSS sprites, và làm thế nào để bạn thực hiện chúng trên một trang web.
  • Những kĩ thuật thay thế hình ảnh nào mà bạn thích và bạn sử dụng từng kĩ thuật đó khi nào?
  • Bạn sẽ tiếp cận như thế nào để khắc phục các vấn đề về trình bày trên một trình duyệt cụ thể?
  • Bạn sẽ cung cấp các trang của bạn trên các trình duyệt hạn chế tính năng như thế nào?
    • Bạn sẽ sử dụng kĩ thuật hay quy trình nào?
  • Những cách khác nhau nào để ẩn giấu 1 element một cách trực quan (và làm cho chúng chỉ hiển thị với người đọc qua màn hình)?
  • Bạn đã bao giờ sử dụng một hệ thống grid chưa, và nếu có, bạn thích cái nào hơn?
  • Bạn đã bao giờ sử dụng các media queries hay các layout/CSS cụ thể cho mobile chưa?
  • Bạn có quen với việc trình bày/tạo dáng cho SVG?
  • Bạn tối ưu các trang web cho việc in ấn như thế nào?
  • Một vài điểm kiểu “A đây rồi” trong việc viết CSS hiệu quả?
  • Các ưu/khuyết điểm của việc sử dụng các CSS preprocessors?
    • Trình bày những điểm bạn thích và không thích về các CSS preprocessors mà bạn đã sử dụng.
  • Bạn sẽ thực hiện thách thức trong các thiết kế web có sử dụng các font không phải tiêu chuẩn (non-standard fonts) như thế nào?
  • Giải thích cách mà một trình duyệt quyết định những element nào tương ứng với một CSS selector.
  • Trình bày về các pseudo-elements và thảo luận xem chúng dùng để làm gì.
  • Giải thích những hiểu biết của bạn về box model và làm thế nào bạn báo với trình duyệt trong CSS để render layout của bạn trong các box models khác nhau.
  • Đoạn code này * { box-sizing: border-box; } sẽ làm điều gì? Những ưu điểm của nó là gì?
  • Liệt kê các giá trị của thuộc tính display mà bạn có thể nhớ.
  • Sự khác nhau giữa inline và inline-block là gì?
  • Sự khác nhau giữa một thành phần có thuộc tính position với giá trị: relative, fixed, absolute, hoặc có vị trí tĩnh (statically positioned element)?
  • Chữ cái ‘C’ trong CSS là viết tắt của từ Cascading. Mức độ ưu tiên được xác định trong việc gán style như thế nào (cho vài ví dụ)? Bạn có thể tận dụng hệ thống này như thế nào?
  • Những framework CSS nào bạn đã sử dụng trên máy của bạn, hoặc trong sản phẩm nào đó? Bạn sẽ thay đổi/cải tiến chúng như thế nào?
  • Bạn có bao giờ sử dụng CSS Flexbox hay Grid chưa?
  • Responsive design khác adaptive design như thế nào?
  • Bạn có bao giờ làm việc với các thiết bị màn hình retina chưa? Nếu có, bạn đã sử dụng khi nào và dùng những kĩ thuật nào?
  • Có những lý do nào bạn muốn sử dụng translate() hơn thay vì absolute positioning không, hoặc ngược lại? Và tại sao?

Các câu hỏi về JavaScript:

  • Giải thích về event delegation
  • Giải thích cách mà this hoạt động trong JavaScript
  • Giải thích cách mà prototypal inheritance hoạt động
  • Bạn nghĩ gì về AMD so với CommonJS?
  • Giải thích tại sao đoạn code sau không hoạt động như một IIFE: function foo(){ }();.
    • Cần thay đổi gì để làm nó trở thành một IIFE?
  • Sự khác nhau giữa một biến: chứa null, chứa undefined hoặc chưa được khai báo (undeclared) là gì?
    • Bạn sẽ kiểm tra các trạng thái này như thế nào?
  • Một closure là gì, và bạn sẽ sử dụng nó như thế nào / tại sao bạn sử dụng nó?
  • Một trường hợp sử dụng điển hình cho các anonymous functions?
  • Bạn tổ chức code của bạn như thế nào? (module pattern, classical inheritance?)
  • Sự khác nhau giữa host objects và native objects là gì?
  • Nêu sự khác nhau giữa: function Person(){}, var person = Person(), và var person = new Person()?
  • Sự khác nhau giữa .call.apply là gì?
  • Giải thích về Function.prototype.bind.
  • Bạn sẽ sử dụng document.write() khi nào?
  • Sự khác nhau giữa feature detection, feature inference, và việc sử dụng UA string là gì?
  • Giải thích về Ajax bằng nhiều thông tin chi tiết nhất có thể.
  • Những ưu và khuyết điểm của việc sử dụng Ajax là gì?
  • Giải thích cách JSONP làm việc (và nó thật sự không phải là Ajax như thế nào).
  • Bạn đã bao giờ sử dụng JavaScript templating chưa?
    • Nếu có, bạn đã sử dụng những thư viện nào?
  • Giải thích về “hoisting”.
  • Trình bày về event bubbling.
  • Trình bày sự khác nhau giữ một “attribute” và một “property”?
  • Tại sao việc mở rộng các object được xây dựng sẵn trong JavaScript không phải là một ý tưởng tốt?
  • Sự khác nhau giữa event load và event DOMContentLoaded của document?
  • Sự khác nhau giữa == and === là gì?
  • Giải thích về same-origin policy và sự liên quan của nó với JavaScript.
  • Làm cho hàm này hoạt động:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Tại sao lại gọi là Ternary expression, từ “Ternary” có nghĩa gì?
  • "use strict"; là gì? Những điểm lợi và hại khi sử dụng nó?
  • Tạo một vòng lặp for cho output từ 1 đến 100, trong đó output “fizz” thay cho số chia hết cho 3, “buzz” thay cho số chia hết cho 5“fizzbuzz” thay cho số chia hết cho cả 35.
  • Tại sao, nói chung, việc không làm ảnh hưởng đến global scope của một website là một điều tốt?
  • Tại sao bạn sẽ không sử dụng những thứ như event load? Event này có điểm bất lợi nào không? Bạn có biết cách thay thế nào khác, và tại sao bạn sẽ sử dụng chúng?
  • Giải thích một ứng dụng đơn trang (single page app) là gì và làm sao để làm chúng thân thiện với việc SEO.
  • Mức độ trải nghiệm của bạn là như thế nào đối với các Promise và/hoặc polyfills của chúng?
  • Những điểm lợi và hại của việc sử dụng các Promise thay cho các callback?
  • Nêu một vài ưu và khuyết điểm của việc viết code JavaScript trong một ngôn ngữ mà sẽ dùng để biên dịch thành JavaScript.
  • Bạn sử dụng những công cụ và kỹ thuật nào để gỡ lỗi (debug) cho JavaScript?
  • Bạn sử dụng những cấu trúc nào để lặp xuyên suốt qua tất cả các thuộc tính (property) trong object và các item trong array?
  • Giải thích sự khác nhau giữa các mutable object và immutable object.
    • Nêu ví dụ cho một immutable object trong JavaScript?
    • Những ưu/khuyết điểm của tính bất biến (immutability)?
    • Làm thế nào để đạt được tính bất biến trong code của bạn?
  • Giải thích sự khác nhau giữa các hàm đồng bộ (synchronous function) và hàm không đồng bộ (asynchronous function).
  • Event loop là gì?
    • Sự khác biệt giữa call stack và task queue là gì?
  • Giải thích sự khác nhau trong các cách sử dụng foo sau đây: giữa function foo() {}var foo = function() {}
  • Sự khác biệt giữa các biến được tạo bằng việc sử dụng let, var hoặc const là gì?

Các câu hỏi về Kiểm thử (Testing):

  • Vài điểm lợi và bất lợi trong việc kiểm thử code của bạn là gì?
  • Bạn sẽ sử dụng những công cụ nào để kiểm thử chức năng của code của bạn?
  • Sự khác nhau giữa một unit test và một functional/integration test là gì?
  • Mục đích của một công cụ kiểm tra code style (code style linting tool) là gì?

Các câu hỏi về Hiệu suất (Performance):

  • Bạn sử dụng những công cụ nào để tìm ra một lỗi hiệu suất trong code của bạn?
  • Chỉ ra vài cách mà bạn có thể cải thiện hiệu suất cuộn trang (scrolling performance) trên website của bạn?
  • Giải thích sự khác nhau giữa layout, painting và compositing.

Các câu hỏi về Mạng (Network):

  • Theo truyền thống, tại sao việc cung cấp các tài nguyên của trang web từ nhiều tên miền khác nhau là việc có lợi hơn?
  • Hãy trình bày một cách toàn diện nhất quá trình từ lúc bạn nhập vào URL của một trang web đến khi nó hoàn thành việc tải và hiện thị trên màn hình của bạn.
  • Những điểm khác nhau giữa Long-Polling, Websockets và Server-Sent Events?
  • Giải thích các request header và response header sau:
    • Sự khác nhau giữa Expires, Date, Age và If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Các HTTP methods là gì? Liệt kê tất cả HTTP methods mà bạn biết, và giải thích chúng.

Các câu hỏi về việc viết code:

Câu hỏi: Giá trị của foo là gì?

var foo = 10 + '20';

Câu hỏi: Đoạn code dưới đây sẽ xuất ra cái gì?

console.log(0.1 + 0.2 == 0.3);

Câu hỏi: Bạn sẽ làm thế nào để hàm này hoạt động?

add(2, 5); // 7
add(2)(5); // 7

Câu hỏi: Giá trị nào được trả về từ dòng lệnh sau?

"i'm a lasagna hog".split("").reverse().join("");

Câu hỏi: Giá trị của window.foo là gì?

( window.foo || ( window.foo = "bar" ) );

Câu hỏi: Kết quả của 2 lệnh alert dưới đây là gì?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Câu hỏi: Giá trị của foo.length là gì?

var foo = [];
foo.push(1);
foo.push(2);

Câu hỏi: Giá trị của foo.x là gì?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Câu hỏi: Những dòng code sau in ra những gì?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Các câu hỏi vui:

  • Gần đây bạn đã làm việc với những dự án thú vị nào?
  • Vài điều bạn thích về các công cụ dành cho nhà phát triển mà bạn sử dụng là gì?
  • Ai là người truyền cảm hứng cho bạn trong cộng đồng front-end?
  • Bạn có dự án ngắn hạn nào không? Kiểu dự án gì?
  • Những tính năng của Internet Explorer mà bạn thích là gì?
  • Bạn có thích dùng cà phê không?

Những người đóng góp:

Tài liệu này được khởi đầu vào năm 2009 như là một sự cộng tác của @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym.

Đã nhận được sự đóng góp từ hơn 100 developers.

\ No newline at end of file diff --git a/config/eleventy.config.js b/config/eleventy.config.js new file mode 100644 index 000000000..0f8ac030e --- /dev/null +++ b/config/eleventy.config.js @@ -0,0 +1,89 @@ +const { DateTime } = require('luxon') +const CleanCSS = require('clean-css') +const UglifyJS = require('uglify-es') +const htmlmin = require('html-minifier') +const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight') +const markdown = require('markdown-it')({ + html: true, + breaks: true, + linkify: true, + typographer: true +}).use(require('markdown-it-anchor'), { + level: [2], + permalink: true, + permalinkBefore: true, + permalinkSymbol: '' +}) + +module.exports = eleventyConfig => { + eleventyConfig.addPlugin(syntaxHighlight) + + eleventyConfig.setLibrary('md', markdown) + + eleventyConfig.addFilter('cssmin', code => { + return new CleanCSS({}).minify(code).styles + }) + + eleventyConfig.addFilter('jsmin', (code) => { + let minified = UglifyJS.minify(code) + if (minified.error) { + console.error('UglifyJS error: ', minified.error) + return code + } + return minified.code + }) + + // Minify HTML output + eleventyConfig.addTransform('htmlmin', (content, outputPath) => { + if (outputPath.indexOf('.html') > -1) { + let minified = htmlmin.minify(content, { + useShortDoctype: true, + removeComments: true, + collapseWhitespace: true + }) + return minified + } + return content + }) + + eleventyConfig.addFilter('markdownify', str => { + return markdown.render(str) + }) + + eleventyConfig.addFilter('markdownify_inline', str => + markdown.renderInline(str) + ) + + eleventyConfig.addFilter('strip_html', str => { + return str.replace(/|||<.*?>/g, '') + }) + + // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string + eleventyConfig.addFilter('html_date_string', dateObj => { + return DateTime.fromJSDate(dateObj).toFormat('yyyy-LL-dd') + }) + + eleventyConfig.addFilter('github_permalink', str => { + return str.replace(/\.html/g, '') + }) + + eleventyConfig.addFilter('permalink', str => { + return str.replace(/\.html/g, '') + }) + + eleventyConfig.addPassthroughCopy('src/assets') + + return { + templateFormats: ['njk', 'md', 'html'], + dir: { + input: 'src', + includes: '_includes', + data: '_data', + output: '_site' + }, + markdownTemplateEngine: 'njk', + htmlTemplateEngine: 'njk', + dataTemplateEngine: 'njk', + passthroughFileCopy: true + } +} diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 000000000..6792078e1 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if [ -z "$1" ] +then + echo "Which folder do you want to deploy to GitHub Pages?" + exit 1 +fi +git subtree push --prefix $1 origin gh-pages diff --git a/package-lock.json b/package-lock.json index 57d6aa08e..00697f7a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,693 +4,4699 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "@11ty/eleventy": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-0.5.4.tgz", + "integrity": "sha512-fGZzs00HQEIUyuVUWFBstLGswMj8JJwlmEBYgK8uf1Cu2Y/ksveBdHVV1JxCc/fMA4NdZdxDz1vM4Nsa3HPjNg==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "browser-sync": "^2.24.4", + "chalk": "^2.4.1", + "debug": "^3.1.0", + "ejs": "^2.6.1", + "fast-glob": "^2.2.2", + "fs-extra": "^6.0.1", + "glob-watcher": "^5.0.1", + "gray-matter": "^4.0.1", + "hamljs": "^0.6.2", + "handlebars": "^4.0.11", + "liquidjs": "^5.1.0", + "lodash.chunk": "^4.2.0", + "lodash.clone": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.isobject": "^3.0.2", + "lodash.merge": "^4.6.1", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "luxon": "^1.3.0", + "markdown-it": "^8.4.1", + "minimist": "^1.2.0", + "multimatch": "^2.1.0", + "mustache": "^2.3.0", + "normalize-path": "^3.0.0", + "nunjucks": "^3.1.3", + "parse-filepath": "^1.0.2", + "please-upgrade-node": "^3.1.1", + "pretty": "^2.0.0", + "pug": "^2.0.3", + "recursive-copy": "^2.0.9", + "semver": "^5.5.0", + "slugify": "^1.3.0", + "time-require": "^0.1.2", + "valid-url": "^1.0.9" } }, - "all-contributors-cli": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-4.10.1.tgz", - "integrity": "sha512-3gCRCbSovqKahPMa0cyuV6/NNTgcOC6WXGP1k2F3keKyZYyJ6gaMi8MKpO7+/csO31lx3+Azqx9xatubVWNqrA==", + "@11ty/eleventy-plugin-syntaxhighlight": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-1.0.5.tgz", + "integrity": "sha512-BCLW1aZcDmNGZGGohEEiAPidIIlnza6vLGYMVkVqoLb2qdVUG0Gz5NroJu7LNtMJnvenqKGe5IxaOYvVi9qL4g==", "dev": true, "requires": { - "async": "2.6.0", - "chalk": "2.3.0", - "inquirer": "4.0.2", - "lodash": "4.17.4", - "pify": "3.0.0", - "request": "2.83.0", - "yargs": "10.1.1" + "@11ty/eleventy": "^0.3.5", + "prismjs": "^1.13.0" + }, + "dependencies": { + "@11ty/eleventy": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-0.3.6.tgz", + "integrity": "sha512-cKbdwqa+MaN2xf82rCw/qNyHnZdtcG0XWgOVMWie/7Isha45h9Xgm315SSgHqPztjYLn9LQ0V0s4djtXbK6x8g==", + "dev": true, + "requires": { + "browser-sync": "^2.24.4", + "chalk": "^2.3.2", + "check-node-version": "^3.2.0", + "debug": "^3.1.0", + "ejs": "^2.5.8", + "fs-extra": "^5.0.0", + "glob-watcher": "^5.0.1", + "globby": "^7.1.1", + "gray-matter": "^3.1.1", + "hamljs": "^0.6.2", + "handlebars": "^4.0.11", + "liquidjs": "^4.0.0", + "lodash.chunk": "^4.2.0", + "lodash.clone": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.isobject": "^3.0.2", + "lodash.merge": "^4.6.1", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "luxon": "^1.0.0", + "markdown-it": "^8.4.1", + "minimist": "^1.2.0", + "multimatch": "^2.1.0", + "mustache": "^2.3.0", + "normalize-path": "^2.1.1", + "nunjucks": "^3.1.2", + "parse-filepath": "^1.0.2", + "pify": "^3.0.0", + "pretty": "^2.0.0", + "pug": "^2.0.3", + "semver": "^5.5.0", + "slugify": "^1.2.9", + "time-require": "^0.1.2", + "valid-url": "^1.0.9" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "gray-matter": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-3.1.1.tgz", + "integrity": "sha512-nZ1qjLmayEv0/wt3sHig7I0s3/sJO0dkAaKYQ5YAOApUtYEOonXSFdWvL1khvnZMTvov4UufkqlFsilPnejEXA==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "js-yaml": "^3.10.0", + "kind-of": "^5.0.2", + "strip-bom-string": "^1.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "liquidjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-4.0.0.tgz", + "integrity": "sha512-f/VnYyswWE6PQAhLVBPfaAljemCwyaUiShEBcKoZ167jjIYUmwvY82jVW8Mp4iM4maYuN/ZFAnPLaOjsZAo42w==", + "dev": true, + "requires": { + "any-promise": "^1.3.0", + "resolve-url": "^0.2.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, - "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "color-convert": "1.9.1" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "@types/babel-types": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.4.tgz", + "integrity": "sha512-WiZhq3SVJHFRgRYLXvpf65XnV6ipVHhnNaNvE8yCimejrGglkg38kEj0JcizqwSHxmPSjcTlig/6JouxLGEhGw==", "dev": true }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "@types/babylon": { + "version": "6.16.4", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.4.tgz", + "integrity": "sha512-8dZMcGPno3g7pJ/d0AyJERo+lXh9i1JhDuCUs+4lNIN9eUe5Yh6UCLrpgSEi05Ve2JMLauL2aozdvKwNL0px1Q==", "dev": true, "requires": { - "lodash": "4.17.4" + "@types/babel-types": "*" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "@types/node": { + "version": "10.12.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz", + "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", "dev": true }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "hoek": "4.2.0" + "mime-types": "~2.1.18", + "negotiator": "0.6.1" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "acorn": { + "version": "3.3.0", + "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", "dev": true }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } } }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", "dev": true }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "ajv": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", - "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "all-contributors-cli": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-4.11.2.tgz", + "integrity": "sha512-E1hfoxpCWes+YUvYP9IuaQMg6gs//5iRearVeDfgrxUNr6MFP0BGJwhZb33usiNCO7Sl3lasbpAfWNmfvXb1Bg==", "dev": true, "requires": { - "color-name": "1.1.3" + "async": "^2.0.0-rc.1", + "chalk": "^2.3.0", + "inquirer": "^4.0.0", + "lodash": "^4.11.2", + "pify": "^3.0.0", + "request": "^2.72.0", + "yargs": "^10.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "ansi-escapes": { + "version": "3.1.0", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "boom": "5.2.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" }, "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "hoek": "4.2.0" + "remove-trailing-separator": "^1.0.1" } } } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "sprintf-js": "~1.0.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", "dev": true }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "external-editor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" + "array-uniq": "^1.0.1" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "locate-path": "2.0.0" + "safer-buffer": "~2.1.0" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-done": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", + "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^1.0.7", + "stream-exhaust": "^1.0.1" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + } } }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "axios": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", + "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, - "inquirer": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-4.0.2.tgz", - "integrity": "sha512-+f3qDNeZpkhFJ61NBA9jXDrGGhoQuqfEum9A681c9oHoIbGgVqjogKynjB/vNVP+nVu9w3FbFQ35c0ibU0MaIQ==", + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.1.0", - "figures": "2.0.0", - "lodash": "4.17.4", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", "dev": true }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true + "requires": { + "tweetnacl": "^0.14.3" + } }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "invert-kv": "1.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "browser-sync": { + "version": "2.26.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.3.tgz", + "integrity": "sha512-VLzpjCA4uXqfzkwqWtMM6hvPm2PNHp2RcmzBXcbi6C9WpkUhhFb8SVAr4CFrCsFxDg+oY6HalOjn8F+egyvhag==", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "browser-sync-client": "^2.26.2", + "browser-sync-ui": "^2.26.2", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chokidar": "^2.0.4", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "1.15.2", + "immutable": "^3", + "localtunnel": "1.9.1", + "micromatch": "2.3.11", + "opn": "5.3.0", + "portscanner": "2.1.1", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "2.1.1", + "ua-parser-js": "0.7.17", + "yargs": "6.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "browser-sync-client": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.2.tgz", + "integrity": "sha512-FEuVJD41fI24HJ30XOT2RyF5WcnEtdJhhTqeyDlnMk/8Ox9MZw109rvk9pdfRWye4soZLe+xcAo9tHSMxvgAdw==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3", + "rxjs": "^5.5.6" } }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "browser-sync-ui": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.2.tgz", + "integrity": "sha512-LF7GMWo8ELOE0eAlxuRCfnGQT1ZxKP9flCfGgZdXFc6BwmoqaJHlYe7MmVvykKkXjolRXTz8ztXAKGVqNwJ3EQ==", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^2.0.4", + "stream-throttle": "^0.1.3" } }, - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", "dev": true }, - "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", - "dev": true, - "requires": { - "mime-db": "1.30.0" - } + "bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true }, - "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "path-key": "2.0.1" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "number-is-nan": { + "call-me-maybe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", "dev": true }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.1.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "check-node-version": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-3.2.0.tgz", + "integrity": "sha512-mJu4dADRf+NUeOyGgFTXaLtjyyffD3Eej2RA9IEk1CdHmoVurErLD++e/Ps6uKfsB273ky+0Z9NlOiuplxuNdw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "object.assign": "^4.0.4", + "run-parallel": "^1.1.4", + "semver": "^5.0.3" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "clipboard": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", + "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "dev": true, + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "condense-newlines": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz", + "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-whitespace": "^0.3.0", + "kind-of": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "dev": true, + "requires": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-time": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", + "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "dev": true, + "optional": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "dev": true, + "requires": { + "tfunk": "^3.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editorconfig": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.2.tgz", + "integrity": "sha512-GWjSI19PVJAM9IZRGOS+YKI8LN+/sjkSjNyvxL5ucqP9/IqtYNXBaQ/6c/hkPNYQHyOHra2KoXZI/JVpuqwmcQ==", + "dev": true, + "requires": { + "@types/node": "^10.11.7", + "@types/semver": "^5.5.0", + "commander": "^2.19.0", + "lru-cache": "^4.1.3", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "emitter-mixin": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/emitter-mixin/-/emitter-mixin-0.0.3.tgz", + "integrity": "sha1-WUjLKG8uSO3DslGnz8H3iDOW1lw=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "http://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-glob": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz", + "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "glob-watcher": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "http://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "gray-matter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.1.tgz", + "integrity": "sha512-p0MADBEBl1CohV7nRZ8sVinBexEe3CKVhh0A0QIHKpcbRoxB0VgeMpRPjW/HBHIPLAKrpIIIm5mZ6hKu3E+iQg==", + "dev": true, + "requires": { + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, + "hamljs": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz", + "integrity": "sha1-e3EWz22+cnjkKz9u+HJaM+F3yOM=", + "dev": true + }, + "handlebars": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "dev": true, + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + } + } + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.15.2", + "resolved": "http://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", + "dev": true, + "requires": { + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-4.0.2.tgz", + "integrity": "sha512-+f3qDNeZpkhFJ61NBA9jXDrGGhoQuqfEum9A681c9oHoIbGgVqjogKynjB/vNVP+nVu9w3FbFQ35c0ibU0MaIQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "dev": true, + "requires": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-whitespace": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", + "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-beautify": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.8.tgz", + "integrity": "sha512-qVNq7ZZ7ZbLdzorvSlRDadS0Rh5oyItaE95v6I4wbbuSiijxn7SnnsV6dvKlcXuO2jX7lK8tn9fBulx34K/Ejg==", + "dev": true, + "requires": { + "config-chain": "~1.1.5", + "editorconfig": "^0.15.0", + "mkdirp": "~0.5.0", + "nopt": "~4.0.1" + } + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "junk": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", + "integrity": "sha1-h75jSIZJy9ym9Tqzm+yczSNH9ZI=", + "dev": true + }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "limiter": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.3.tgz", + "integrity": "sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw==", + "dev": true + }, + "linkify-it": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz", + "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "liquidjs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-5.2.0.tgz", + "integrity": "sha512-bIDYRWlo8f09dNd8Hz3lHVPOpgw33jtDCebMEDj2D9g54/KhTao7/lVv+3hYtsWTW2PId4hH+1X0iuuYnQHnTg==", + "dev": true, + "requires": { + "resolve-url": "^0.2.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "localtunnel": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.1.tgz", + "integrity": "sha512-HWrhOslklDvxgOGFLxi6fQVnvpl6XdX4sPscfqMZkzi3gtt9V7LKBWYvNUcpHSVvjwCQ6xzXacVvICNbNcyPnQ==", + "dev": true, + "requires": { + "axios": "0.17.1", + "debug": "2.6.9", + "openurl": "1.1.1", + "yargs": "6.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.chunk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", + "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=", + "dev": true + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", + "dev": true + }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", + "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^3.0.2" + } + }, + "luxon": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.8.0.tgz", + "integrity": "sha512-F742cYUYB7X+LXY3cIn6THZUBqRBjeAvF+CWE2i3+eKcv2bzsCsnRsBYL8Qrqzp1dfs6HsVcSjfKt2RcrtUElw==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdown-it-anchor": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.0.2.tgz", + "integrity": "sha512-AFM/woBI8QDJMS/9+MmsBMT5/AR+ImfOsunQZTZhzcTmna3rIzAzbOh5E0l6mlFM/i9666BpUtkqQ9bS7WApCg==", + "dev": true + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "maximatch": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", + "integrity": "sha1-hs2NawTJ8wfAWmuUGZBtA2D7E6I=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "dev": true + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dev": true, + "requires": { + "mime-db": "~1.37.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mitt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.3.tgz", + "integrity": "sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mustache": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", + "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nunjucks": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.1.4.tgz", + "integrity": "sha512-OIbdsl7jAZpw5V6GIa6wJc2AKCC/JSwuVdNKuVpFZ+eB3kYugoGF6OVN/jKNFe52782Uj89n0pT0DiSS1KPbxA==", + "dev": true, + "requires": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "chokidar": "^2.0.0", + "postinstall-build": "^5.0.1", + "yargs": "^3.32.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true, + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g=", + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-ms": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", + "integrity": "sha1-3T+iXtbC78e93hKtm0bBY6opIk4=", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "p-try": "1.0.0" + "better-assert": "~1.0.0" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "p-limit": "1.2.0" + "better-assert": "~1.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { @@ -699,6 +4705,38 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -706,9 +4744,128 @@ "dev": true }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "2.3.0", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true, + "requires": { + "async": "1.5.2", + "is-number-like": "^1.0.3" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postinstall-build": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postinstall-build/-/postinstall-build-5.0.3.tgz", + "integrity": "sha512-vPvPe8TKgp4FLgY3+DfxCE5PIfoXBK2lyLfNCxsRbDsV6vS4oU5RG/IWxrblMn6heagbnMED3MemUQllQ2bQUg==", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz", + "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", + "dev": true, + "requires": { + "condense-newlines": "^0.2.1", + "extend-shallow": "^2.0.1", + "js-beautify": "^1.6.12" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "pretty-ms": { + "version": "0.2.2", + "resolved": "http://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", + "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", + "dev": true, + "requires": { + "parse-ms": "^0.1.0" + } + }, + "prismjs": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.15.0.tgz", + "integrity": "sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA==", + "dev": true, + "requires": { + "clipboard": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, "pseudomap": { @@ -717,46 +4874,420 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, + "pug": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz", + "integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=", + "dev": true, + "requires": { + "pug-code-gen": "^2.0.1", + "pug-filters": "^3.1.0", + "pug-lexer": "^4.0.0", + "pug-linker": "^3.0.5", + "pug-load": "^2.0.11", + "pug-parser": "^5.0.0", + "pug-runtime": "^2.0.4", + "pug-strip-comments": "^1.0.3" + } + }, + "pug-attrs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz", + "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=", + "dev": true, + "requires": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.4" + } + }, + "pug-code-gen": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz", + "integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=", + "dev": true, + "requires": { + "constantinople": "^3.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.3", + "pug-error": "^1.3.2", + "pug-runtime": "^2.0.4", + "void-elements": "^2.0.1", + "with": "^5.0.0" + } + }, + "pug-error": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz", + "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY=", + "dev": true + }, + "pug-filters": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz", + "integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=", + "dev": true, + "requires": { + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", + "jstransformer": "1.0.0", + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "pug-lexer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz", + "integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=", + "dev": true, + "requires": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.2" + } + }, + "pug-linker": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz", + "integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=", + "dev": true, + "requires": { + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7" + } + }, + "pug-load": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz", + "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "pug-walk": "^1.1.7" + } + }, + "pug-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz", + "integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=", + "dev": true, + "requires": { + "pug-error": "^1.3.2", + "token-stream": "0.0.1" + } + }, + "pug-runtime": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz", + "integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g=", + "dev": true + }, + "pug-strip-comments": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz", + "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=", + "dev": true, + "requires": { + "pug-error": "^1.3.2" + } + }, + "pug-walk": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz", + "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=", + "dev": true + }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "recursive-copy": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.9.tgz", + "integrity": "sha512-0AkHV+QtfS/1jW01z3m2t/TRTW56Fpc+xYbsoa/bqn8BCYPwmsaNjlYmUU/dyGg9w8MmGoUWihU5W+s+qjxvBQ==", + "dev": true, + "requires": { + "del": "^2.2.0", + "emitter-mixin": "0.0.3", + "errno": "^0.1.2", + "graceful-fs": "^4.1.4", + "junk": "^1.0.1", + "maximatch": "^0.1.0", + "mkdirp": "^0.5.1", + "pify": "^2.3.0", + "promise": "^7.0.1", + "slash": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } } }, "require-directory": { @@ -771,14 +5302,80 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" } }, "run-async": { @@ -787,9 +5384,21 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -802,13 +5411,159 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" } }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", "dev": true }, "set-blocking": { @@ -817,114 +5572,636 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slugify": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.3.3.tgz", + "integrity": "sha512-aFvcXobuowA7RqU4IBVJvqmhkREDIqsj4oIJKk6JuZ5EO1PCwtAAwDCl8TdsMs4J9zCoDAVkB9FLUElDjNcRSg==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "http://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", + "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "extend-shallow": "^3.0.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "sshpk": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "hoek": "4.2.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "commander": "^2.2.0", + "limiter": "^1.0.5" } }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "is-utf8": "^0.2.0" } }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "chalk": "^1.1.1", + "object-path": "^0.9.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + } } }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "time-require": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/time-require/-/time-require-0.1.2.tgz", + "integrity": "sha1-+eEss3D8JgXhFARYK6VO9corLZg=", + "dev": true, + "requires": { + "chalk": "^0.4.0", + "date-time": "^0.1.1", + "pretty-ms": "^0.2.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "chalk": { + "version": "0.4.0", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + } + } + }, + "tiny-emitter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", + "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==", + "dev": true, + "optional": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "token-stream": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", + "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", + "dev": true + }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "tunnel-agent": { @@ -933,95 +6210,317 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, + "uc.micro": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz", + "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true + }, + "with": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", + "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", + "dev": true, + "requires": { + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - } + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", @@ -1029,39 +6528,47 @@ "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true }, "yargs": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.1.tgz", - "integrity": "sha512-7uRL1HZdCbc1QTP+X8mehOPuCYKC/XTaqAPj7gABLfTt6pgLyVRn3QVte4qhtilZouWCvqd1kipgMKl5tKsFiw==", + "version": "6.4.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", "dev": true, "requires": { - "cliui": "4.0.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.1.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.1.0" } }, "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "version": "4.2.1", + "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^3.0.0" } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true } } } diff --git a/package.json b/package.json index d9cb93a22..7572b4663 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,11 @@ "version": "1.0.0", "description": "A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.", "scripts": { + "build": "eleventy --config=config/eleventy.config.js", + "deploy": "git subtree push --prefix _site git@github.com:h5bp/Front-end-Developer-Interview-Questions.git gh-pages", "contributors:add": "all-contributors add", - "contributors:generate": "all-contributors generate" + "contributors:generate": "all-contributors generate", + "start": "eleventy --config=config/eleventy.config.js --serve --port 9090" }, "repository": { "type": "git", @@ -19,12 +22,26 @@ "questions" ], "author": "H5BP", + "contributors": [ + { + "name": "Cezar Augusto", + "email": "boss@cezaraugusto.net" + } + ], "license": "MIT", "bugs": { "url": "https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues" }, "homepage": "https://github.com/h5bp/Front-end-Developer-Interview-Questions#readme", "devDependencies": { - "all-contributors-cli": "^4.10.1" + "@11ty/eleventy": "^0.5.2", + "@11ty/eleventy-plugin-syntaxhighlight": "^1.0.5", + "all-contributors-cli": "^4.10.1", + "clean-css": "^4.1.11", + "html-minifier": "^3.5.19", + "luxon": "^1.3.1", + "markdown-it": "^8.4.2", + "markdown-it-anchor": "^5.0.2", + "uglify-es": "^3.3.9" } } diff --git a/src/404.njk b/src/404.njk new file mode 100644 index 000000000..6b230e3ec --- /dev/null +++ b/src/404.njk @@ -0,0 +1,16 @@ +--- +title: 404 - Page not found +description: Think this is wrong? [Open an issue](https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues/new) +permalink: /404.html +excludeFromSitemap: true +--- +{% extends 'layouts/page.njk' %} + +{% set content %} +{% endset %} + +{% block main %} +
+ {{ content | markdownify | safe }} +
+{% endblock %} diff --git a/src/_data/maintainers.json b/src/_data/maintainers.json new file mode 100644 index 000000000..51cb64eb0 --- /dev/null +++ b/src/_data/maintainers.json @@ -0,0 +1,26 @@ + +{ + "all": [ + { + "avatar": "https://avatars0.githubusercontent.com/u/4672033?v=4", + "name": "Cezar Augusto", + "website": "https://cezaraugusto.net/", + "github": "https://github.com/cezaraugusto", + "twitter": "https://twitter.com/cezaraugusto" + }, + { + "avatar": "https://avatars0.githubusercontent.com/u/361421?v=4", + "name": "Rob Larsen", + "website": "http://htmlcssjavascript.com/", + "github": "https://github.com/roblarsen", + "twitter": "https://twitter.com/robreact" + }, + { + "avatar": "https://avatars1.githubusercontent.com/u/6904368?v=4", + "name": "Vasiliy Vanchuk", + "website": "https://bit.ly/vvscodeli", + "github": "https://github.com/vvscode", + "twitter": "https://twitter.com/vvscode" + } + ] +} diff --git a/src/_data/questions.json b/src/_data/questions.json new file mode 100644 index 000000000..c68780d8a --- /dev/null +++ b/src/_data/questions.json @@ -0,0 +1,65 @@ + +{ + "all": [ + { + "abbreviation": "Coding", + "title": "Coding Questions", + "url": "/questions/coding-questions/", + "external": false + }, + { + "abbreviation": "CSS", + "title": "CSS Questions", + "url": "/questions/css-questions/", + "external": false + }, + { + "abbreviation": "Fun", + "title": "Fun Questions", + "url": "/questions/fun-questions/", + "external": false + }, + { + "abbreviation": "General", + "title": "General Questions", + "url": "/questions/general-questions/", + "external": false + }, + { + "abbreviation": "HTML", + "title": "HTML Questions", + "url": "/questions/html-questions/", + "external": false + }, + { + "abbreviation": "JavaScript", + "title": "JavaScript Questions", + "url": "/questions/javascript-questions/", + "external": false + }, + { + "abbreviation": "A11y", + "title": "Accessibility Questions", + "url": "https://scottaohara.github.io/accessibility_interview_questions/", + "external": true + }, + { + "abbreviation": "Network", + "title": "Network Questions", + "url": "/questions/network-questions/", + "external": false + }, + { + "abbreviation": "Perfomance", + "title": "Perfomance Questions", + "url": "/questions/performance-questions/", + "external": false + }, + { + "abbreviation": "Testing", + "title": "Testing Questions", + "url": "/questions/testing-questions/", + "external": false + } + ] +} diff --git a/src/_data/site.json b/src/_data/site.json new file mode 100644 index 000000000..cabf05782 --- /dev/null +++ b/src/_data/site.json @@ -0,0 +1,9 @@ + +{ + "title": "Front-end Job Interview Questions", + "url": "https://h5bp.github.io/Front-end-Developer-Interview-Questions", + "description": "A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.", + "keywords": "front-end, interview questions, css questions, js questions, html questions, performance questions, interview test", + "language": "en_US", + "twitter": "@h5bp" +} diff --git a/src/_data/translations.json b/src/_data/translations.json new file mode 100644 index 000000000..27165b32a --- /dev/null +++ b/src/_data/translations.json @@ -0,0 +1,133 @@ + +{ + "all": [ + { + "language": "Arabic", + "url": "arabic/" + }, + { + "language": "Bulgarian", + "url": "bulgarian/" + }, + { + "language": "Burmese", + "url": "burmese/" + }, + { + "language": "Chinese", + "url": "chinese/" + }, + { + "language": "Chinese-Traditional", + "url": "chinese-traditional/" + }, + { + "language": "Croatian", + "url": "croatian/" + }, + { + "language": "Czech", + "url": "czech/" + }, + { + "language": "Danish", + "url": "danish/" + }, + { + "language": "Dutch", + "url": "dutch/" + }, + { + "language": "Farsi", + "url": "farsi/" + }, + { + "language": "French", + "url": "french/" + }, + { + "language": "German", + "url": "german/" + }, + { + "language": "Hebrew", + "url": "hebrew/" + }, + { + "language": "Greek", + "url": "greek/" + }, + { + "language": "Hungarian", + "url": "hungarian/" + }, + { + "language": "Indonesian", + "url": "indonesian/" + }, + { + "language": "Italian", + "url": "italian/" + }, + { + "language": "Japanese", + "url": "japanese/" + }, + { + "language": "Korean", + "url": "korean/" + }, + { + "language": "Latvian", + "url": "latvian/" + }, + { + "language": "Polish", + "url": "polish/" + }, + { + "language": "Portuguese", + "url": "portuguese/" + }, + { + "language": "Romanian", + "url": "romanian/" + }, + { + "language": "Russian", + "url": "russian/" + }, + { + "language": "Serbian", + "url": "serbian/" + }, + { + "language": "Slovakian", + "url": "slovakian/" + }, + { + "language": "Slovenian", + "url": "slovenian/" + }, + { + "language": "Spanish", + "url": "spanish/" + }, + { + "language": "Swedish", + "url": "swedish/" + }, + { + "language": "Turkish", + "url": "turkish/" + }, + { + "language": "Ukrainian", + "url": "ukrainian/" + }, + { + "language": "Vietnamese", + "url": "vietnamese/" + } + ] +} diff --git a/src/_includes/assets/css/content.css b/src/_includes/assets/css/content.css new file mode 100644 index 000000000..d5e292004 --- /dev/null +++ b/src/_includes/assets/css/content.css @@ -0,0 +1,204 @@ +body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-family: var(--font-family-body); + font-weight: 400; + font-size: 1.2rem; + line-height: 1.5; + color: var(--color-text); +} + +section + section { + padding-top: 2rem; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: var(--font-family-heading); + color: var(--color-heading); + font-style: normal; + line-height: 1.2; + font-weight: 600; +} + +section + section { + padding-top: 2rem; +} + +a { + color: inherit; + text-decoration: none; + color: var(--color-secondary); + transition: color ease-out var(--transition-duration); +} + +a:hover:not(.skip-link), +a:focus:not(.skip-link) { + color: var(--color-primary); +} + +a[rel~='external'] { + text-decoration: overline; +} + +ul:not(.navigation):not(.inline-list) { + list-style: none; +} + +ul:not(.navigation):not(.inline-list) li::before { + content: "\25A0"; + color: var(--color-primary); + font-weight: bold; + display: inline-block; + width: 1em; + margin-left: -1em; +} + +li { + margin-bottom: 0.6rem; +} + +strong, +b { + font-weight: 600; +} + +time { + display: inline-block; + color: var(--color-gray-70); +} + +[tabindex='-1'] { + outline: 0; +} + +img, +svg { + vertical-align: middle; +} + +img { + display: block; + max-width: 100%; + border-radius: var(--border-radius-default); +} + +code { + font-family: var(--font-family-code); + color: var(--color-code); + font-style: normal; + font-size: 1rem; +} + +blockquote:not([class]) { + padding-left: 1rem; + margin-left: -1rem; + border-left: 2px solid var(--color-primary); + color: var(--color-gray-70); + font-style: italic; +} + +code[class*=language-], +pre[class*=language-] { + font-size: 0.9rem; + font-style: normal; +} + +p + pre[class*=language-] { + margin-bottom: 1.8rem; +} + +mark { + color: var(--color-highlight); + background-color: transparent; +} + +dt { + font-weight: 700; +} + +dd + dt { + padding-top: 0.5rem; +} + +abbr[title], acronym[title] { + text-decoration: overline; + background: var(--color-gray-opacity); + border: 1px solid var(--color-gray-opacity); + cursor: help; +} + +.container { + max-width: 54rem; + padding: 3rem 4rem 4rem; + margin-right: auto; + margin-left: auto; +} + +.content li:not(:last-of-type) { + margin-bottom: .5rem; +} + +.content h2 { + max-width: 33rem; +} + +.content > *:not(:last-child) { + margin-bottom: 2rem; +} + +.content *:not(hr) + h2, +.content *:not(hr) + h3 { + padding-top: 1rem; +} + +.content ul:not(.inline-list), +.content ol:not(.inline-list) { + padding-left: 1.2rem; +} + +.content-simple li:not(:last-of-type) { + margin-bottom: 0.5rem; +} + +.content-edit { + text-align: right; + margin-top: 2rem; +} + +.inline-list { + padding: 0; + list-style: none; +} + +.inline-list li { + padding: 0; + display: inline-block; + vertical-align: middle; + text-align: center; +} + +.inline-list li::before { + content: ''; + margin-left: 0; +} + +.inline-list li img { + display: block; + margin: auto; + margin-bottom: 0.6rem; +} + +.inline-list li a { + display: inline-block; + vertical-align: middle; + margin: 0 0.15rem; +} + +.avatar { + max-width: 12rem; +} diff --git a/src/_includes/assets/css/defaults.css b/src/_includes/assets/css/defaults.css new file mode 100644 index 000000000..b1ec53598 --- /dev/null +++ b/src/_includes/assets/css/defaults.css @@ -0,0 +1,17 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + outline-color: var(--color-primary); +} + +::selection { + background: var(--color-primary); + color: var(--background-default); +} + +::-moz-selection { + background: var(--color-primary); + color: var(--background-default); +} + diff --git a/src/_includes/assets/css/footer.css b/src/_includes/assets/css/footer.css new file mode 100644 index 000000000..a22d9729e --- /dev/null +++ b/src/_includes/assets/css/footer.css @@ -0,0 +1,7 @@ +.footer { + padding-top: 3rem; +} + +.footer-text { + font-size: 0.8rem; +} diff --git a/src/_includes/assets/css/header.css b/src/_includes/assets/css/header.css new file mode 100644 index 000000000..6a97bd38a --- /dev/null +++ b/src/_includes/assets/css/header.css @@ -0,0 +1,71 @@ +.topbar { + width: 100%; + height: 0.18rem; + background: var(--color-gradient); +} + +.skip-link { + position: absolute; + top: 0; + left: 0; + padding: 0.5rem 1rem; + background-color: var(--color-primary); + color: #fff; + text-decoration: none; + transform: translateY(-100%); +} + +.skip-link:focus { + transform: none; +} + +.header { + margin-bottom: 2rem; +} + +.header-big-title { + font-size: 6.9rem; + line-height: 1.06; + margin: 2.1rem 0; + color: var(--color-primary); + word-break: break-word; +} + +@supports (mix-blend-mode: lighten) { + .header-big-title { + display: inline-block; + position: relative; + color: #000; + background: #fff; + mix-blend-mode: multiply; + } + .header-big-title::before { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-image: url('https://github.com/assets/images/gradient.svg'); + pointer-events: none; + } + .header-big-title::before { + mix-blend-mode: screen; + } +} + +.header-heading { + font-size: 2.3rem; + text-transform: uppercase; +} + +.header-big-description { + font-size: 1.8rem; + line-height: 1.4; + padding: 1rem 0; +} + +.header-description { + padding-top: 1rem; +} diff --git a/src/_includes/assets/css/navigation.css b/src/_includes/assets/css/navigation.css new file mode 100644 index 000000000..392253fe3 --- /dev/null +++ b/src/_includes/assets/css/navigation.css @@ -0,0 +1,24 @@ +.nav { + padding: 1rem 0; + margin-bottom: 1rem; +} + +.navigation { + list-style: none; + display: flex; + font-size: 1rem; +} + +.navigation-item-emoji { + margin-right: 0.8rem; +} + +.navigation-item-emoji a { + text-decoration: none; + display: inline-block; + vertical-align: middle; +} + +.navigation-item:not(:last-of-type) { + margin-right: 0.8rem; +} diff --git a/src/_includes/assets/css/prism.css b/src/_includes/assets/css/prism.css new file mode 100644 index 000000000..955733e25 --- /dev/null +++ b/src/_includes/assets/css/prism.css @@ -0,0 +1,146 @@ +/** + * atom-dark theme for `prism.js` + * Based on Atom's `atom-dark` theme: https://github.com/atom/atom-dark-syntax + * @author Joe Gibson (@gibsjose) + */ + + code[class*="language-"], + pre[class*="language-"] { + color: #c5c8c6; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + } + + /* Code blocks */ + pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: 0.3em; + } + + :not(pre) > code[class*="language-"], + pre[class*="language-"] { + background: #1d1f21; + } + + /* Inline code */ + :not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + } + + .token.comment, + .token.prolog, + .token.doctype, + .token.cdata { + color: #7C7C7C; + } + + .token.punctuation { + color: #c5c8c6; + } + + .namespace { + opacity: .7; + } + + .token.property, + .token.keyword, + .token.tag { + color: #96CBFE; + } + + .token.class-name { + color: #FFFFB6; + text-decoration: underline; + } + + .token.boolean, + .token.constant { + color: #99CC99; + } + + .token.symbol, + .token.deleted { + color: #f92672; + } + + .token.number { + color: #FF73FD; + } + + .token.selector, + .token.attr-name, + .token.string, + .token.char, + .token.builtin, + .token.inserted { + color: #A8FF60; + } + + .token.variable { + color: #C6C5FE; + } + + .token.operator { + color: #EDEDED; + } + + .token.entity { + color: #FFFFB6; + /* text-decoration: underline; */ + } + + .token.url { + color: #96CBFE; + } + + .language-css .token.string, + .style .token.string { + color: #87C38A; + } + + .token.atrule, + .token.attr-value { + color: #F9EE98; + } + + .token.function { + color: #DAD085; + } + + .token.regex { + color: #E9C062; + } + + .token.important { + color: #fd971f; + } + + .token.important, + .token.bold { + font-weight: bold; + } + .token.italic { + font-style: italic; + } + + .token.entity { + cursor: help; + } diff --git a/src/_includes/assets/css/variables.css b/src/_includes/assets/css/variables.css new file mode 100644 index 000000000..8aae380bc --- /dev/null +++ b/src/_includes/assets/css/variables.css @@ -0,0 +1,17 @@ +:root { + --font-family-heading: sans-serif; + --font-family-body: Georgia, serif; + --font-family-code: Menlo, Monaco, 'Courier New', monospace; + --color-primary: #835EFF; + --color-secondary: #FF008D; + --color-safe: #8338EC; + --color-gradient: linear-gradient(to right, var(--color-primary), var(--color-secondary)); + --color-highlight: var(--color-primary); + --color-gray-opacity: rgba(39,39,39,0.04); + --color-heading: #23231A; + --color-text: #23231A; + --background-default: #F9F9F9; + --border-radius-default: 5px; + --box-shadow-default: 0 2rem 4rem rgba(0,0,0,.15); + --transition-duration: 0.27s; +} diff --git a/src/_includes/assets/js/app.js b/src/_includes/assets/js/app.js new file mode 100644 index 000000000..986ed979e --- /dev/null +++ b/src/_includes/assets/js/app.js @@ -0,0 +1,4 @@ +console.log( + '%cA black belt is a white belt that didn\'t quit.', + 'color: #fff; font-size: 80px; text-shadow: 1px 1px 1px #000; font-family: serif;' +) diff --git a/src/_includes/components/footer.njk b/src/_includes/components/footer.njk new file mode 100644 index 000000000..adc0a2a1a --- /dev/null +++ b/src/_includes/components/footer.njk @@ -0,0 +1,11 @@ + diff --git a/src/_includes/components/navigation.njk b/src/_includes/components/navigation.njk new file mode 100644 index 000000000..9703cfba0 --- /dev/null +++ b/src/_includes/components/navigation.njk @@ -0,0 +1,15 @@ + diff --git a/src/_includes/layouts/default.njk b/src/_includes/layouts/default.njk new file mode 100644 index 000000000..dd9700a82 --- /dev/null +++ b/src/_includes/layouts/default.njk @@ -0,0 +1,66 @@ + + + + + + {% if title and page.fileSlug != '' %}{{ title }} ★ {% endif %}{{ site.title }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% set css %} + {% include "assets/css/prism.css" %} + {% include "assets/css/variables.css" %} + {% include "assets/css/defaults.css" %} + {% include "assets/css/navigation.css" %} + {% include "assets/css/header.css" %} + {% include "assets/css/content.css" %} + {% include "assets/css/footer.css" %} + {% endset %} + + + +
+
+ + {% include "components/navigation.njk" %} +
+ {% block pageTop %}{% endblock %} + {% block main %}{% endblock %} +
+ {% include "components/footer.njk" %} +
+ {% set js %}{% include "assets/js/app.js" %}{% endset %} + + + diff --git a/src/_includes/layouts/page.njk b/src/_includes/layouts/page.njk new file mode 100644 index 000000000..31463c596 --- /dev/null +++ b/src/_includes/layouts/page.njk @@ -0,0 +1,25 @@ +{% extends 'layouts/default.njk' %} + +{% block pageTop %} +
+ {% if heading and heading === true %} +

{{ title }}

+ {% else %} +

{{ title }}

+ {% endif %} + {% if description %} +

{{ description | markdownify_inline | safe }}

+ {% endif %} +
+{% endblock %} + +{% block main %} +
+ {{ content | safe }} +
+ +{% endblock %} diff --git a/src/about.njk b/src/about.njk new file mode 100644 index 000000000..8cfd49f65 --- /dev/null +++ b/src/about.njk @@ -0,0 +1,54 @@ +--- +title: About +permalink: /about/index.html +--- +{% extends 'layouts/page.njk' %} + +{% set header %} +## This Project 🤳 + +This file 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. + +## Contribute 🕶 + +Saw something wrong? Want to add a question? suggest something? Check our [contributing guidelines](https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/.github/CONTRIBUTING.md), open a pull-request or [fill a bug](https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues/new). + +## Maintainers 🦄 +{% endset %} + +{% set table %} + +{% endset %} + +{% set footer %} +It has since been active thanks to these [incredibly wonderful people](https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/CONTRIBUTORS.md). + +Looking to contribute? Check our [Contributing guide](https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/.github/CONTRIBUTING.md) to get started! + +## Honorable Mentions 🎠 + +This project started in 2009 as a collaboration of [@paul_irish](https://twitter.com/paul_irish) [@bentruyman](https://twitter.com/bentruyman) [@cowboy](https://twitter.com/cowboy) [@ajpiano](https://twitter.com/ajpiano) [@SlexAxton](https://twitter.com/slexaxton) [@boazsender](https://twitter.com/boazsender) [@miketaylr](https://twitter.com/miketaylr) [@vladikoff](https://twitter.com/vladikoff) [@gf3](https://twitter.com/gf3) [@jon_neal](https://twitter.com/jon_neal) [@sambreed](https://twitter.com/sambreed) and [@iansym](https://twitter.com/iansym). +{% endset %} + +{% block main %} +
+ {{ header | markdownify | safe }} + {{ table | safe }} + {{ footer | markdownify | safe }} +
+{% endblock %} diff --git a/src/assets/images/apple-touch-icon.png b/src/assets/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3c48c6cc628a08175fcd92d40f1a942f435a5b GIT binary patch literal 18397 zcmV)UK(N1wP)6>)Dd+*u5d)}%0UTslSEA6twmnWU^CD$3|d{XEPd(=7QZEexDQ=Y2W`-+t}Pg}Gq zUnoSK@xGzbIP-0VVYxzE#J@^g#h%mSJQO#;`@inD;I&E&ROI>f2QU0|uB}y+=b${- z);1_J<-qzvdQ8Q{Jy&7Y#Pr~I)1OTmAOMdy^_08}nE_qC%&%lOC(4sQpQF z(!9N6%L)xybDJIsB!mThdMtEz%)RyY077Akc`O=)gum^#Adxko@CGm*yX@$)ddg0k zk=rKTn`{W^UL9TJxxw)DnI?Nqz~v!*T_(vT#_WUjbx-0OLsNR_sV zJ(e>QXWupZKeT5h$~!#OONH&^Y0BlF2Cdx*RLWnG$Jb4H5@)483DEOOT16h~shk$7 zN)%V*F}=0w$NroN_iXTti!VCz*@K#L$z6t_6@Nbto&*$*)N?CJ=)sR!7=*7LD+77|AQ{Y0;=uFt}P;ovjVgRhzqDztvb9+#~C_{ATPg??hE8)Q+3q%^5h>`y0QBO(x_=t*7c^txzU^sD|S)T6$~M#U36+LjxS~IsIWth z0k~=)hM|m(`D$TfI$*(a&N-yjBn?Ia04)L!^{LK)j=53puAuqGV_By|hU*S_Lhf92 zGqQ7V3-i#>kFdW%r$grdJKzyXpK2jndPx%64*Q*Q+5~6sd;e^t#o?LcY+K9d(JN2* zhv}~5*d?c_m>0;J&)Mhfh8*uwot``XZmr4ojE72*J_G7aYq{?*j3o+STT>ePnDopyTYpdHqF zUA&%jINC=Q`yy?|RFVK=2HPXTpC> zTs(brsp9pG1zB+%PD7VGsbD;0^=TFPQxOv#xNpSmNr>#EGPmm2=V&=vb98ck%AjLg zeci|9{Wh+od< zRL!a(7qC+gZM1Nl4*M2p2a+K*p5tQJL)nRuZgS)vX{z8^cXO`1{*yoXc;w{ONB1YrqmQeW>)~|8`}g$)n3>aZ86}RQKGQoq zjr$yTaRw~XnS+|I4&Rxj-3q9)0) z-yQXwT(Ihi1Si}HWVdfUV!Tx#DWE8dlW@r9R9+qQL6B~h#Oak26}os1@I@s{Bc111 z?NC2=Tt3y>3XhIhb;3AFk5An+6j&Fo7vUnssvuNq3jGoMMRYGu!ayNV4beLuIif%%Zh2+i#vyv*lp(GtsUwP# z>a+QjPeH=i1*OMe4EtQ|QSN3s9cC+XTBq<*D_&_86r6)T2y<9asw{^oYe8GunZB~= z74S!e*4Ia^JYg&I%Z_EM$4748jp_0fjhO*E5*_RFXb#z&rUKJS`DC7z1OeNeAPfXk z{agi26V+Ehx)%;B=P(^Fi?l^_<&?*E?49IS<^ZZJH&a54rDGanN;jm=@oKeoelBSXEF z_Pew-#YwfZ)^WhJ_Dxr4EZBtc2ERY)M_3Od1kZ^wFwtMLL}xmI}J9)F+QhbC`T|URKJj0^aTL zzR;mc`kg|0?&!Ivad~xfLx-8ey3w(e5QkdZ4%i1DB*8P@T}%UU77iPaK8@>`^v{CSN-v9SPsH$8Ect z)3VG&42J12jGr-n$p_Y}YmZeY#z6U5GD!+CUOJVWYd-RV;T==^qYX&U;8>e}Cwr z-Mgq_lZbU{=dnpV42)hrZN(()81~{OpjX_m7^F;#Z(u6(Ze3+G-r@IvY$v%7#wO^G z)0SlVifZQQ1`6v2=qnCgaw#`z1lX>c;;8V2bE9+XB8Iv+_0Ao=uxZ5hz2D=03Z+Bp zh2Bxd{wgV~K6&1Vt%KyL$!=X_!-&DXUYAP`KxjL9xqjk>UK9X@*6>;n0Z4XZD5WHdZ{<`FSIu>6KBMzde3fJ~b{cXqO`zGATNmkF zfj=Gi*k5W6-N2!m2KwqLPu(N;ailKm6QSL8vl3z#@woYVbn}D-nY<$-z$deA&6bYl zDNpW-HxBJDr9#SumJCKNyASuIXmlR?^~ya5vb>2TGlViyRI?e43|K0qLdpcQSpnwO zPWIAPLL8leAj=zW+Hb*^Gr}fQH8lzJbq6o}acK>{33Ui@c+oOh|8c28dqj$Kp7hdc;6<(=NL#O>PbcU2vHwqNnyjbGkWaeLFH1<6Zkk zVUXCMdN$q(+j;uwZ)39Ll2?OOhf)O|7#cz&JvC|p7{85O5G4zcItV2a0Oi8IlXo^O z2;=qg;)}|vzoh`Dpm@5tuliH}H6B|41&(upy!fa3y?sZA+&LqkInlq~EVkf#yY~CT zmmi(a<^CcHByct2SKZB}j+8nhIqpo_rK78KC70c-&m`v*hj zE9E+{5&BRhPZ1}hi{O03oYYv_FQKbFw@8KLnGw$%zZ12Twhn;~881I{>7594vII&) z_~U;Iwj2QB5S4IOz@q@*93lt~5IZV>0dEO?{qm4={OuD#Y2FT8@e9g6{0qS?@>NLm zDfO3hk@xnJsI{uB3Ge=uqL+Q=a@fE-b$70hUY$ z2S8J>mAgt4Yw`>9jd-=@;_GL2GB4Mumx5UlmzKPaseBUI}21t8nA!@ z9y;n5j(rKd{UVn7P$VDt<#jnd>#M;@AvtBtGsj&S#@yMy*z2rNNBq~n|Do{>jSUY8 z2o4;dJu+6n!r+arM+Yc_FOpY41?-N%a{S6eCa0^bHMo#GIC|x=`*sv-XXi5oIy8RM z{tsUX=e$9~0puEx<~uZHe+I&YbD@5%WjZl+Ot z(h-0i=nAYmk+gQ4>Ud@f~&c1~7lqFZk&;aWl#E+O1X_i@dv8MSV}~c*C`2QK`aYx0R0D$IqXO@0XY&I}!xBDfYo($&x-6 zcI}(12TfS>$*O$iPq<#)Qaa}BGiNw5bc)qw3(`tNX<5+hq?@ijyD}qJn6gM%C?V@v zK)&_ugGC?sMP78NJQuxRzxTZqt%;hbu9~e|N(a84U?opuIh7e`QQwsWp3?5LmbxoE zpvfyJkP%w&!Yt@oN>pAynM4~7d@B)d?B#8tJUwb$vP1K~RTE_Dt~${3#@zW`7{TXm z6aWLeJ8H1JV$N*$wspazW((l1o=5Rd>mFzz{M8iPAbWjA2AOQ2SY{)7$$pFl8~~P! z3Ku=QuNg_wk)?JRRWvM(aK~05HKumuC^j{L@pH;A7s=jV5Os_zP|8 zM(y(IX-|auv+7q3=y{`WpWF~P+$n*(U?q41z`$7Fy@BUJvsdP$8bk+ zjMNITrA7W|1u5<2d}4Q>ubVRg^Ld?jAjl(MeWmz&u4sNwZBd4l^Mg zr}Vw!mrmcPZw~#(4%hD7D;F(Sz*At=PMF=A;es?5L;?Tx&{t3G^!FJvvh}s90DbqU zIoHHdd{PKt2(ZsCdM3MzD0*vM%hrdiJZAO!ob3v2+4g@tFOK80(+uYNyT!IlSAb=~ zx%h9swz~J8(dXamioK3xG6#D0ZnFozuXn>5%U;bY%VN60%+Ya_w0(8L;u-(bk#kwk zuN-{E>qvn2S(&hs;uk@DlQZCr?N)z$V3zhX2m0QTbJhV!yra{BTT+AJ{B!uh#9>(m z(OF$9x4L{vLq3@+!E@I_1#a=VYvKPWY5nNnH%`B*v${Lt&lG5U{q*OtWBwVHO4h=8 zHZjt=?)?*&9{qq!)X>9=gD$xl{vBy&9zhnc;o~-M;H@qhwagUJpZiDLCLeRR>;Tx; zAbU^F$k(c>c`~|qz~F(oH|V?hkIubYzj^vbJu#cpnF0O4-m{;MlXy?;dE1sQTGMxC zG;^I9skbA(u>JD@=4X7KS@(8f=-}wg%wKWo5+?WT`qzCP-2IkMbV<0zh2H4%t5r4b zVs+fR(3{<7=I@Zh3_zD@^i*t^P}{CgP+jKar7@pXKz_RYqff`|rGLrqfp( zy7bs`0oCeU-2iWoTvswkUoL_ZQI*vbl(#QSPm0sHKS}vekovWLS z&L#2x%B3-`)(AN7r8G}ljIaKwk5)H81Ke#Tqj~=tb((!#?f2i5ANcSly|-QI8rKET_#pj0r6BXp z8lBHI_Wo9-!EQ>vng{x_Ll%wF3pfR^qRo|_j#p2X7(3cgfS8k(@%&{`~@5@gv&E7*A1OfnigJ*8t~vLsG& zXUG#Cl?1h!eH~+-Z|lY3hW#Hqm29=zYPNLnRTPv8+&e(&qdsP)PpYc`{S@HaJ+`9!FHGG_KNK4!No z8^-tN{U6NaJs6e4S2<_R0*yB&4zNsCAeq@(I+*69NnNo;z&Ib}e^Ghp-OE{%rK9DyM$flQjanh`$#l|KT=z?!@FQBy!)IeEcQ zmI!f*<-x#3-)gnnT}VkWx@0;5_MbV7|3mPup@*6Rx^LX{4JpJd833ttpR6D&=mIX8 zxFE6+u4e0^G}YSAhSU_$aUnj#o&ZAtnV4xNE4VTSs0_gRQfjzJm_K;@^v_VPR$9#f zJ!_Xay@3#(`v?@lE5A=Rx@0l<+Gn#un@t&45j!p;dVHbsv@D7yorY_rRK;Pc0HDl7?in6097{}vkp=FfFJ3h^- zAiGSS0Jzd%JniI#C-p->HhBX%;4%4hF;cs<(UH8#+0i~<=;MYOS#*LY_I07vf7f?@ zVY|aur9j^9py_K|!p-ba)=1uE1&Xe#mnIEU03+JF-dOm$iv z=Df-HzVMMBjaxZ(C~x*Xu$)IQWC-ZeceZpNO}eY?5J`h}^0Z`h=wVY^=sTOLUwx)K zW<#z(IU)94OeRlVoG+m#t;yt(&z&%zYBUkhIsI?L#ueHM=U9*wRHbR)GDct_U_Jw= zjm8+b>-#b11ASh;tNUcp&u=B5UKu!>DaZuW=xIzLo$=|I>uEmoXnmv0le3FS`-+Y1 z+c}SBGLHW4RVyFL8_1q6obKUwM=sv6A?~$Ohz1S@r7JHEc{&Z#m;$Osb*#ZE_~D|2 z4$C40HoVhxLcnzL-k!5Xx-3=zIQcm*zVN`Y(u?goK2JvgXz8LTox2|&8yTGbln;yL zVi&$b;ieI*PB@yZVN;*N8Q1^Aktjj?s!ec5?ZJkpYA88l6W!7tjM; zW?ukyPpYNtB8nN>DgX!k_n#8+42BTeh=wf^m zdc2LDQtD7(*uV&!6&}vR3gtArG@Gbb=WLNU&jnJQ;uvN5N8VuGYNpO&4cFT%dpS_C2;m2G6qK!ob@F zLw({j9HW3ZrU8ocm@=@^AVUBg*kRz9qAHU!KfF9?_){U*K z2o9=~WzPAc{^J`UTizO6DaiCnePge});#s8gOS;Hq}itqGZ=H)_r+lsfSrbP*qml0 zGKO&kQy=@}!c+Ke{}C0!<=F%qKdPWJ^Y44#nf(3Xh9pVeO*2KoQ_upy2`+UCum);6 zC$$e`$sqFC{bcq5yk7(^n49C#`bM{fv*!%6Y2!3ARZl5hlZG}ymn>FaOZUlzr10Ne z0hz9gO?JA{uAB1YO>l081sax<&|y8@V9Wt-f%>D&D_w$xGb#84M*#p5{%p`b7)@sY z5cQf*DIE;$=E+ytKDn*Xy2sdOPFx~Ny6~`3K-1p!2R(jLoXcGk24*05uq0Cm7@7x0 z$1+#L`(&JEFOFV*+(zFC>~!fMR$)7F{+Mgmtxoh^MRJO3_HFF_WLY>{6c`M%G(B^8 ziaQ!RvY;GW<~v^~FS<&2MTRt$VO-u0_@VDtS%7SMdCa8Uc;MsrAOrRnXQ|Qcx$AMC zoV2#=KYG=P_hkYMl*pNzl``tN@qkCqz$X48_L)V@GCgf9yIkgxfmy~s@>)g)a^jrH z3!mzMpqCRJCL{BKE|?;(?S{;j%BT*S4fn|yzddHfF`0jRLgqj-wCnb}cbndEuU9TLv9z4fs*?w=m$&=LNpk(@6~}&%Tv@lO z0BuhGZT|&}5Z4~8fwjI*#_ft@#;!R2|IGKSkD5qXYjygj-#c+n0Q?QfCeGF3J{hld ztysRacQrv~=vB>V8esd|#QA&Vb4`nQ%G>Fhf{#;KPG@okWx?j8OmIFZ3*am+A1X%; z#q%6@yibNN^YL3OlPOp2)-6C=5VuXb?->L)TuKRn1i{LR^vMWd3{*R&i<8oIQ6LXJ zo*piwtK*(tvQSA|>pzcOdHiKG*&VH_rK2a}F@g zT+4JWn8}9VJ9#HVf6Pv9<$KMg{#A3_tw6)rF`9h@1tGf(lsN<4-5 zSp<)1B-<_riUYNnPEf6Um<;&6d`dUqVJxFr_SDF=XBrMdZOD3r1bK2-GEfq%)=MOyN8iA(YR> z@^%UlsPaR%WONco-xDw;7zRvW^^avigIAzZP#vEDggzSiBvS)<&2Z{)AUc}o^EN@J zE~iiJ7otT&ubn6?RetCepiwrq5lueI&s_>{h!~J)`+?HZc-{ApP}#Xmr6f1;{|+QTsUB!udHs z=KHu~WQ$28F;D!3jT#pnVA-9T;-X7D?!W zgaSl5$PPH}lR59Q+H8QX@+n<>5&a-K`Cd`(o7DuFx~mHG+);BUFd7Au!7302h#jl7 zPZqlbpOHFnb-~mp22UEw$7y7#W~(aDxqR-sA-GnPEpQuKW))>VfHAseH(x&<0fXfq^WW;NnY0k(|741*WC z&S?p7eNc3tEIbRwEtwHddwJ$tW0xKCHPq%&`pzaR3*e!R08H+q^=DN@-rF}{w5+JD zZ3hqdYBhnD*sEdS=G|}Ju797tFIsldkOHkG1PD9uHT#6_vdj7^lOS>1&YrOJ=(1nT zy>RCnUxkgW6+EX)7S(}^zAk2(>Eu=W3bI@5cXoQ|qgBi5s+EpDy?g&aK~{i0;0A)v zWJi~A2`?5SdADVFM<5d}yqLNT-YWci>eq!S11R`}F1D?2{C14^m2Ol~l~y&yca53X ziqjaoJ2Vd>BK6xb&b#leGdhmO3)=GWOJ?j^Y19jM_|qYc4beQ4X9=;s9@Ff#lEHcH z<1C{)QF8i@FMq6}x8YXmm+@64qc4muY-|T|5V(S%C8XT_3 zElJDRiA$&dC&BA%n--nhy4R``d*iJ6n*!=;0YMdD)3GcB=8Ehm$>7e~tdw8ysFb-< zzPm@yeH($v6N?52R9&EQbRegTfr+-l>Iq9{Y+b314e>1<()^(~&RuPQntfRSm*L_Y zOp}Ln0llp-b%!;l&E1gx&eE%r(EzY79k+cj<48eG`$oqW?9wbjCJ4K|F!P${pD*-< zZq^5HUw|ir_(zn}Y!|*bs>)5K%z?gZ#O)_pV7TIvfTS$AU@gN5JZ~H&Ev-|>FPUDI zE3<>5neXiK;!Iq4Cikda*yN()kFUCj4+NaP*kVM@pkfJ-^kgUD_$x z$cgNMPU4-?45ssG=4ci(#=`6gi>LR(uXwg?r2iF*@BGTgE_!$EJKI?%+gWGH;QfTg zhA1w3aa6IfGK`Epvo?R!>5lJC+8lEO?$!8`lIr73Roz7azB`D zU@)_c?$en6w$(gYJ(Q1iEo+C=I>^LuyVpOlJ<7;0Y**y6uVGGfZf38kW|q+p?0qYX zoNeJ2Pg->3o*dUxd#UelCp6@v1)ACLywG;WR%_4vZ5AH~z0qH8Cv9!tu1Amw z=5}jOe+a*9k1c-kww#@D^!+SArjAU29@4+}fAF*`w6u=ccgghs&dRw>rDyB6&*%@Z zufdh;Hk-y~HB66$<%O|J`%e6!E5KUC*oY&q`#{)pwD`@@kds&=n?%RzF( zk!H5(*s!TBlVjG@Wkd3f`NwfL;(bwT>%`OkzQ^NRCKBBfbtZd`?s2s~t>l~X-^K0l zZ2)v*E}#E7qUb3iRb0xRgsvjEmmaqC5M27m%~rY8#7{n7K5f|ZBIg13H9BF^!YM&7yAgn{J?>` zJ&!kK4QcG(tLFl-O1Ssz=c)kgtf^1z(wOh{D8R+{rr{q^mRC^megJNvk=2DbIsBB{ z_qe?Z=C^2-Jr%kN%iomieI9_7F9DPnO?@&mu~Ds&)%by!^M7*S{F?uL?JB@iRh2yn zoiV(Z9k%Slah#mMEweoRxnw5LeD#TQ?l@{#<2Iko*!&i+PB7o%QOF2@%MX5ZP~6lH zTa9=)F9I#0^~)9X!q9Cw)MApnRcLu{{72@G?edrRX5{*2qo$`qXSkHPrv6{WosHq# zW(csX$joZna2=S&3Rnp{Q`;HAp2vh$gISy((X?#2${^D zjy|h-5`FvP$@nh7p0?2l^d$5~Ll{LTO`GsJ>ixRhpmQL^jS zxvjrNa!=bh1O(%aQ?X@B&zib$NWZA*QS2e`foANFWs8i2CbE*Sav6we(lpW8H9FDL zMJTiu3ay8nbk{ii1VvBlDgr$fx~s@JxxP`u578Z5yp3?x*(Eo#+^RQ^xEPe=mITLG zk8wjj$)A7Wqz4)|(xok0yeFYIV)>g7dHU!$%ALxDemPDzhX#?Xgn3 zYR%l1KF7Iu-|d_Fe2OeRt!oJAvt8F@w`i&6sSEKz+D86F!R`Vgb6OHx6O<#)%NOc! ze_@qaCN0?=-SMh?vijXZ+t`_RkKZgmokCoy*?KB;7tu|U#xDT8-L<+xiB#S6Lv5Pm zLDja3%*yThB7>7adGSRSLW>9WiE`(4(XB0BOt9SIQRpN9S4>_wy0M}00cTAhFubS$yOrfx^rO=V2JaNM!?jJr|TdLAl9pr=At43#qSM7(cdGnGYRQY31LRXHJaE>|T z!~cSpw-5Cfa-0pSu`t;fiK$z`Fx+uz5tFUHrFQjZmz*)5!bZ`Ke}5k&Od@g#w&w>D@;tOq*|2;q;56bMIdQt zvVWEy6JOK z++Xsu6ZerNIhn9_0!Z$uJV+VKi(~| zq^G?6vNn0*NxLWGzhM6L9NQy6xO!R{1aKkPzj0vUVI;JB^O03fFr&*vm2CklunwFS zCM7E^no9t9PK_bFCdxRo|pLu8F}>(Rk%o}$-{_kHE2(&zUk0$ z-+bKk9kTbd_6W!twV&RyXa01+Bm3ua@twH8&|nE{$!yh`^S-&n*6jsmg=Qy!aw&~T zj3lKpCvSRfA(TW}r=R>_S32cMBeihiw1*G+lWOmIGz5Aov>_23@iT`%MhfB6+nQKf zX)T%bNOnmyBp5-IgmZget*~hlN^<&&YJ=b!ozq2Xp*$KFA3m$qZvWCecsr zH!A2$Pg4Zqi;jNraJ&MBpQ4El@Rh&;CwoM{Kjh*n@On#0>jYSR#gRp&-Vk_`CnK6w zCrZnzkr$Kr4G5u$4kxenmCbaj6n#K)(wy4hV{EDmze0Quekk$3M4pP+elz2_Pa}XIq2de>5Ma=4WjwWpxDQs#zIN$ zYb~(RuVsl+ut_WJWpR zf+Jats65YXpKJkNs7Fnt0i=mUkVJtf6}`?*C{MNCeo6A!8BbZUus}+TyX?;dl%p$X-_q(0ZULONoU2UG&obNzVJS*^a7_!0wh@$0UZgB zb{HhbCGuid<+ZDQ0nLF!bu>o1>2?76M7PWe2l)(a(kL!waZvlhAbM0bwW~Ia9_mSD z#U0yDF&w8{w<{8z+E+(lNA>Ygq+jStGapOoMR8C8T04Cn+mx=jVH}(UCM#x%i?TCF z-`6=}+CdzUG5dO?5&Fn{jUISo5E z?e_J29DfBqHJPJiF(v7oI<3JYc}O6T0)`Ak#umWjC0L4*&&e?LRKny*hfPPv$k}&5 zJ9*BN(d5OxjAdHn#lF~rGWsWtc8YaU2YFQ=5A@H;1bw=c>M=g2OT>%g5<`@i2*{u^ zJeV#X&6L!AU+zXSQ%^Lrvq`5LXF())7ngY=|0u0qaNFVwlr1c1}@@ z^Zc{qrNhNwkmz^NzIC&mS zxArxGiV{5F(Zzvb^WDYd;}2paljwHxo+pS)dBA0J62A-~<>XzQ>DU>kUg1xlr4)aP zs*jdT8n#~Sg?@n3<8Ny#5Su*dWMXr^iEbO?Xu3mN#-p-99GEB+3b#Z_>;D_I>O+gD zrZdg^(ix$U_tI%gXU6&HeC$oPJNsm!nE083Og1l5B5!)-NIns#EERE}b4tg6{wSByR6tlw zhuC+1t1l`c0;TfK2xU!P;+Ggmbg_{tb0zl8Pm?z}u|shUz>-<@g}TIq*iJEWv4cc; z@r^|4;+PY{qBPfk2^-6^Mz1`snPOdSRGmq?c=D42`t)l0E}T89*jWbPf&n1~#ulI` zDDfq{VsiroQuiZQI#sIi&mt^%Zp_Qm&hw! zm85;A6o*j0$R~?~dXwZgxwX;1k9g&H+_BjBCN?)-O|gbc4_P#^u`&KF{GOm-g6qO);d``ggk-@vAYqN;%em&SzvfqX?ttrL`TCxBZx$_0t8G9{JE(ZL95 zm8UJLR9Viu<`RKpZ(rmbuMj93>QdkBMHXr*wiCogqWP<5u8h5XXG`s?9o3i0QJ!>v zLYqD^vJax@vw50#3XA4-ve>@Y&1r{=s-$vS@cg37jd>{6o$`?;tx$LePJeaO%H#M2 z?@pPcWq9y@WvH{Ps^$Zq8WuMt=i$5HPA&z$9T?Q$0JUl^GQgqdJ~A)xTv7uMblW8p z@iZRhPCI-lFH8b7=onCu@Cvt#wWso?PsF@^vQbyDe8_`WfNyL`-u>6{t7dk~SDUHN zjH?^lHHSR$0f2Y`aM)eUI)FlO)G>mYUZKl{mH;oaA{v6nMM)Qm3msM!aEh!h5QTm4 zp?wl0NmN$Ws^>nkVkM9`T!<4IG3L63g$6S#aPR-DF)L5#_HTajYpU*b@8i$+xT)9h z?RWlal*@e$z~sdl;w6bkUo@e0UI-poEefDB8Fk>C2Os`xV4A#oQiSq>Ody}yF;(Pq zxu+M*3gl7R<3nl2u_d%`PBDkHq9yvd0FqB79sbPJEeMQx?>WRW?DrF`0F z(y^Hhj~RV(4w_7eUnmpyDIy_@y!MgAKYVHBYyUkh`sBOh-4sn@*c6saY+kqD!+Yf# z8h?YYl%1k)6as@=7{Sg1mo9)NlPYS*!)aYZzlfY-MQNAdGEaW$)?+H0@+(+6PLm1z zXx=^t)Wf5+lwanY4II!MpNlgcJIBFcC#=2NS?Z%Dmf0_QYk?Z^G0BPN?Zbw%>wR@J zjg9W9f2KRM74Xb!Ox9Rr~Wm(o-~Se1t|j?dGyhKoR{yhx^r z!=c!x4rxY%GMVF86pK2)tpcyuH#xC`Nsd9VWTsGYpFA!`QLDa-X+AhTR>jqaXf;l- zFN|4v{3V{RMmmB)jrh{ejT`p9b3ks;fFI-i$!7@awn&asoDb)GpNoP;0)r+e1Tf}< z1BjvQ9GJ`HFNDKm zB}vh-TV+fQdrD?NMlXG{4V6m3OekR#X1~ZqbkS*iZh>7w*hv!V3g@&Bs<*>rpmt~9 z5{MI$+dK^!JhRiT5W8Z7rW2yXwTh)7@Hcf?usW8T!|ZpHSLQc{*s4EpniYCLHN(c5+DH(0J)W=1pH zgrQCzd|Y+nZ;_ifj+;NMv8mUuksQa^V)%f<1a!%lUSNfZ=N6s|&c%lU>hLFo>7ixz zEs-%4Tb`cElQn#HP<`ZAdDG1?#JwJhk+;Y`Wk?_+n)T@h{pCY=a@s~ld?ne*r#7id zb$UB4CVWnDHttZKIc~*q%S5ye9|WH|^t+wQf8F=~qww_jOI+pe%!RhfDr?nqAK9G< zge^ERFv3axJl@@Q_SlVlQ&77F*+dhYO+p)fH{srP!}|t*3xRzJizfwDg5)}~GI1ak zN;<`TDk-gmm~sWo@d{I!su)yKo>0yXxy8PSIi9jrRTE9@Q=a^;x~eLr%e=&a9(@h^ zCZi{`%Jb1=d>?P7!266Zh~IkWE2CeY`4;Clm!=qOF42_4am$2zzl>LFzONUJ9VL?r z5eR!KmL&1ICt+iEUuY zi9sDjG*D&Eogg%h|F$(EtH_%i?Q@c2bnK*}P;s9;D(jyWOox-F9^3oFw-#LG9WZXi zu?tAv+}dXQy&U;`(>Jh?NMgLz&DzAJ-Qu@?ucG!2i?C5mh>vY@8Ls0Bf-eSbH0`*z5xWqSnKOXf% zrm-<8oX;OWGQQ2}D6wu%0Wp?a$KP`VKKpo!R7ysOg=DiNmU)gj$>c#NoYTHc`lPo+ z5gAD!3ZuE?6B{53UFMKxHT=C6@bk=(E06OZ|JPvZ|54Yc{^Rfw@TbrQ56&$>&W+%t zRA+X=#N)hXaXL>Pm#72<>|WNAR9RdV4dglRdC>8F&huR2M5%q9Oy|L3JmCq(6G`;3 z6Y}Ut9Yw#$X254`qTBhwIr#N*%X@E+9sANLFM6KMptIRM?F=3qe--P7WM<+a37AMh zGBJ^D@p(-D$Y;sJ1$T+-e#i ztooxo7KbdD>9QjYvv0aMw&rbs&fAxmcXkIiHud?Tv289#w>q0gIJb8*E4Iz3Rlja=baT&8k8-^=kTAQ8F_TxY&|a zST2saYQa&z#75@`hEy+02JjhgC>K^$%6mDnLmBE(os=)Cs+cyNJX+N>K5t)i;34!C zifKZ4*mv@#-+WXVl@+}p2rqS-eaf;Gk{>UMe%?z5_5UbX)PERJG#>0l51Ch<5$r{yrBsc9b zZ*af9`Ny$8mhT3!MbvEuGi~#^k1Rr{h4u6m*A|o27V~K}b;$s_Bn*#~ zHys=V6;-OW=pw(_ak3(#i6-(GXL%o4lGfSQzQ$)UO8g~0$Rcwe4LM((-O1qi`{d(> z&Egkp1rx+yw{7m2xd+Ah{5-6Wd?t|r>BSv-TzH+3#AA>euqK=YEy*E5LKM2pAw`(@ za#iILSCWA9NDR?S4XR6Rs($G^yZYRq^2Q61v|>7W`pV|*qa${BItoqgIJM5c^ULv) zrgRq{<1qhehbEkY(61Du!iRTz;lmsC%|(o1Q?|OU&=*GdiL*F&eq2B@bFsMa_zSBL z$GXrwl5V%lu(qT*8R0<{Gk)QN%9xdnN1u4yOOubwru?aljy2g;PH31;<<$?Zj3xF1 zUt~W{8|J_0u(8?+eV~uzq-Swd=b%zeQlBB2&PxLro6qXs25eMRj{Ulux49@$kj*OON`U$hn6{ zcKORka1#Cmc6Q(tla+E^@Ddh$000MwNkl^6# zTuxs6hdYHr+q7L@Ic2WsuCs@_t(Z@s>HAig*D7j~=9{Nz#ldSstl81+@- z5<2)B4|)8(=IG=+r|Yc=2KDCjU8Con1lX^^D!F8K z3+=~lu@M*-mDS5WL>ndm*nPFqHP_^kN<~nZ1ZZi(fJ^l802<{f5>YS;vWXZ{4yadqSNc9 z4PqtF8eiD?l~aDIdg|xVFsd7mn};{|89H#t!&vyeETOpYwr~tY6QXoc!66H+i$)oh zH$F{H(9nT?zeFgmicnaz%O)5 z6ImCNacN8(TOup1Se|@-UN961k;iw^y-{dw8^6ozr!9k2-Ly2GI&t}q(R06pr$&5r znBI7jtc33ph+D{TL1ocoow(58bA2B;=OlJ?O7zIQTXcEXgYYJ|x2{V*z3($eEfIk# zJuDpDJfyK#<1e88By~AGX(dT9Y5vg#?Xw3bC6qK-+w(aZ31L!O-{h0zhGDOsdIGi9 zOOsgZ#o45 zJ0CC5>@ERH%#w|gyzNg?O;{#A@9OYqiK|k)-U#FoRCtm|pMgRSp9?r@$JM9S&6}5e zUTlhm>Woc(AII>~+s_5alj$_~#ROdbIHod=(eZuGV@lV~RVDJs6uDGh_&Et0`>L9J z$uHktv+h3+&gk3aX<}m<-$WD--QjEa?C)1_p@^SthBhA$HCt>tuW>OZO==k%KL_mN zzwuE6`$}>rMWL|xmDSPsanWgSlV0mhW2tp7;olu2=bqLOCzt32o=ZHe2G>M_u!RC| zxFB4yQo1CrFfnjla7_#@aQp!7oP2h|(i!)YTC45JZJYP*)e!v>9v>?4(NSPPd}MF! z@F+@HVx{0HCMF|CeV{bueU+B!!jE=X{c(JXzV@5PqLy8~YxkSCi+lBY414G8H1S*# z!)aX~E+htBzmJUSlYDu?;^`OEG7cU2wru+=KAMa3KSvI4D+{`wlRHdszxeJ%;Qk^k z7_=umc;^x>5-0EQ#>cVUtL;`7_n~u5O+T(*?AS4A!c2!fGfq45i5h+7xj z#V=T;eI_$y1WW2LI<_})F5)YQ0vm1CYO8q%=kI;%^n9-2CS0D#lc@ksuLW!%EPX|q zPm_ER!arS-2Tggna6(*)N^};s6gLTRGksVw=(5SVhTH|n%W-M^2-a;o1S7%&NF;HI z1Msq>=1|5sP@eqwfBKNuKY>k2-#_3mfqa=Gu|S*z&FEqx*jro>V*mv}jB zc_7}T35u^qZEMGD_x9&rs8#GF2Wr*1dq&*;6*%}kt1!gb`rdKQNdQb-*H4pre$vu% z`lJ=d)cqURCAf`zShe+K!||z=p98NGJyrx2O}1#RFF5;tP_-4;D+j;vsZ&I#1|NK0 z)S7Se_qusRK9_$GUv}PCs;nfgR%hE5S{zG51V#I|8ru`PF3H{`)O{-g<=G&f~TuDSUL`JO6rBw>#5;!J0{E-Y-37ugUY_ z(Ef#_@YDG1bzj@}xntLM;CIjTCPaX1b#|X2U&8AH=b~i4nXG+##K7o_HTzR0R(|Ad+*G6&Yhj@ z-B-85P41qV^M20UB_#4RRP{Z9OHCmjvqS&jn&Qtd73W0O{Se6t-IE*{qxas=9KE~M zH?-1WK&CWLb6HRXidqG-Iaablqo8m!x!B>VUWZdr=}(J?3ccK}H|;Pn81s8<`zh15 z8g$rum@WNO+^6TA5kMpcyyfvO1`1nZR1fF=+^7U64jZe^FOTPrCJzZ-&YO<;IzM$Y z(Y=c=?lYKec`O^EuLr!nZQW2P^hx}$_qg>Whi?fX&OMpcY4Q zi%CPgwnJ6tfAw;@$V{RRpGb5CXeQd%*vj2ibtKBtAaUDBJg zceb*g0M8V(ywX;1EH{DRLX1prIOy7rzx=+Wd-C`kNkVW7OrGS~=H4e;C*;7*1f{Dx zSl(6R#>KBwD%d*bs259VQu<}Qkb57UCN~n-PfyMLK<9#Jf)&Km-20Rsfb|bmGd0g| zD|QRH*L2U4!RkI~6usY4@MBKCAsSp9(=}t+f!Zu0R`p9YJ{nZzC z=!C41b0B+vY$mXsv5nO%z#3+Q-@QMr{95hb(OEcD*}c@{qy??uz)1HY2WT}qV1T#T zaM`6*`6`TP4r&9Xt%1&4CSg2`)-WW;vQh?+*w!a*VN??JKxsTNucOQ){2a#bSa#fZ z@?-mkSDA`W!Keoc0nPJ`oOu<7ga+rvS+Xs?0-f-RXu=r(S}DT{WzEXnpbRM(<3U^T z@mc6Lz7+1VilG(nmJP3>RIqcX6yV27Fez*=YTX?yJaH!(v47_N^+S1$F;`pyU$C(G zNCMJ@xbWnzoROT}uewkVx7@d|Z%t!$-Pfu@hv*iV4@1oe3?Ja=mU_~X@_bF{04hvHOosRSUVO(8qFNePryQL8 zFu+UZdDkbCNrgk(P6_rby0}!M;#-~2X9x~49%Ka1A2>!p8u!#0WQ6jSbcvTdCcuq|!<6#3;nSowp$86D_HFs7W$jym&y5JeQM*V3O14G&jG!>sJ@@QHYMC--I!zM-OL>g(# zu}sJeV0M7d(qJ;4yhpsE{Ba$Py7wHscaw zl9P;+<(!ygCNm@_<2bH4$vBF}5OImLirct@C@3KciHZ#wnx<(Q3?qoB0inCzdvm}0 z|M$KBRabSts;+9Ad57xvFL(X!{g<~?VOcqj<Zzbj^|MJ|dwz&b z#0SfW2$GpupHVO4Ps>%Kch9$3gQ*r~WJ(^l^TL2GX%eH%(zK=|w9v;qS~Czj@Fgie zxh*DrwEV}>FZ-L%TpdBCvHwbcZ{K_0j8f{_rV%ehh=pkX3Cpv#OMfSvADUL@KQ?9S zhuKtR%_WYw+w!UW7zo;Ihkg6!nojHGxO*Tq%p2rXm|H1|1?p7|bHmhlZ0c5@O+m6D zcUnjQ6Nbdl7~}{l&rjM!OxY!)A4kM#B7TESBgtaM(PMim6sh_f$t5Bl&t_?xQSRaQ zJxrv5B@qUeO2iZDW-&p-sSk0gn;L@h#xvH;+%)W|F+qba{H^zjwV7>s)$gCNE3ZV1 zfYhF*KTNNG4zXQot&O&~9 zvhSR;XT0NCCnjB&J2AB+P@*$%K;5ytAxYo6JK=klLv)VkSqb|1o;L&iNsH#KfS%+~ zH9>#CALJ8cKKQwMAB+%Wlc0o$kE#cPsSj!wVhW;v$^ ze;WCs56ly8de4L%vj>?>X1S@~1Ac;H;P|d}%KMk)lxOl-nTuPbGe_k;>({;BuUK|V zj_xkfeDCKQX6I{4&LC$Kl(76~R!-k>N4CCPZTTs{sP^1%<`R~zJ+^}1o?Y8l<-M0p zPR_R23QkCs?RWIt^yJxFzK~O5Mn~+0Bk8%0jAl}_isZz~`Pd2|93F_03`28PV?p%z zl-ivF4=bUm`l-sbr{t7sbl7*!-8;i^eIE;sS~&D#!Fylq&1vUjJF788N9KI;$Zl?# z!8{}obXFQNh+i*0w&#{Jjw@z0`2qp0Txxzd;NTgR+i8*EH9*4!qkNyC3l<^J@q(0o zVpP+@1q{*Go*QJ-qH%pdq=gF{B2@YXE~)cbcu48HyY_d7a3Iwx6IPwOO)W6QAdEPx zG7mKNBGW6is<~F>u6Yret%7{<`cXD4W~j6h_JE<$Ycv!B3bIy|Q;hzaDI6ZOQh>&b zHjJ?e$ETT@1#8Tq5Q0UqR^++qVU>;ZMu9i;h`5v4`Qn5>QSg;ehDa>dN&pM>KUmc` z?@O7yQqSr^(5bNxgo|KODwtE>7ll6CIp;`TJ!btdBxoIm0lWIIyix>ao^vW-%ZXX6hLZ91v+XfE=h%T~=m%WBe|M%}sb^KN z)LQBUc}@ao-}9sKJ7xz7F>?0;+fJwd&PFh7YF{ft&2zwHHf|jK(tBiOUnrSaH!~{@ z=o|Y!a6!`XpNArvr_SjA!R7U)9F(&L8N$I--G*>54>|bd7wBZa+xs5up?08*_I8iW z!(X_sU7`$v_j~>}uS=^8_QI?8UC{7y;oR+WW=*2@+2T>$KciuL!n4j>KJ72P<8kCq zRWb+eJFk8W<>7D)!wReCf&5L2$5Ao|Qc3?U3?wy)xrs-nZ2ew5lk%e~i32Ooue%FV z3}#$7!5_=JH9ynhQOBD$;>lvFn#$T#;>6@J$MP+kjJL66qO!$hZ^uO&#}Cg#T)U)2 zk3d;p`yiGgb0y(2IY9frGoGp5Jhok{@*v2%5ahuhA${bW+DjbIuMpHF0ycIE6a*Vl zu|3@6En4J@8i6v)e+b){%m@U78S6Inzc_AV&dostkr)+5;_f-`{D5{GHv>6FPoKlG z%4OBB(9D+OBqPXqru9_*BLX&+1Aa10(He4Pyg&v;N@S_%QTV8x+lUUR(>2Y3HzG?V}Qoy_N1Kvgd&k6J>2^B*z&cF*@puDMOXXP>zg7m1Qe^Dq6zt zZ5X|K!4$F0Jm+-4Bzkm8?Q%loav;FS83^@JmWDZOAXE2dUQ5 za?+^17r$rPl39-BfG}aBeb!kEk2tnpUaB1T)9ycwX_|kX=xpztmjkA-XUA_`P?m5W z%N(47Zaz6qU^I`1Hsj&^wSEh)&!zA%2*q=4|wGIOylCz3v%G)v9CUi+d?pu7cMd&FibXa zx=s2q{W4A9q;dlHSlDUHzm^QnJEik>;JN8a(;KE9b_M7u$i?&RnyFrp_ut>Vt`O7nI~8eSfdte}$fq z-UmlM_~^qvL#^*0isMAPG_RljT-Be4J^%T335!VZVa2j7MHE+VMVR3m%=D@Ovn|fd{+IFI#Ekaxe3f|1Mr=X&D zpKJAwbU=Hw9qBJw1QNdgV|6dcw`$Jcc6LXMY>T&K4mg&bf^fCnc5Z9Sh>rA?B!wP0 zfBO}(ML-(Sh53Yz7}*wYNg|N6t$*Xa4F)lN;6%+?Zw_tCkV5-P;s6Ofm64~79?wK{ zE-y>`N1;Zx#aHwcs+smbQ*kec4d>meiU8FYw`EA7eMOG|?d$(j?f2C^AD&9}UAYxw z-;BH#S*Xz_UkM!W$8p}vJtRbfBjH&mm3vD~<;5r$)qw}k*>buv9#>ZCjs>E@A2?z8 z*A&BOQ$|r8NI8icBDYzfiN}K)%=GS53OC1013FqRsxZ1lyqE_sUAU{W+#k||nw&X% z!i86K)M%5xXb#Y$rJkHVNEM(iQ>b=E4Q#p)a#-SfZaTIsiwEJD5U%feW;lB@KDw%}zgIe@xtxwh~62XIku|L(%Q zhbfo3GlDw&5^|XWc|K?3B(KRBeJccK(6ut2jaCi?@&Xx#lL4LKWIz`JV#=`G^bhIQ z`z^s;iRCkQKT0Sr4DR;_20;LQD5tYJp%sNlE5l4>K;9xJX%^yiQjv&0?LpKqAR$LZ zi*yn_gQFuSi{dfw=)m!Nmh44D0tZm}{fu36%Pi}^1$7n#A`xJqq8!yqxjjTQhy+I{ zU&}N&v)--)!tlh| zTWZPJ(aI1Vg}@0I351PyqaGSBDHR%?H4?6S{^+I!>qK{3XC8-b5lG+sKaQ!S2Nl2MQ5fDe7oVaOl%CQ@xMs$3hr*wOM z%&vK}L{Hpv-VTW1)zyF6MN{Pvi9mFq%0Sflj#SfQgQH;NKl7*E#g)6~JuI^GImb?+ zOrd1cGue%Y(JIHoelzEF>QQE~avI2m8V{Qac7X1@U2TpBGo>UNJY&I7jsOjEOp_Ss zycnu8+P0nc#6_6^#jO|Qz%qI)L`KpZ2WoB)4AgbyfS|4hXh@@GET(}&H1CsF1;0;M z(DlIZaaI4IHfAsm`o&nubv-)(ZH<0lFlb>o8;>#$?~J&JXVMiE0mrw0A&XbkcsM{R zbebsC#W|faa0sg{uee047sGA+Yg&C3G}G8@^}-ym{0ei?iaXCs8cB-b%x&aMxnut( zn}O}M<()$7Dqmfsj1LE=7z8v_SsR8lX_Z1~Q>lYAVh897&u-@nHEjUOh0KZm*n|1C%;bL?JV3@Z9au>)95i{Mr1(ma=bSb`-q)F>qb3$YPnVZ4wQ)#C|ka} zpnAuJPsG+}5bo~xhn)nyZR8rCk>ap>uT|I0n%pKdd2}}QT0T7GINRX> zN7!|jocQ;v9*QF(Rs?FSniLBr<1N>{x|qhp$Uz@oQP=+veKp+m_H!y(R_t$a$8uok zh(15T%;Eq2XupZ|v+s(7Od&M=KDzQ`N~b$15(5k2&&fmI`^tJxCMQD&I}UVTHu?Q- zw@>S!n6A%$&jq`#S~0WX`(5AC+!n^3gmR1cWO|m(s6U~Ho!CY{Qt~O^Z5j2|mxk~8 zWGv~J)>v~;$5fPtyTY=sOZe8Qw1euIaFRuR>Q)+yvr9cLN5G2d4U-cIYXdDzv|iBC zO}^39(?wreJL0MAZg$<)<8A~jowhcabUa*>@I5Ks-cS%|G~B#=+S+bi7wYVm9d`j3 zVGX8>Ict)-Gl{EFeNWA@&g|(9_*r&0yKd`oH3hAhT0c0I^0&|ponCA>rXM{8(IiA= z>zM1OtCy^=+}d>^k6LzIjet~{cN5+A=!J`t;NCm~udi=?ue{8+e@!kPH;HxJ1fb@; zy7@HqES5Q6?x%7v^hm(9G&%J7RiAyk-N&-gJpANp$3>>#EzNGdyKSK#(&Sr5vh!&* z4e@k@Hxj&eo#y7sd7CF4_~f9Cr}?-T0X=%B{+SFNYG%9K+>smea!U;DM0>JTmjC_j zc#svBs>_dnnsaK$Cz6TRDeLK*gLH6~>q(xX_=Y%wpn>LH5S8_A2<@Ojoi5JC4za8sv=754N6}@cpjGF*d9vjs z-=+-d2O}9+WIC|YXS0nT(4tR0*I_!v?@pqd`qcVVQou;-;E`HF);kr4IY9nfr!1NgrQPUJ_=O$|%gI z{J#hwn*ahGa9XlTy^E!3b*A!=0zHVSjUx>sQp0#H>H7rZm_HYpxDhQ1dAOirI8wM(xXkdgd3i85wT`O$SKP zg!CZ~f~*1-$f71{)Us88!ay6r)_Ox(VAJ$QpGpR87nD#R^JqJx{Lo7u?o;xpT4#Id zZ;sr%Xf3ty!L~|8&Wo*@#N3%@(UW-lUx=VAa42v_Ib{Zb%etTG88BsFkj2zb-|9A; zBM{g@(1l>baQcD+1IPUksO5#WXaFTJ(5=A=X_Wq;&izztHCh!=A%Ic7z<%PFGGu0s zR#U&vwB(2Hwb-8Z%YA#^xNf?&H2m6?2AgdY;Ip0YpRs)y{Y1+hwryVk1!AO}m2)b) zl~R(zbRnRD!^9r)DZrpp3|DjpKt!MEB={Kw1|0p6**aU%9+itaXh|=1vM*YO$mA&l z5=9=7V{L(7ERX1!-;k|jl70|KG7vq{y^yxk-x|An(N5~gd4MhU@xb)$i)edz8yVl9 z8DW?kMV7K2w+2B1s^$%2xkfx)FHI=%$4$NmQ(Z<;9{jh-#+MS5&>^_2lJuAV7c; zW7L_9CkK%7C^JALLjs{?1_=OLTkVca{w(?-!x)94Khu6{f5Z2hudZrZ z^m+y)c~v_c08`teXV-o=;ds}R5A^G_aE=Zg0H7VV0fgK@L;)l^5)=f6L~@zV=9U<^ zsdnh03h3~M^oQVq2W=VpsVPVVux9B;8wKVt$^0pOwFgh#igK`xMUi9(d3^H5{t3GW z8R;((hm}*IqudT2a*WHZG8KK%#TCFRP}MmAP0K+agKy9U`hx@@Aa%bfOLTD?jR5e; zKAxt}RY$Fs?@nr5^f#y~=E3@kDKJyk(~~#Nbo|5}GG9rgW=bJ8dkklHqI=gQ@|79MrjudNsHv9i}&?5xGpO+JaF)ZBh>O8+7z^ zjiO`UxO>;mf1P7pqkheSM3nMiA4;hpo9yQ&Y`m1NwpWB}LhEd0fC6w-e*iLd@>HXz z6#x%lJF<_bpnj*Saem2vyDt-uP7grMzzyB|o|Jfl9<+=Aa10)-Fu|tgEK`CW0VXY` zGQA!^79E*u07OgHhdT5~Al|Ue``?dS?5auc%DhjDUn~=;Lf* z@F^(hq&DV3kO=4~zXSt)ppD84WJ3lANy*bXKD3Uuj2(99D~(_+<^!M7Kmaf}_#Elyn{FQwCO;a#b9Su%Ke%?#V^>gC-$a?*7Y?$M zkgw%(5YVXG)U;#Rrs?RZ+^!?`$74qx_LN;7(t^opgpr2?(zp{;j!TEqk zquz~!4qo~r$ScKBvH+|fv3gjtEcq4@<7Bg;4#3V8G@8gB<>`?sri&R$(i zhwBH_Otn1w4%+?DwFn)?XrPL=g*&37(DT!l*D`s)2Uq^NnD&S)P6nwI^PET~e?;;07=ttg8tmCYe><58$Z0*;KQ%e-&yj?>H8K}-Lr3Nf);T46*>Qy zT70!lhK)Q$ae}bz$%LK24@+^}iir_ql|<-;SU0<0R|6k_o_6T6#|Ip|Y@ql4#}zah zZVm0n)QM{ZtFPmf-%w2OA*-k(;MEbUKa;ZU4P-Dsa3T3`c`fcYKGQJ!wPG9I8S?g3 zEE`kil-)@e2%l9`5tUlfGfzDBtrv==zi0u#OSN-HOxZ*W?WQ zjzc}}y4tt>n`mV0-+$!T=;598#4I*?n@2o*?uOH!E%;X)V=MZE2@hDepLVGHwwc8; a + + + Slice 1 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/og-image.png b/src/assets/images/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..da449532cea84311566ee6c1a5d52fc246e84766 GIT binary patch literal 42301 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 ryZ^oa-P`}s1=kK +
+

+ {{ title }}

+

+ A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations. +

+

+ 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. We have a Hall of Fame 👑. +

+ +{% endblock %} +{% block main %}{% endblock %} diff --git a/questions/coding-questions.md b/src/questions/coding-questions.md similarity index 60% rename from questions/coding-questions.md rename to src/questions/coding-questions.md index 2d305f42f..2370fadfc 100644 --- a/questions/coding-questions.md +++ b/src/questions/coding-questions.md @@ -1,32 +1,36 @@ -# Coding Questions: +--- +title: Coding Questions +layout: layouts/page.njk +permalink: /questions/coding-questions/index.html +--- -*Question: What is the value of `foo`?* +Question: What is the value of `foo`? ```javascript var foo = 10 + '20'; ``` -*Question: What will be the output of the code below?* +Question: What will be the output of the code below? ```javascript console.log(0.1 + 0.2 == 0.3); ``` -*Question: How would you make this work?* +Question: How would you make this work? ```javascript add(2, 5); // 7 add(2)(5); // 7 ``` -*Question: What value is returned from the following statement?* +Question: What value is returned from the following statement? ```javascript "i'm a lasagna hog".split("").reverse().join(""); ``` -*Question: What is the value of `window.foo`?* +Question: What is the value of `window.foo`? ```javascript ( window.foo || ( window.foo = "bar" ) ); ``` -*Question: What is the outcome of the two alerts below?* +Question: What is the outcome of the two alerts below? ```javascript var foo = "Hello"; (function() { @@ -36,21 +40,21 @@ var foo = "Hello"; alert(foo + bar); ``` -*Question: What is the value of `foo.length`?* +Question: What is the value of `foo.length`? ```javascript var foo = []; foo.push(1); foo.push(2); ``` -*Question: What is the value of `foo.x`?* +Question: What is the value of `foo.x`? ```javascript var foo = {n: 1}; var bar = foo; foo.x = foo = {n: 2}; ``` -*Question: What does the following code print?* +Question: What does the following code print? ```javascript console.log('one'); setTimeout(function() { @@ -62,7 +66,7 @@ Promise.resolve().then(function() { console.log('four'); ``` -*Question: What is the difference between these four promises?* +Question: What is the difference between these four promises? ```javascript doSomething().then(function () { return doSomethingElse(); diff --git a/questions/css-questions.md b/src/questions/css-questions.md similarity index 95% rename from questions/css-questions.md rename to src/questions/css-questions.md index 663133e57..23bd2903e 100644 --- a/questions/css-questions.md +++ b/src/questions/css-questions.md @@ -1,4 +1,8 @@ -# CSS Questions: +--- +title: CSS Questions +layout: layouts/page.njk +permalink: /questions/css-questions/index.html +--- * What is CSS selector specificity and how does it work? * What's the difference between "resetting" and "normalizing" CSS? Which would you choose, and why? diff --git a/questions/fun-questions.md b/src/questions/fun-questions.md similarity index 74% rename from questions/fun-questions.md rename to src/questions/fun-questions.md index 85ba3671d..fffdfdcd0 100644 --- a/questions/fun-questions.md +++ b/src/questions/fun-questions.md @@ -1,4 +1,8 @@ -# Fun Questions: +--- +title: Fun Questions +layout: layouts/page.njk +permalink: /questions/fun-questions/index.html +--- * What's a cool project that you've recently worked on? * What are some things you like about the developer tools you use? diff --git a/questions/general-questions.md b/src/questions/general-questions.md similarity index 94% rename from questions/general-questions.md rename to src/questions/general-questions.md index 6386e54f6..b58f24456 100644 --- a/questions/general-questions.md +++ b/src/questions/general-questions.md @@ -1,4 +1,8 @@ -# General Questions: +--- +title: General Questions +layout: layouts/page.njk +permalink: /questions/general-questions/index.html +--- * What did you learn yesterday/this week? * What excites or interests you about coding? diff --git a/questions/html-questions.md b/src/questions/html-questions.md similarity index 89% rename from questions/html-questions.md rename to src/questions/html-questions.md index d7a792f37..a728dd045 100644 --- a/questions/html-questions.md +++ b/src/questions/html-questions.md @@ -1,4 +1,8 @@ -# HTML Questions: +--- +title: HTML Questions +layout: layouts/page.njk +permalink: /questions/html-questions/index.html +--- * What does a `doctype` do? * How do you serve a page with content in multiple languages? diff --git a/questions/javascript-questions.md b/src/questions/javascript-questions.md similarity index 97% rename from questions/javascript-questions.md rename to src/questions/javascript-questions.md index 2d684fff0..51a702805 100644 --- a/questions/javascript-questions.md +++ b/src/questions/javascript-questions.md @@ -1,4 +1,8 @@ -# JS Questions: +--- +title: JavaScript Questions +layout: layouts/page.njk +permalink: /questions/javascript-questions/index.html +--- * Explain event delegation * Explain how `this` works in JavaScript diff --git a/questions/network-questions.md b/src/questions/network-questions.md similarity index 83% rename from questions/network-questions.md rename to src/questions/network-questions.md index d7acb053b..024974054 100644 --- a/questions/network-questions.md +++ b/src/questions/network-questions.md @@ -1,4 +1,8 @@ -# Network Questions: +--- +title: Network Questions +layout: layouts/page.njk +permalink: /questions/network-questions/index.html +--- * Traditionally, why has it been better to serve site assets from multiple domains? * Do your best to describe the process from the time you type in a website's URL to it finishing loading on your screen. diff --git a/questions/performance-questions.md b/src/questions/performance-questions.md similarity index 64% rename from questions/performance-questions.md rename to src/questions/performance-questions.md index 6a4afa5f2..541f0a56d 100644 --- a/questions/performance-questions.md +++ b/src/questions/performance-questions.md @@ -1,4 +1,8 @@ -# Performance Questions: +--- +title: Performance Questions +layout: layouts/page.njk +permalink: /questions/performance-questions/index.html +--- * What tools would you use to find a performance bug in your code? * What are some ways you may improve your website's scrolling performance? diff --git a/questions/testing-questions.md b/src/questions/testing-questions.md similarity index 70% rename from questions/testing-questions.md rename to src/questions/testing-questions.md index 21cb8ab08..4bc0fe6e3 100644 --- a/questions/testing-questions.md +++ b/src/questions/testing-questions.md @@ -1,4 +1,8 @@ -# Testing Questions: +--- +title: Testing Questions +layout: layouts/page.njk +permalink: /questions/testing-questions/index.html +--- * What are some advantages/disadvantages to testing your code? * What tools would you use to test your code's functionality? diff --git a/src/sitemap.xml.njk b/src/sitemap.xml.njk new file mode 100644 index 000000000..875e6a7e3 --- /dev/null +++ b/src/sitemap.xml.njk @@ -0,0 +1,16 @@ +--- +permalink: /sitemap.xml +excludeFromSitemap: true +--- + + +{%- for page in collections.all %} +{%- if not page.data.excludeFromSitemap %} + {% set absoluteUrl %}{{ site.url }}{{ page.url | url }}{% endset %} + + {{ absoluteUrl }} + {{ page.date | html_date_string }} + +{%- endif %} +{%- endfor %} + diff --git a/src/translations.njk b/src/translations.njk new file mode 100644 index 000000000..3f7e126c4 --- /dev/null +++ b/src/translations.njk @@ -0,0 +1,27 @@ +--- +title: Translations +description: Doesn't see yours or see something wrong? Open an [issue](https://github.com/h5bp/Front-end-Developer-Interview-Questions/issues). +permalink: /translations/index.html +--- +{% extends 'layouts/default.njk' %} + +{% block pageTop %} +
+

{{ title }}

+

{{ description | markdownify_inline | safe }}

+
+{% endblock %} + +{% block main %} +
+
+ +
+
+{% endblock %} diff --git a/Translations/Arabic/README.md b/src/translations/arabic/README.md similarity index 99% rename from Translations/Arabic/README.md rename to src/translations/arabic/README.md index 2bc492e85..c7f2d67d3 100644 --- a/Translations/Arabic/README.md +++ b/src/translations/arabic/README.md @@ -1,3 +1,8 @@ +--- +title: أسئلة مقابله شخصية في تطوير واجهةالويب +layout: layouts/page.njk +permalink: /translations/arabic/index.html +---

أسئلة مقابله شخصية في تطوير واجهةالويب

هذا الملف يحتوي على عدد من أسئلة مقابلة شخصية في تطوير واجهة الويب التي من الممكن ان تساعدك في فحص المرشحين المحتملين للوظيفة. diff --git a/Translations/Bulgarian/README.md b/src/translations/bulgarian/README.md similarity index 99% rename from Translations/Bulgarian/README.md rename to src/translations/bulgarian/README.md index 228455dd2..8d6485a75 100644 --- a/Translations/Bulgarian/README.md +++ b/src/translations/bulgarian/README.md @@ -1,3 +1,9 @@ +--- +title: Въпроси за интервю за front-end разработчици +layout: layouts/page.njk +permalink: /translations/bulgarian/index.html +--- + # Въпроси за интервю за front-end разработчици Това репозитори съдържа въпроси от интервюта на front-end разработчици, които могат да бъдат използвани за отсяване на потенциални кандидати. Не препоръчваме използването на всеки въпрос за всеки кандидат (това би отнело часове). Избирането на няколко въпроса от списъка би могло да помогне да се проверят търсените умения у кандидатите. diff --git a/Translations/Burmese/README.md b/src/translations/burmese/README.md similarity index 98% rename from Translations/Burmese/README.md rename to src/translations/burmese/README.md index c2091bf80..38fc6b6f2 100644 --- a/Translations/Burmese/README.md +++ b/src/translations/burmese/README.md @@ -1,4 +1,10 @@ -#Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ +--- +title: Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ +layout: layouts/page.njk +permalink: /translations/burmese/index.html +--- + +# Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ ယခုဖိုင်တွင် Front-end developer အလုပ်အတွက် အလုပ်လျှောက်ထားသူများအား အင်တာဗျူးများပြုလုပ်ရာတွင် အထောက်အကူပြုနိုင်သည့် မေးခွန်းများပါဝင်ပါသည်။ အလုပ်လျှောက်ထားသူတစ်ဦးစီတိုင်းကို ရှိသမျှမေးခွန်းတိုင်းမေးရန် အကြံပြုခြင်းမဟုတ်ပါ။ (ဖြေရလွန်း၍ လျှာထွက်နိုင်ကိန်းရှိသည်။) မိမိခန့်အပ်လိုသောအလုပ်နှင့်သက်ဆိုင်သည့် အလုပ်တာဝန်၊ လိုအပ်ချက်များနှင့်သက်ဆိုင်သည့် မေးခွန်းများကိုသာရွေးချယ်ကာမေးရန် ရည်ရွယ်ပါသည်။ diff --git a/Translations/Chinese-Traditional/README.md b/src/translations/chinese-traditional/README.md similarity index 98% rename from Translations/Chinese-Traditional/README.md rename to src/translations/chinese-traditional/README.md index 5130ce743..000e558e2 100644 --- a/Translations/Chinese-Traditional/README.md +++ b/src/translations/chinese-traditional/README.md @@ -1,3 +1,9 @@ +--- +title: 前端工程師面試問題集 +layout: layouts/page.njk +permalink: /translations/chinese-traditional/index.html +--- + # 前端工程師面試問題集 譯注:此翻譯版,主要給不能流利的讀英文的人看,相關專有名詞還是保留原文,翻譯不好地方請協助 Pull request。 diff --git a/Translations/Chinese/README.md b/src/translations/chinese/README.md similarity index 99% rename from Translations/Chinese/README.md rename to src/translations/chinese/README.md index 8baa0d285..cf073088e 100644 --- a/Translations/Chinese/README.md +++ b/src/translations/chinese/README.md @@ -1,3 +1,9 @@ +--- +title: 前端工作面试问题 +layout: layouts/page.njk +permalink: /translations/chinese/index.html +--- + # 前端工作面试问题 本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能。 diff --git a/Translations/Croatian/README.md b/src/translations/croatian/README.md similarity index 98% rename from Translations/Croatian/README.md rename to src/translations/croatian/README.md index 85c09eba6..43e77820b 100644 --- a/Translations/Croatian/README.md +++ b/src/translations/croatian/README.md @@ -1,4 +1,10 @@ -#Intervju za posao Front-end Developera +--- +title: Intervju za posao Front-end Developera +layout: layouts/page.njk +permalink: /translations/croatian/index.html +--- + +# Intervju za posao Front-end Developera @version 2.0.0 @@ -8,7 +14,7 @@ Ovaj repozitorij sadrži brojna pitanja za intervju iz područja front-end-a koj **Napomena:** Imajte na umu da su mnoga ovdje navedena pitanja otvorenog tipa i mogla bi voditi u zanimljive rasprave koje govore više o sposobnostima osobe nego pitanja sa direktnim odgovorima. -####Autori originalne liste +#### Autori originalne liste Većina pitanja je preuzeta sa [oksoclap](http://oksoclap.com/) tj. rasprave koju je u originalu pokrenuo [Paul Irish](http://paulirish.com) ([@paul_irish](http://twitter.com/paul_irish)) i kojoj su pridonijele sljedeće osobe: diff --git a/Translations/Czech/README.md b/src/translations/czech/README.md similarity index 98% rename from Translations/Czech/README.md rename to src/translations/czech/README.md index 20b063b05..a4670f264 100644 --- a/Translations/Czech/README.md +++ b/src/translations/czech/README.md @@ -1,3 +1,9 @@ +--- +title: Front-end vývojář – otázky k pohovoru +layout: layouts/page.njk +permalink: /translations/czech/index.html +--- + # Front-end vývojář – otázky k pohovoru Tento repozitář obsahuje řadu otázek, které můžete směle položit u pohovoru kandidátovi na pozici front-end vývojář a ověřit si tak jeho znalosti v tomto oboru. Není zamýšleno položit všechny tyto otázky (jejich korektní zodpovězení by trvalo hodiny), leč pouze určitou část vyhovující vašim potřebám. diff --git a/Translations/Danish/README.md b/src/translations/danish/README.md similarity index 98% rename from Translations/Danish/README.md rename to src/translations/danish/README.md index fdb65d7a2..9b42a220f 100644 --- a/Translations/Danish/README.md +++ b/src/translations/danish/README.md @@ -1,4 +1,10 @@ -#Front-end Job Interview Spørgsmål +--- +title: Front-end Job Interview Spørgsmål +layout: layouts/page.njk +permalink: /translations/danish/index.html +--- + +# Front-end Job Interview Spørgsmål @version 1.0 diff --git a/Translations/Dutch/README.md b/src/translations/dutch/README.md similarity index 98% rename from Translations/Dutch/README.md rename to src/translations/dutch/README.md index 6abafa3d0..391002b64 100644 --- a/Translations/Dutch/README.md +++ b/src/translations/dutch/README.md @@ -1,4 +1,10 @@ -#Front-end interview vragen +--- +title: Front-end interview vragen +layout: layouts/page.njk +permalink: /translations/dutch/index.html +--- + +# Front-end interview vragen @version 2.0.0 diff --git a/Translations/Farsi/README.md b/src/translations/farsi/README.md similarity index 99% rename from Translations/Farsi/README.md rename to src/translations/farsi/README.md index 1c8e26547..966e12874 100644 --- a/Translations/Farsi/README.md +++ b/src/translations/farsi/README.md @@ -1,3 +1,9 @@ +--- +title: سوالات مصاحبه‌ی کاری فرانت‌-اند +layout: layouts/page.njk +permalink: /translations/farsi/index.html +--- +

سوالات مصاحبه‌ی کاری فرانت‌-اند

این فایل شامل چندین سوال مربوط به مصاحبه‌ی فرانت-اند هست که ازشون میشه در زمان بررسی داوطلب‌های بالقوه استفاده کرد. به هیچ وجه پیشنهاد نمیشه که تمام سوالات اینجا رو از یک داوطلب بپرسین (چون چند ساعت طول می‌کشه). انتخاب چند مورد از این لیست باید بهتون در بررسی توانایی‌هایی که نیاز دارید کمک کنه.

diff --git a/Translations/French/README.md b/src/translations/french/README.md similarity index 99% rename from Translations/French/README.md rename to src/translations/french/README.md index fa89ef8bb..a3a08792d 100644 --- a/Translations/French/README.md +++ b/src/translations/french/README.md @@ -1,3 +1,9 @@ +--- +title: Questionnaire de recrutement pour développeur front-end +layout: layouts/page.njk +permalink: /translations/french/index.html +--- + # Questionnaire de recrutement pour développeur front-end Cette liste contient un certain nombre de questions que vous pouvez poser lors d'un entretien d'embauche pour un développeur Front-End. Il n'est en aucun cas recommandé de poser toutes ces questions à un candidat (ça prendrait des heures). Choisissez en quelques-unes liées au profil que vous rechercher afin de vérifier les compétences dont vous avez besoin. diff --git a/Translations/German/README.md b/src/translations/german/README.md similarity index 98% rename from Translations/German/README.md rename to src/translations/german/README.md index 854bb9259..6f639c0f3 100644 --- a/Translations/German/README.md +++ b/src/translations/german/README.md @@ -1,4 +1,10 @@ -#Fragen im Bewerbungsgespräch für Frontend-Entwickler +--- +title: Fragen im Bewerbungsgespräch für Frontend-Entwickler +layout: layouts/page.njk +permalink: /translations/german/index.html +--- + +# Fragen im Bewerbungsgespräch für Frontend-Entwickler @version 2.0.0 diff --git a/Translations/Greek/README.md b/src/translations/greek/README.md similarity index 99% rename from Translations/Greek/README.md rename to src/translations/greek/README.md index 610dc4441..38d7e8edd 100644 --- a/Translations/Greek/README.md +++ b/src/translations/greek/README.md @@ -1,3 +1,9 @@ +--- +title: Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers +layout: layouts/page.njk +permalink: /translations/greek/index.html +--- + # Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers Αυτό το αποθετήριο (repo) περιέχει μια σειρά από front-end ερωτήσεις συνέντευξης που μπορούν να χρησιμοποιηθούν κατά την εξέταση πιθανών υποψηφίων. Σε καμία περίπτωση δεν προτείνεται να θέσετε όλα τα ερωτήματα που βρίσκονται εδώ στον ίδιο υποψήφιο (αυτό θα έπαιρνε ώρες). Επιλέγοντας όμως μερικές από αυτές, θα μπορέσετε να επιλέξετε τον υποψήφιο με τις κατάλληλες για σας δεξιότητες. diff --git a/Translations/Hebrew/README.md b/src/translations/hebrew/README.md similarity index 99% rename from Translations/Hebrew/README.md rename to src/translations/hebrew/README.md index 98664590b..a2bac5afe 100644 --- a/Translations/Hebrew/README.md +++ b/src/translations/hebrew/README.md @@ -1,3 +1,9 @@ +--- +title: שאלות לראיונות עבודה בנושא פיתוח - צד לקוח +layout: layouts/page.njk +permalink: /translations/hebrew/index.html +--- +

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

המסמך כולל מספר שאלות המופיעות בראיונות עבודה בנושא צד-לקוח diff --git a/Translations/Hungarian/README.md b/src/translations/hungarian/README.md similarity index 99% rename from Translations/Hungarian/README.md rename to src/translations/hungarian/README.md index 7ca1fa719..084fadbe2 100644 --- a/Translations/Hungarian/README.md +++ b/src/translations/hungarian/README.md @@ -1,3 +1,9 @@ +--- +title: Interjú kérdések front-end fejlesztőknek +layout: layouts/page.njk +permalink: /translations/hungarian/index.html +--- + # Interjú kérdések front-end fejlesztőknek Ebben a gyűjteményben összeválogattuk a legjobb front-end fejlesztő interjú kérdéseket. Ellenben nem tanácsoljuk az összes kérdés egyidejű feltevését, hiszen ez órákat venne igénybe de egy válogatott kérdéssorral megkönnyíthetjük a potenciális jelentkezők szelektálását. diff --git a/Translations/Indonesian/README.md b/src/translations/indonesian/README.md similarity index 96% rename from Translations/Indonesian/README.md rename to src/translations/indonesian/README.md index a5578ada0..1c4227005 100644 --- a/Translations/Indonesian/README.md +++ b/src/translations/indonesian/README.md @@ -1,3 +1,9 @@ +--- +title: Daftar Pertanyaan Wawancara Kerja Front-End +layout: layouts/page.njk +permalink: /translations/indonesian/index.html +--- + # Daftar Pertanyaan Wawancara Kerja Front-End File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancarai calon pekerja. Namun, bukan berarti anda dianjurkan untuk bertanya kepada si calon pekerja dengan semua pertanyaan dari daftar di bawah ini (karena itu akan memakan waktu beberapa jam). Dengan cukup memilih beberapa pertanyaan dari daftar ini akan membantu anda mengenal kemampuan yang anda cari dari si calon pekerja. @@ -75,15 +81,15 @@ File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancara * Apa teknik pengganti gambar favorit Anda? Dan yang mana akan Anda gunakan, lalu kapan digunakan? * Bagaimana anda menghadapi masalah styling yang spesifik pada browser? * Bagaimana Anda melayani halaman untuk browser dengan fitur terbatas? - * Teknik / proses apa yang Anda gunakan? + * Teknik / contents apa yang Anda gunakan? * Apa saja cara-cara untuk menyembunyikan suatu konten secara visual (dan membuatnya tersedia hanya untuk pembaca layar / _screenreader_)? * Apakah Anda pernah menggunakan sistem grid, dan jika pernah, apa yang lebih Anda sukai? * Apakah Anda pernah menggunakan atau menerapkan _media query_ atau layout / CSS khusus untuk mobile? * Apakah Anda fasih dengan styling SVG? * Bagaimana Anda mengoptimalkan halaman web Anda untuk dicetak? * Apa saja yang perlu diwaspadai dalam menulis CSS yang efisien? -* Apa keuntungan / kerugian dari menggunakan preprosesor CSS? (Sass, Compass, Stylus, LESS) - * Jelaskan apa yang Anda sukai dan tidak sukai dari preprosesor CSS yang pernah Anda gunakan. +* Apa keuntungan / kerugian dari menggunakan precontentsor CSS? (Sass, Compass, Stylus, LESS) + * Jelaskan apa yang Anda sukai dan tidak sukai dari precontentsor CSS yang pernah Anda gunakan. * Bagaimana Anda akan menerapkan desain web comp yang menggunakan font non-standar? * Jelaskan bagaimana browser mencocokan suatu elemen dengan _selector_ CSS. * Jelaskan apa itu _pesudo-element_ dan bagaimana penggunaannya. @@ -168,7 +174,7 @@ duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5] #### Pertanyaan Jaringan: * Secara tradisional, mengapa lebih baik untuk melayani aset situs dari beberapa domain? -* Jelaskan semampu Anda, bagaimana proses kerja dari saat Anda mengetikkan URL situs web sampai saat halamannya selesai tampil di layar Anda. +* Jelaskan semampu Anda, bagaimana contents kerja dari saat Anda mengetikkan URL situs web sampai saat halamannya selesai tampil di layar Anda. * Apakah perbedaan antara Long-Polling, Websockets dan Server-Sent Events (SSE)? * Jelaskan _request_ dan _response_ header berikut ini: * Perbedaan antara Expires, Date, Age dan If-Modified-... diff --git a/Translations/Italian/README.md b/src/translations/italian/README.md similarity index 98% rename from Translations/Italian/README.md rename to src/translations/italian/README.md index 7908cf52c..2d2937ade 100644 --- a/Translations/Italian/README.md +++ b/src/translations/italian/README.md @@ -1,4 +1,10 @@ -#Domande per il colloquio di lavoro per front-end +--- +title: Domande per il colloquio di lavoro per front-end +layout: layouts/page.njk +permalink: /translations/italian/index.html +--- + +# Domande per il colloquio di lavoro per front-end Questo repository contiene una serie di domande che possono essere usate nei colloqui di lavoro quando si esaminano i potenziali candidati per il ruolo di front-end. Non è affatto consigliato usare ogni singola domanda con lo stesso candidato (richiederebbe ore). Scegliere alcune di queste domande dalla lista dovrebbe aiutarti ad esaminare le skill che richiedi. diff --git a/Translations/Japanese/README.md b/src/translations/japanese/README.md similarity index 98% rename from Translations/Japanese/README.md rename to src/translations/japanese/README.md index 018b8dba7..c366926cf 100644 --- a/Translations/Japanese/README.md +++ b/src/translations/japanese/README.md @@ -1,4 +1,10 @@ -#フロントエンドデベロッパー面接時の質問事項 +--- +title: フロントエンドデベロッパー面接時の質問事項 +layout: layouts/page.njk +permalink: /translations/japanese/index.html +--- + +# フロントエンドデベロッパー面接時の質問事項 @バージョン 2.0.0 diff --git a/Translations/Korean/README.md b/src/translations/korean/README.md similarity index 99% rename from Translations/Korean/README.md rename to src/translations/korean/README.md index 6094d313a..e5272005f 100644 --- a/Translations/Korean/README.md +++ b/src/translations/korean/README.md @@ -1,3 +1,9 @@ +--- +title: 프론트엔드 면접 문제 은행 +layout: layouts/page.njk +permalink: /translations/korean/index.html +--- + # 프론트엔드 면접 문제 은행 이 파일에는 잠재적인 프론트엔드 개발자 후보를 선정할 때 사용할 수 있는 여러 가지 면접 질문들이 있습니다. 후보자에게 모든 문제를 사용하는 것은 많은 시간이 소요되기 때문에 추천하지 않습니다. 대신, 여러분이 요구하는 주요 기술과 관련된 질문들을 몇 가지 선정해서 사용해보세요. diff --git a/Translations/Korean/Reference.md b/src/translations/korean/Reference.md similarity index 97% rename from Translations/Korean/Reference.md rename to src/translations/korean/Reference.md index 7e6df3f20..dd4460745 100644 --- a/Translations/Korean/Reference.md +++ b/src/translations/korean/Reference.md @@ -1,3 +1,9 @@ +--- +title: 해설집 +layout: layouts/page.njk +permalink: /translations/korean/reference.html +--- + ##해설집 ``` 이 문서는 정답을 알려주는 문서가 아닙니다. diff --git a/Translations/Latvian/README.md b/src/translations/latvian/README.md similarity index 98% rename from Translations/Latvian/README.md rename to src/translations/latvian/README.md index 4f0d33e62..b0394b517 100644 --- a/Translations/Latvian/README.md +++ b/src/translations/latvian/README.md @@ -1,4 +1,10 @@ -#Front-end web programmētāja darba intervijas jautājumi +--- +title: Front-end web programmētāja darba intervijas jautājumi +layout: layouts/page.njk +permalink: /translations/latvian/index.html +--- + +# Front-end web programmētāja darba intervijas jautājumi Šis repozitorijs satur vairākus ar front-end web programmētāja darba prasmēm saistītus jautājumus, ko var izmantot, intervējot potenciālos vakances kandidātus. Nav ieteicams izmantot katru šeit minēto jautājumu, jo tas patērētu ļoti daudz laika. Izvēlieties tikai dažus jautājumus no šī saraksta, kas Jums palīdzēs ātrāk atlasīt kandidātus ar nepieciešamajām prasmēm. diff --git a/Translations/Polish/README.md b/src/translations/polish/README.md similarity index 98% rename from Translations/Polish/README.md rename to src/translations/polish/README.md index 1b957ca2e..0a8575467 100644 --- a/Translations/Polish/README.md +++ b/src/translations/polish/README.md @@ -1,3 +1,9 @@ +--- +title: Pytania kwalifikacyjne na stanowisko front-end web developera +layout: layouts/page.njk +permalink: /translations/polish/index.html +--- + # Pytania kwalifikacyjne na stanowisko front-end web developera @version 2.0.0 diff --git a/Translations/Portuguese/README.md b/src/translations/portuguese/README.md similarity index 98% rename from Translations/Portuguese/README.md rename to src/translations/portuguese/README.md index ee2af72ac..520a44c67 100644 --- a/Translations/Portuguese/README.md +++ b/src/translations/portuguese/README.md @@ -1,3 +1,9 @@ +--- +title: Questões para entrevista de profissionais Front-end +layout: layouts/page.njk +permalink: /translations/portuguese/index.html +--- + # Questões para entrevista de profissionais Front-end Este repositório contém uma série de perguntas para entrevista de profissionais de front-end que podem ser usadas para avaliar os candidatos. Não é recomendado de maneira alguma usar todas as perguntas aqui no mesmo candidato (que levaria horas). A escolha de alguns itens dessa lista deverá ajudar a identificar as habilidades requeridas do candidato. diff --git a/Translations/Romanian/README.md b/src/translations/romanian/README.md similarity index 98% rename from Translations/Romanian/README.md rename to src/translations/romanian/README.md index 9f3814afb..7d6ecc035 100644 --- a/Translations/Romanian/README.md +++ b/src/translations/romanian/README.md @@ -1,3 +1,9 @@ +--- +title: Întrebări pentru interviu tehnic web front-end +layout: layouts/page.njk +permalink: /translations/romanian/index.html +--- + # Întrebări pentru interviu tehnic web front-end Acest fișier conține o serie de întrebări pentru interviuri tehnice pe partea diff --git a/Translations/Russian/README.md b/src/translations/russian/README.md similarity index 99% rename from Translations/Russian/README.md rename to src/translations/russian/README.md index c15c5bf33..ccc056ad3 100644 --- a/Translations/Russian/README.md +++ b/src/translations/russian/README.md @@ -1,3 +1,9 @@ +--- +title: Вопросы кандидату на должность front-end разработчика +layout: layouts/page.njk +permalink: /translations/russian/index.html +--- + # Вопросы кандидату на должность front-end разработчика **Замечание:** Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность front-end разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь). diff --git a/Translations/Serbian/README.md b/src/translations/serbian/README.md similarity index 98% rename from Translations/Serbian/README.md rename to src/translations/serbian/README.md index 6c13c2477..96a6d1ed5 100644 --- a/Translations/Serbian/README.md +++ b/src/translations/serbian/README.md @@ -1,4 +1,10 @@ -#Intervju za posao Front-end Developer-a +--- +title: Intervju za posao Front-end Developer-a +layout: layouts/page.njk +permalink: /translations/serbian/index.html +--- + +# Intervju za posao Front-end Developer-a @version 0.0.1 diff --git a/Translations/Slovakian/README.md b/src/translations/slovakian/README.md similarity index 98% rename from Translations/Slovakian/README.md rename to src/translations/slovakian/README.md index ca28145c4..5ba795607 100644 --- a/Translations/Slovakian/README.md +++ b/src/translations/slovakian/README.md @@ -1,4 +1,10 @@ -#Otázky k pohovoru: front-end vývojár +--- +title: Otázky k pohovoru; front-end vývojár +layout: layouts/page.njk +permalink: /translations/slovakian/index.html +--- + +# Otázky k pohovoru: front-end vývojár Tento repozitár obsahuje rad otázok, ktoré môžete položiť pri pohovore kandidátovi na pozíciu front-end vývojár a overiť si tak jeho znalosti v tomto odbore. Nie je zamýšľané položiť všetky tieto otázky (ich korektné zodpovedanie by trvalo hodiny), bohato postačí len určitú časť vyhovujúci vašim potrebám. diff --git a/Translations/Slovenian/README.md b/src/translations/slovenian/README.md similarity index 98% rename from Translations/Slovenian/README.md rename to src/translations/slovenian/README.md index 540ff232c..465349372 100644 --- a/Translations/Slovenian/README.md +++ b/src/translations/slovenian/README.md @@ -1,4 +1,10 @@ -#Intervju vprašanja za front-end programerja +--- +title: Intervju vprašanja za front-end programerja +layout: layouts/page.njk +permalink: /translations/slovenian/index.html +--- + +# Intervju vprašanja za front-end programerja @verzija 1.0 diff --git a/Translations/Spanish/README.md b/src/translations/spanish/README.md similarity index 99% rename from Translations/Spanish/README.md rename to src/translations/spanish/README.md index a9b8e09a6..3f3f249a2 100644 --- a/Translations/Spanish/README.md +++ b/src/translations/spanish/README.md @@ -1,3 +1,9 @@ +--- +title: GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO +layout: layouts/page.njk +permalink: /translations/spanish/index.html +--- + # GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO Este repositorio contiene preguntas de entrevistas a programadores front-end, que pueden ser usadas para revisar a candidatos potenciales. Bajo ningún concepto se recomienda usar todas las preguntas aquí expuestas con el mismo candidato (eso llevaría horas). Escoger algunos elementos de esta lista debería ayudarle a revisar las habilidades que requiere. diff --git a/Translations/Swedish/README.md b/src/translations/swedish/README.md similarity index 98% rename from Translations/Swedish/README.md rename to src/translations/swedish/README.md index 5925e6088..2609a5e67 100644 --- a/Translations/Swedish/README.md +++ b/src/translations/swedish/README.md @@ -1,4 +1,10 @@ -#Front-end Anställningsfrågor +--- +title: Front-end Anställningsfrågor +layout: layouts/page.njk +permalink: /translations/swedish/index.html +--- + +# Front-end Anställningsfrågor Detta arkiv innehåller ett urval av frågor som kan ställas till den arbetssökande. Det är verkligen inte rekommenderat att ställa alla frågor här till samma person (det skulle ta timmar). Att välja ut ett par stycken från listan bör hjälpa dig besluta huruvida den arbetssökande uppfyller dina krav. diff --git a/Translations/Turkish/README.md b/src/translations/turkish/README.md similarity index 98% rename from Translations/Turkish/README.md rename to src/translations/turkish/README.md index 831cb3fbd..4b064e11f 100644 --- a/Translations/Turkish/README.md +++ b/src/translations/turkish/README.md @@ -1,3 +1,9 @@ +--- +title: Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları +layout: layouts/page.njk +permalink: /translations/turkish/index.html +--- + # Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları Burada ön yüz yazılım -ya da front-end- iş başvurularınızda karşınıza çıkabilecek sorular yer almaktadır. Her sorunun iş başvurularınızda karşınıza çıkması garanti değil ancak ihtimali var. Ayrıca buradaki sorular sadece iş başvurusu yapanlar için değil, bu branşta kendini geliştirmeyi düşünenler için de kaynak niteliğindedir. diff --git a/Translations/Ukrainian/README.md b/src/translations/ukrainian/README.md similarity index 99% rename from Translations/Ukrainian/README.md rename to src/translations/ukrainian/README.md index 9cc10cbc9..8e1f7a652 100644 --- a/Translations/Ukrainian/README.md +++ b/src/translations/ukrainian/README.md @@ -1,3 +1,9 @@ +--- +title: Питання кандидату на посаду front-end розробника +layout: layouts/page.njk +permalink: /translations/ukrainian/index.html +--- + # Питання кандидату на посаду front-end розробника **Примітка:** Цей репозиторій містить підбірку питань, які можуть бути використані на співбесідах на посаду front-end розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить). diff --git a/Translations/Vietnamese/README.md b/src/translations/vietnamese/README.md similarity index 99% rename from Translations/Vietnamese/README.md rename to src/translations/vietnamese/README.md index c164b8b15..d3008c0c7 100644 --- a/Translations/Vietnamese/README.md +++ b/src/translations/vietnamese/README.md @@ -1,3 +1,9 @@ +--- +title: Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end +layout: layouts/page.njk +permalink: /translations/vietnamese/index.html +--- + # Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end Tập tin này chứa một số câu hỏi phỏng vấn lập trình viên front-end, có thể được sử dụng khi kiểm tra các ứng viên tiềm năng. Không khuyến khích sử dụng tất cả các câu hỏi ở đây trên cùng một ứng cử viên (sẽ mất hàng giờ đồng hồ). Chọn một vài mục từ danh sách này sẽ giúp bạn kiểm tra những kỹ năng mà bạn yêu cầu ở ứng viên đó. From 1702954a5c8e7d364d133fdd5ecd0b3d9148e160 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Sun, 2 Dec 2018 21:44:49 -0200 Subject: [PATCH 004/252] fix wrong paths in gh-pages --- _site/404.html | 2 +- _site/about/index.html | 2 +- _site/index.html | 2 +- _site/questions/coding-questions/index.html | 2 +- _site/questions/css-questions/index.html | 2 +- _site/questions/fun-questions/index.html | 2 +- _site/questions/general-questions/index.html | 2 +- _site/questions/html-questions/index.html | 2 +- .../questions/javascript-questions/index.html | 2 +- _site/questions/network-questions/index.html | 2 +- .../performance-questions/index.html | 2 +- _site/questions/testing-questions/index.html | 2 +- _site/sitemap.xml | 180 +++++++++--------- _site/translations/arabic/index.html | 2 +- _site/translations/bulgarian/index.html | 2 +- _site/translations/burmese/index.html | 2 +- .../chinese-traditional/index.html | 2 +- _site/translations/chinese/index.html | 2 +- _site/translations/croatian/index.html | 2 +- _site/translations/czech/index.html | 2 +- _site/translations/danish/index.html | 2 +- _site/translations/dutch/index.html | 2 +- _site/translations/farsi/index.html | 2 +- _site/translations/french/index.html | 2 +- _site/translations/german/index.html | 2 +- _site/translations/greek/index.html | 2 +- _site/translations/hebrew/index.html | 4 +- _site/translations/hungarian/index.html | 2 +- _site/translations/index.html | 2 +- _site/translations/indonesian/index.html | 2 +- _site/translations/italian/index.html | 2 +- _site/translations/japanese/index.html | 2 +- _site/translations/korean/index.html | 2 +- _site/translations/korean/reference.html | 4 +- _site/translations/latvian/index.html | 2 +- _site/translations/polish/index.html | 2 +- _site/translations/portuguese/index.html | 2 +- _site/translations/romanian/index.html | 2 +- _site/translations/russian/index.html | 2 +- _site/translations/serbian/index.html | 2 +- _site/translations/slovakian/index.html | 2 +- _site/translations/slovenian/index.html | 2 +- _site/translations/spanish/index.html | 2 +- _site/translations/swedish/index.html | 2 +- _site/translations/turkish/index.html | 2 +- _site/translations/ukrainian/index.html | 2 +- _site/translations/vietnamese/index.html | 2 +- config/eleventy.config.js | 2 +- package.json | 4 +- src/_includes/assets/css/header.css | 2 +- src/_includes/components/footer.njk | 2 +- src/_includes/components/navigation.njk | 6 +- src/_includes/layouts/default.njk | 9 +- src/index.njk | 2 +- 54 files changed, 151 insertions(+), 152 deletions(-) diff --git a/_site/404.html b/_site/404.html index 0c76228f5..629520cbf 100644 --- a/_site/404.html +++ b/_site/404.html @@ -1 +1 @@ -404 - Page not found ★ Front-end Job Interview Questions

404 - Page not found

Think this is wrong? Open an issue

\ No newline at end of file +404 - Page not found ★ Front-end Job Interview Questions

404 - Page not found

Think this is wrong? Open an issue

\ No newline at end of file diff --git a/_site/about/index.html b/_site/about/index.html index 72f1858bf..bc4be38e9 100644 --- a/_site/about/index.html +++ b/_site/about/index.html @@ -1 +1 @@ -About ★ Front-end Job Interview Questions

About

This Project 🤳

This file 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.

Contribute 🕶

Saw something wrong? Want to add a question? suggest something? Check our contributing guidelines, open a pull-request or fill a bug.

Maintainers 🦄

It has since been active thanks to these incredibly wonderful people.

Looking to contribute? Check our Contributing guide to get started!

Honorable Mentions 🎠

This project started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

\ No newline at end of file +About ★ Front-end Job Interview Questions

About

This Project 🤳

This file 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.

Contribute 🕶

Saw something wrong? Want to add a question? suggest something? Check our contributing guidelines, open a pull-request or fill a bug.

Maintainers 🦄

It has since been active thanks to these incredibly wonderful people.

Looking to contribute? Check our Contributing guide to get started!

Honorable Mentions 🎠

This project started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

\ No newline at end of file diff --git a/_site/index.html b/_site/index.html index 23c6b907d..cd6eac631 100644 --- a/_site/index.html +++ b/_site/index.html @@ -1 +1 @@ -Front-end Job Interview Questions

Front-end Job Interview Questions

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations.

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. We have a Hall of Fame 👑.

\ No newline at end of file +Front-end Job Interview Questions

Front-end Job Interview Questions

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations.

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. We have a Hall of Fame 👑.

\ No newline at end of file diff --git a/_site/questions/coding-questions/index.html b/_site/questions/coding-questions/index.html index ceb4d04f1..cbc634ab0 100644 --- a/_site/questions/coding-questions/index.html +++ b/_site/questions/coding-questions/index.html @@ -1 +1 @@ -Coding Questions ★ Front-end Job Interview Questions

Coding Questions

Question: What is the value of foo?

var foo = 10 + '20';

Question: What will be the output of the code below?

console.log(0.1 + 0.2 == 0.3);

Question: How would you make this work?

add(2, 5); // 7
add(2)(5); // 7

Question: What value is returned from the following statement?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?

( window.foo || ( window.foo = "bar" ) );

Question: What is the outcome of the two alerts below?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: What is the value of foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Question: What is the value of foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: What does the following code print?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
Promise.resolve().then(function() {
console.log('three');
})
console.log('four');

Question: What is the difference between these four promises?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);
\ No newline at end of file +Coding Questions ★ Front-end Job Interview Questions

Coding Questions

Question: What is the value of foo?

var foo = 10 + '20';

Question: What will be the output of the code below?

console.log(0.1 + 0.2 == 0.3);

Question: How would you make this work?

add(2, 5); // 7
add(2)(5); // 7

Question: What value is returned from the following statement?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?

( window.foo || ( window.foo = "bar" ) );

Question: What is the outcome of the two alerts below?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: What is the value of foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Question: What is the value of foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: What does the following code print?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
Promise.resolve().then(function() {
console.log('three');
})
console.log('four');

Question: What is the difference between these four promises?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);
\ No newline at end of file diff --git a/_site/questions/css-questions/index.html b/_site/questions/css-questions/index.html index 96d8f0bd2..2476dbb71 100644 --- a/_site/questions/css-questions/index.html +++ b/_site/questions/css-questions/index.html @@ -1 +1 @@ -CSS Questions ★ Front-end Job Interview Questions

CSS Questions

  • What is CSS selector specificity and how does it work?
  • What’s the difference between “resetting” and “normalizing” CSS? Which would you choose, and why?
  • Describe Floats and how they work.
  • Describe z-index and how stacking context is formed.
  • Describe BFC (Block Formatting Context) and how it works.
  • What are the various clearing techniques and which is appropriate for what context?
  • How would you approach fixing browser-specific styling issues?
  • How do you serve your pages for feature-constrained browsers?
    • What techniques/processes do you use?
  • What are the different ways to visually hide content (and make it available only for screen readers)?
  • Have you ever used a grid system, and if so, what do you prefer?
  • Have you used or implemented media queries or mobile specific layouts/CSS?
  • Are you familiar with styling SVG?
  • Can you give an example of an @media property other than screen?
  • What are some of the “gotchas” for writing efficient CSS?
  • What are the advantages/disadvantages of using CSS preprocessors?
    • Describe what you like and dislike about the CSS preprocessors you have used.
  • How would you implement a web design comp that uses non-standard fonts?
  • Explain how a browser determines what elements match a CSS selector.
  • Describe pseudo-elements and discuss what they are used for.
  • Explain your understanding of the box model and how you would tell the browser in CSS to render your layout in different box models.
  • What does * { box-sizing: border-box; } do? What are its advantages?
  • What is the CSS display property and can you give a few examples of its use?
  • What’s the difference between inline and inline-block?
  • What’s the difference between the “nth-of-type()” and “nth-child()” selectors?
  • What’s the difference between a relative, fixed, absolute and statically positioned element?
  • What existing CSS frameworks have you used locally, or in production? How would you change/improve them?
  • Have you played around with the new CSS Flexbox or Grid specs?
  • Can you explain the difference between coding a web site to be responsive versus using a mobile-first strategy?
  • Have you ever worked with retina graphics? If so, when and what techniques did you use?
  • Is there any reason you’d want to use translate() instead of absolute positioning, or vice-versa? And why?
\ No newline at end of file +CSS Questions ★ Front-end Job Interview Questions

CSS Questions

  • What is CSS selector specificity and how does it work?
  • What’s the difference between “resetting” and “normalizing” CSS? Which would you choose, and why?
  • Describe Floats and how they work.
  • Describe z-index and how stacking context is formed.
  • Describe BFC (Block Formatting Context) and how it works.
  • What are the various clearing techniques and which is appropriate for what context?
  • How would you approach fixing browser-specific styling issues?
  • How do you serve your pages for feature-constrained browsers?
    • What techniques/processes do you use?
  • What are the different ways to visually hide content (and make it available only for screen readers)?
  • Have you ever used a grid system, and if so, what do you prefer?
  • Have you used or implemented media queries or mobile specific layouts/CSS?
  • Are you familiar with styling SVG?
  • Can you give an example of an @media property other than screen?
  • What are some of the “gotchas” for writing efficient CSS?
  • What are the advantages/disadvantages of using CSS preprocessors?
    • Describe what you like and dislike about the CSS preprocessors you have used.
  • How would you implement a web design comp that uses non-standard fonts?
  • Explain how a browser determines what elements match a CSS selector.
  • Describe pseudo-elements and discuss what they are used for.
  • Explain your understanding of the box model and how you would tell the browser in CSS to render your layout in different box models.
  • What does * { box-sizing: border-box; } do? What are its advantages?
  • What is the CSS display property and can you give a few examples of its use?
  • What’s the difference between inline and inline-block?
  • What’s the difference between the “nth-of-type()” and “nth-child()” selectors?
  • What’s the difference between a relative, fixed, absolute and statically positioned element?
  • What existing CSS frameworks have you used locally, or in production? How would you change/improve them?
  • Have you played around with the new CSS Flexbox or Grid specs?
  • Can you explain the difference between coding a web site to be responsive versus using a mobile-first strategy?
  • Have you ever worked with retina graphics? If so, when and what techniques did you use?
  • Is there any reason you’d want to use translate() instead of absolute positioning, or vice-versa? And why?
\ No newline at end of file diff --git a/_site/questions/fun-questions/index.html b/_site/questions/fun-questions/index.html index 6ff178dd2..9c9b3d2b8 100644 --- a/_site/questions/fun-questions/index.html +++ b/_site/questions/fun-questions/index.html @@ -1 +1 @@ -Fun Questions ★ Front-end Job Interview Questions

Fun Questions

  • What’s a cool project that you’ve recently worked on?
  • What are some things you like about the developer tools you use?
  • Who inspires you in the front-end community?
  • Do you have any pet projects? What kind?
  • What’s your favorite feature of Internet Explorer?
  • How do you like your coffee?
\ No newline at end of file +Fun Questions ★ Front-end Job Interview Questions

Fun Questions

  • What’s a cool project that you’ve recently worked on?
  • What are some things you like about the developer tools you use?
  • Who inspires you in the front-end community?
  • Do you have any pet projects? What kind?
  • What’s your favorite feature of Internet Explorer?
  • How do you like your coffee?
\ No newline at end of file diff --git a/_site/questions/general-questions/index.html b/_site/questions/general-questions/index.html index 05b4f7962..1da916209 100644 --- a/_site/questions/general-questions/index.html +++ b/_site/questions/general-questions/index.html @@ -1 +1 @@ -General Questions ★ Front-end Job Interview Questions

General Questions

  • What did you learn yesterday/this week?
  • What excites or interests you about coding?
  • What is a recent technical challenge you experienced and how did you solve it?
  • When building a new web site or maintaining one, can you explain some techniques you have used to increase performance?
  • Can you describe some SEO best practices or techniques you have used lately?
  • Can you explain any common techniques or recent issues solved in regards to front-end security?
  • What actions have you personally taken on recent projects to increase maintainability of your code?
  • Talk about your preferred development environment.
  • Which version control systems are you familiar with?
  • Can you describe your workflow when you create a web page?
  • If you have 5 different stylesheets, how would you best integrate them into the site?
  • Can you describe the difference between progressive enhancement and graceful degradation?
  • How would you optimize a website’s assets/resources?
  • How many resources will a browser download from a given domain at a time?
    • What are the exceptions?
  • Name 3 ways to decrease page load (perceived or actual load time).
  • If you jumped on a project and they used tabs and you used spaces, what would you do?
  • Describe how you would create a simple slideshow page.
  • If you could master one technology this year, what would it be?
  • Explain the importance of standards and standards bodies.
  • What is Flash of Unstyled Content? How do you avoid FOUC?
  • Explain what ARIA and screenreaders are, and how to make a website accessible.
  • Explain some of the pros and cons for CSS animations versus JavaScript animations.
  • What does CORS stand for and what issue does it address?
  • How did you handle a disagreement with your boss or your collaborator?
  • What resources do you use to learn about the latest in front end development and design?
\ No newline at end of file +General Questions ★ Front-end Job Interview Questions

General Questions

  • What did you learn yesterday/this week?
  • What excites or interests you about coding?
  • What is a recent technical challenge you experienced and how did you solve it?
  • When building a new web site or maintaining one, can you explain some techniques you have used to increase performance?
  • Can you describe some SEO best practices or techniques you have used lately?
  • Can you explain any common techniques or recent issues solved in regards to front-end security?
  • What actions have you personally taken on recent projects to increase maintainability of your code?
  • Talk about your preferred development environment.
  • Which version control systems are you familiar with?
  • Can you describe your workflow when you create a web page?
  • If you have 5 different stylesheets, how would you best integrate them into the site?
  • Can you describe the difference between progressive enhancement and graceful degradation?
  • How would you optimize a website’s assets/resources?
  • How many resources will a browser download from a given domain at a time?
    • What are the exceptions?
  • Name 3 ways to decrease page load (perceived or actual load time).
  • If you jumped on a project and they used tabs and you used spaces, what would you do?
  • Describe how you would create a simple slideshow page.
  • If you could master one technology this year, what would it be?
  • Explain the importance of standards and standards bodies.
  • What is Flash of Unstyled Content? How do you avoid FOUC?
  • Explain what ARIA and screenreaders are, and how to make a website accessible.
  • Explain some of the pros and cons for CSS animations versus JavaScript animations.
  • What does CORS stand for and what issue does it address?
  • How did you handle a disagreement with your boss or your collaborator?
  • What resources do you use to learn about the latest in front end development and design?
\ No newline at end of file diff --git a/_site/questions/html-questions/index.html b/_site/questions/html-questions/index.html index 8a5331e5b..71ed1ae34 100644 --- a/_site/questions/html-questions/index.html +++ b/_site/questions/html-questions/index.html @@ -1 +1 @@ -HTML Questions ★ Front-end Job Interview Questions

HTML Questions

  • What does a doctype do?
  • How do you serve a page with content in multiple languages?
  • What kind of things must you be wary of when design or developing for multilingual sites?
  • What are data- attributes good for?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Describe the difference between a cookie, sessionStorage and localStorage.
  • Describe the difference between <script>, <script async> and <script defer>.
  • Why is it generally a good idea to position CSS <link>s between <head></head> and JS <script>s just before </body>? Do you know any exceptions?
  • What is progressive rendering?
  • Why you would use a srcset attribute in an image tag? Explain the process the browser uses when evaluating the content of this attribute.
  • Have you used different HTML templating languages before?
\ No newline at end of file +HTML Questions ★ Front-end Job Interview Questions

HTML Questions

  • What does a doctype do?
  • How do you serve a page with content in multiple languages?
  • What kind of things must you be wary of when design or developing for multilingual sites?
  • What are data- attributes good for?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Describe the difference between a cookie, sessionStorage and localStorage.
  • Describe the difference between <script>, <script async> and <script defer>.
  • Why is it generally a good idea to position CSS <link>s between <head></head> and JS <script>s just before </body>? Do you know any exceptions?
  • What is progressive rendering?
  • Why you would use a srcset attribute in an image tag? Explain the process the browser uses when evaluating the content of this attribute.
  • Have you used different HTML templating languages before?
\ No newline at end of file diff --git a/_site/questions/javascript-questions/index.html b/_site/questions/javascript-questions/index.html index e700601c0..d82cb25a6 100644 --- a/_site/questions/javascript-questions/index.html +++ b/_site/questions/javascript-questions/index.html @@ -1 +1 @@ -JavaScript Questions ★ Front-end Job Interview Questions

JavaScript Questions

  • Explain event delegation
  • Explain how this works in JavaScript
  • Explain how prototypal inheritance works
  • What do you think of AMD vs CommonJS?
  • Explain why the following doesn’t work as an IIFE: function foo(){ }();.
    • What needs to be changed to properly make it an IIFE?
  • What’s the difference between a variable that is: null, undefined or undeclared?
    • How would you go about checking for any of these states?
  • What is a closure, and how/why would you use one?
  • Can you describe the main difference between a forEach loop and a .map() loop and why you would pick one versus the other?
  • What’s a typical use case for anonymous functions?
  • How do you organize your code? (module pattern, classical inheritance?)
  • What’s the difference between host objects and native objects?
  • Difference between: function Person(){}, var person = Person(), and var person = new Person()?
  • What’s the difference between .call and .apply?
  • Explain Function.prototype.bind.
  • What’s the difference between feature detection, feature inference, and using the UA string?
  • Explain Ajax in as much detail as possible.
  • What are the advantages and disadvantages of using Ajax?
  • Explain how JSONP works (and how it’s not really Ajax).
  • Have you ever used JavaScript templating?
    • If so, what libraries have you used?
  • Explain “hoisting”.
  • Describe event bubbling.
  • Describe event capturing.
  • What’s the difference between an “attribute” and a “property”?
  • Why is extending built-in JavaScript objects not a good idea?
  • Difference between window load event and document DOMContentLoaded event?
  • What is the difference between == and ===?
  • Explain the same-origin policy with regards to JavaScript.
  • Make this work:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Why is it called a Ternary operator, what does the word “Ternary” indicate?
  • What is "use strict";? what are the advantages and disadvantages to using it?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?
  • Why would you use something like the load event? Does this event have disadvantages? Do you know any alternatives, and why would you use those?
  • Explain what a single page app is and how to make one SEO-friendly.
  • What is the extent of your experience with Promises and/or their polyfills?
  • What are the pros and cons of using Promises instead of callbacks?
  • What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript?
  • What tools and techniques do you use debugging JavaScript code?
  • What language constructions do you use for iterating over object properties and array items?
  • Explain the difference between mutable and immutable objects.
    • What is an example of an immutable object in JavaScript?
    • What are the pros and cons of immutability?
    • How can you achieve immutability in your own code?
  • Explain the difference between synchronous and asynchronous functions.
  • What is event loop?
    • What is the difference between call stack and task queue?
  • Explain the differences on the usage of foo between function foo() {} and var foo = function() {}
  • What are the differences between variables created using let, var or const?
  • What are the differences between ES6 class and ES5 function constructors?
  • Can you offer a use case for the new arrow => function syntax? How does this new syntax differ from other functions?
  • What advantage is there for using the arrow syntax for a method in a constructor?
  • What is the definition of a higher-order function?
  • Can you give an example for destructuring an object or an array?
  • ES6 Template Literals offer a lot of flexibility in generating strings, can you give an example?
  • Can you give an example of a curry function and why this syntax offers an advantage?
  • What are the benefits of using spread syntax and how is it different from rest syntax?
  • How can you share code between files?
  • Why you might want to create static class members?
\ No newline at end of file +JavaScript Questions ★ Front-end Job Interview Questions

JavaScript Questions

  • Explain event delegation
  • Explain how this works in JavaScript
  • Explain how prototypal inheritance works
  • What do you think of AMD vs CommonJS?
  • Explain why the following doesn’t work as an IIFE: function foo(){ }();.
    • What needs to be changed to properly make it an IIFE?
  • What’s the difference between a variable that is: null, undefined or undeclared?
    • How would you go about checking for any of these states?
  • What is a closure, and how/why would you use one?
  • Can you describe the main difference between a forEach loop and a .map() loop and why you would pick one versus the other?
  • What’s a typical use case for anonymous functions?
  • How do you organize your code? (module pattern, classical inheritance?)
  • What’s the difference between host objects and native objects?
  • Difference between: function Person(){}, var person = Person(), and var person = new Person()?
  • What’s the difference between .call and .apply?
  • Explain Function.prototype.bind.
  • What’s the difference between feature detection, feature inference, and using the UA string?
  • Explain Ajax in as much detail as possible.
  • What are the advantages and disadvantages of using Ajax?
  • Explain how JSONP works (and how it’s not really Ajax).
  • Have you ever used JavaScript templating?
    • If so, what libraries have you used?
  • Explain “hoisting”.
  • Describe event bubbling.
  • Describe event capturing.
  • What’s the difference between an “attribute” and a “property”?
  • Why is extending built-in JavaScript objects not a good idea?
  • Difference between window load event and document DOMContentLoaded event?
  • What is the difference between == and ===?
  • Explain the same-origin policy with regards to JavaScript.
  • Make this work:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Why is it called a Ternary operator, what does the word “Ternary” indicate?
  • What is "use strict";? what are the advantages and disadvantages to using it?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?
  • Why would you use something like the load event? Does this event have disadvantages? Do you know any alternatives, and why would you use those?
  • Explain what a single page app is and how to make one SEO-friendly.
  • What is the extent of your experience with Promises and/or their polyfills?
  • What are the pros and cons of using Promises instead of callbacks?
  • What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript?
  • What tools and techniques do you use debugging JavaScript code?
  • What language constructions do you use for iterating over object properties and array items?
  • Explain the difference between mutable and immutable objects.
    • What is an example of an immutable object in JavaScript?
    • What are the pros and cons of immutability?
    • How can you achieve immutability in your own code?
  • Explain the difference between synchronous and asynchronous functions.
  • What is event loop?
    • What is the difference between call stack and task queue?
  • Explain the differences on the usage of foo between function foo() {} and var foo = function() {}
  • What are the differences between variables created using let, var or const?
  • What are the differences between ES6 class and ES5 function constructors?
  • Can you offer a use case for the new arrow => function syntax? How does this new syntax differ from other functions?
  • What advantage is there for using the arrow syntax for a method in a constructor?
  • What is the definition of a higher-order function?
  • Can you give an example for destructuring an object or an array?
  • ES6 Template Literals offer a lot of flexibility in generating strings, can you give an example?
  • Can you give an example of a curry function and why this syntax offers an advantage?
  • What are the benefits of using spread syntax and how is it different from rest syntax?
  • How can you share code between files?
  • Why you might want to create static class members?
\ No newline at end of file diff --git a/_site/questions/network-questions/index.html b/_site/questions/network-questions/index.html index 1ba8c16b5..6d50a22f1 100644 --- a/_site/questions/network-questions/index.html +++ b/_site/questions/network-questions/index.html @@ -1 +1 @@ -Network Questions ★ Front-end Job Interview Questions

Network Questions

  • Traditionally, why has it been better to serve site assets from multiple domains?
  • Do your best to describe the process from the time you type in a website’s URL to it finishing loading on your screen.
  • What are the differences between Long-Polling, Websockets and Server-Sent Events?
  • Explain the following request and response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • What are HTTP methods? List all HTTP methods that you know, and explain them.
\ No newline at end of file +Network Questions ★ Front-end Job Interview Questions

Network Questions

  • Traditionally, why has it been better to serve site assets from multiple domains?
  • Do your best to describe the process from the time you type in a website’s URL to it finishing loading on your screen.
  • What are the differences between Long-Polling, Websockets and Server-Sent Events?
  • Explain the following request and response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • What are HTTP methods? List all HTTP methods that you know, and explain them.
\ No newline at end of file diff --git a/_site/questions/performance-questions/index.html b/_site/questions/performance-questions/index.html index 83b840aab..114ff5c18 100644 --- a/_site/questions/performance-questions/index.html +++ b/_site/questions/performance-questions/index.html @@ -1 +1 @@ -Performance Questions ★ Front-end Job Interview Questions

Performance Questions

  • What tools would you use to find a performance bug in your code?
  • What are some ways you may improve your website’s scrolling performance?
  • Explain the difference between layout, painting and compositing.
\ No newline at end of file +Performance Questions ★ Front-end Job Interview Questions

Performance Questions

  • What tools would you use to find a performance bug in your code?
  • What are some ways you may improve your website’s scrolling performance?
  • Explain the difference between layout, painting and compositing.
\ No newline at end of file diff --git a/_site/questions/testing-questions/index.html b/_site/questions/testing-questions/index.html index acc36c4e7..031bbe008 100644 --- a/_site/questions/testing-questions/index.html +++ b/_site/questions/testing-questions/index.html @@ -1 +1 @@ -Testing Questions ★ Front-end Job Interview Questions

Testing Questions

  • What are some advantages/disadvantages to testing your code?
  • What tools would you use to test your code’s functionality?
  • What is the difference between a unit test and a functional/integration test?
  • What is the purpose of a code style linting tool?
\ No newline at end of file +Testing Questions ★ Front-end Job Interview Questions

Testing Questions

  • What are some advantages/disadvantages to testing your code?
  • What tools would you use to test your code’s functionality?
  • What is the difference between a unit test and a functional/integration test?
  • What is the purpose of a code style linting tool?
\ No newline at end of file diff --git a/_site/sitemap.xml b/_site/sitemap.xml index c41eb76de..d935b6a4d 100644 --- a/_site/sitemap.xml +++ b/_site/sitemap.xml @@ -2,227 +2,227 @@ - https://h5bp.github.io/Front-end-Developer-Interview-Questions/about/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/about/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/coding-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/coding-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/css-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/css-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/fun-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/fun-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/general-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/general-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/html-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/html-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/javascript-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/javascript-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/network-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/network-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/performance-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/performance-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/testing-questions/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/questions/testing-questions/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/arabic/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/arabic/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/bulgarian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/bulgarian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/burmese/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/burmese/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/chinese-traditional/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/chinese-traditional/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/chinese/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/chinese/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/croatian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/croatian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/czech/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/czech/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/danish/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/danish/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/dutch/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/dutch/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/farsi/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/farsi/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/french/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/french/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/german/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/german/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/greek/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/greek/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/hebrew/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/hebrew/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/hungarian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/hungarian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/indonesian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/indonesian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/italian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/italian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/japanese/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/japanese/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/korean/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/korean/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/korean/reference.html + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/korean/reference.html - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/latvian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/latvian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/polish/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/polish/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/portuguese/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/portuguese/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/romanian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/romanian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/russian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/russian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/serbian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/serbian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/slovakian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/slovakian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/slovenian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/slovenian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/spanish/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/spanish/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/swedish/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/swedish/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/turkish/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/turkish/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/ukrainian/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/ukrainian/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/vietnamese/ + 2018-12-02 - https://h5bp.github.io/Front-end-Developer-Interview-Questions/translations/vietnamese/ - 2018-11-26 + https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/ + 2018-12-02 diff --git a/_site/translations/arabic/index.html b/_site/translations/arabic/index.html index bc4518968..0dbc9a4a5 100644 --- a/_site/translations/arabic/index.html +++ b/_site/translations/arabic/index.html @@ -1 +1 @@ -أسئلة مقابله شخصية في تطوير واجهةالويب ★ Front-end Job Interview Questions

أسئلة مقابله شخصية في تطوير واجهةالويب

أسئلة مقابله شخصية في تطوير واجهةالويب

هذا الملف يحتوي على عدد من أسئلة مقابلة شخصية في تطوير واجهة الويب التي من الممكن ان تساعدك في فحص المرشحين المحتملين للوظيفة.
لا ينصح باستخدام كل الأسئلة هنا على مرشح واحد, فاختيار بعض من الأسئلة سيساعدك في تحديد من يمتلك المهارات المتوافقه مع متطلباتك.

ملاحظة: كثير من هذه الأسئلة ليس لها إجابات محددة مما قد يؤدي الى نقاش مثير للاهتمام , و يعرفك على قدرات الشخص أكثر مما تتوقع من اجابة محدده.

قائمة المحتوى

  1. أسئلة عامة
  2. أسئلة HTML
  3. أسئلة CSS
  4. أسئلة JS
  5. أسئلة اختبار البرمجيات Testing
  6. أسئلة أداء البرمجيات Performance
  7. أسئلة شبكات Network
  8. أسئلة برمجة
  9. أسئلة مسلية

الدخول و المساهمة

  1. المساهمون
  2. كيف تساهم
  3. الرخصة

أسئلة عامة:

  • ماذا تعلمت بالأمس/هذا الأسبوع؟
  • ماذا يهمك ويثير اهتمامك في البرمجة؟
  • ماهو اخر تحدي تقني واجهته ,و كيف استطعت إصلاحه؟
  • اي من واجهة المستخدم, الامان, الاداء, قابلية الصيانه, SEO, او اي تقنية تضعها في الحسبان عند بناء تطبيق ويب او موقع؟
  • تكلم عن بيئة التطوير المفضلة لديك.
  • ماهو إصدار نظام التحكم المعتاد عليه؟
  • هل تستطيع وصف روتين عملك عند إنشاء صفحة ويب؟
  • لو كان لديك خمسة stylesheets مختلفة كيف لك دمجها في الموقع بأفضل طريقة؟
  • هل تستطيع شرح الفرق بين progressive enhancement و graceful degradation؟
  • كيف يمكنك تحسين assets/resources الموقع؟
  • كم عدد المصادر التي يحملها الموقع من domain في وقت واحد؟
    • ماهي الاستثناءت؟
  • سم ثلاث طرق لتخفيض تحميل الصفحة؟
  • لو دخلت الى مشروع و هم يستخدمون tabs وانت تستخدم spaecs, فماذا ستفعل؟
  • اشرح كيف تنشئ صفحة عرض شرائح.
  • لو كنت ستحترف تقنية واحده هذه السنه ماذا ستكون؟
  • اشرح اهمية standards و standards bodies.
  • ماهو Flash of Unstyled Content ؟وكيف تتفاداه
  • اشرح ما هو ARIA و screenreaders, وكيف تنشئ موقع accessible؟
  • اشرح الإيجابيات و السلبيات CSS animations مقابل JavaScript animations.
  • ماذا CORS يرمز الى ,و ماهي المشكلة التي يعالجها؟

أسئلة HTML:

  • ماذا تفعل doctype؟
  • ماهو الفرق بين full standards mode, almost standards mode و quirks mode؟
  • ماهو الفرق بين HTML و XHTML؟
  • هل هناك مشكلة في استضافة صفحاتapplication/xhtml+xml؟
  • كيف تستضيف صفحه بمحتوى متعدد اللغات؟
  • ماهي الاشياء التي يجب ان تحترس منها عند تصميم او تطور موقع متعدد اللغات؟
  • ماهي فائدة -data؟
  • اعتبر HTML5 منصة مفتوحة على شبكة الإنترنت ماهي أسس بناء HTML5؟
  • اشرح الفرق بين cookie, sessionStorage و localStorage.
  • اشرح الفرق بين <script>, <script async> و <script defer>.
  • لماذا من الأفضل وضع سي اس اس <link> بين <head></head> و جافاسكربت <script> قبل <body/>؟
  • ماهو progressive rendering؟
  • هل استخدمت HTML templating languages مختلفة من قبل؟

أسئلة CSS:

  • ما الفرق بين class و id في CSS؟
  • ما الفرق بين "resetting" و "normalizing" في CSS؟ واي منهم ستختار, ولماذا؟
  • اشرح Floats, و كيف تعمل؟
  • اشرح z-index, و كيف stacking context شُكلت؟
  • اشرح (BFC(Block Formatting Context, و كيف تعمل؟
  • ماهي clearing techniques المختلفه و اي منها مناسب لأي سياق؟
  • اشرح CSS sprites, وكيف سوف تنفذعم في صفحه او موقع؟
  • ما هي طرق تبديل الصور "image replacement" المفضلة لديك و متى تسخدم اي منها؟
  • كيف تصلح مشكلة تنسيق في متصفح معين؟
  • كيف تجعل صفحاتك تعمل على متصفحات مقيدة بالميزات "قديمة"؟
    • ما هي الطرق/العمليات التي تستخدمها؟
  • ماهي الطرق المختلفة لكي تخفي المحتوى وتجعله فقط متوفر لقارء الشاشه فقط؟
  • هل استخدمت نظام grid من قبل, و لو كان كذكلك ماذا تفضل؟
  • هل استخدمت media queries او تنسيق محدد للهاتف؟
  • هل انت معتاد مع تصميم SVG؟
  • كيف تحسن صفحاتك لطٌباعة؟
  • ماهي بعض المعوقات في كتابة CSS جيد؟
  • ماهي الايجابيات/السلبيات في استخدام CSS preprocessors؟
    • اوصف ماذا يعجبك وما لايعجبك حول استخدام CSS preprocessors؟
  • كيف كيف لك تنفيذ web design comp باستخدام خطوط ليست أساسية؟
  • اشرح كيف يتسطيع المتصفح تحديد أي عنصر ينتمي إلى أي CSS selector.
  • اوصف pseudo-elements و ناقش في ماذا يستخدمون؟
  • اشرح ماهو box model و كيف ستخبر المتصفح تنسيق في box models مختلفة باستخدام CSS.
  • ماذا { ;box-sizing: border-box } * يفعل, وماهي ايجابياته؟
  • عدد كل قيم خاصية display التي تتذكرها.
  • ما هو الفرق بين inline و inline-block؟
  • ماهو الفرق بين قيم relative, fixed, absolute و statically في خاصية position؟
  • الحرف "C" في CSS يرمز الى Cascading. كيف تحدد الافضلية في تعيين التصميم , وكيف لك أن تستفيد من هذه الخاصية؟
  • أي من إطارات العمل CSS استخدمت في الانتاج أو محليا على جهازك, وكيف لك تغييرهم/تطورهم؟
  • هل جربت او استعملت قليلا CSS Flexbox او Grid؟
  • كيف يكون responsive design مختلفا عن adaptive design
  • هل عملت من قبل مع retina graphics, ولو كان كذلك متى و ماهي الطرق التي استعملتها؟
  • هل هناك سبب يجعلك من الممكن أن تستعمل ()translate بدلا من absolute positioning او vice-versa؟ ولماذا.

أسئلة JS:

  • اشرح event delegation.
  • اشرح كيف this تعمل في JavaScript.
  • اشرح كيف تعمل prototypal inheritance.
  • ما رأيك في AMD vs CommonJS؟
  • اشرح لماذا التالي ;(){ }{}function foo لا يعمل كـ IIFE؟
    • ما الذي يحتاجه من تصحيح لجعل IIFE بصوره صحيحة؟
  • ما الفرق بين المتغيرات: null, undefined، undeclared؟
    • ما الذي ستفعله لتتحقق من أي من هذه الحالات؟
  • ما هو closure وكيف/لماذا ستستخدم واحدًا؟
  • ما هي حالة الاستخدام الاعتيادية لـ anonymous functions؟
  • كيف تنظم برمجياتك؟ (module pattern, classical inheritance)؟
  • ما الفرق بين host objects و native objects؟
  • القرق بين {} ()function Person, ()var person = Person()var person = new Person؟
  • ما الفرق بين call.و apply.؟
  • اشرح Function.prototype.bind.
  • متى تستخدم ()document.write؟
  • ما الفرق بين feature detection, feature inference , واستخدام الـ UA string؟
  • اشرح Ajax في أكبر قدر من التفاصيل .
  • ما هي المزايا والعيوب في استخدام Ajax ؟
  • اشرح كيف JSONP يعمل (وكيف أنها ليست حقا Ajax ).
  • هل سبق لك استخدام JavaScript templating؟
    • لو كان كذلك أي مكتبة استخدمت؟
  • اشرح "hoisting".
  • اوصف event bubbling.
  • ما الفرق بين "attribute" و "property"؟
  • لماذا extending built-in JavaScript objects فكرة سيئة؟
  • ما هو الفرق بين document load event و document DOMContentLoaded event؟
  • ما هو الفرق بين == و ===؟
  • اشرح سياسة same-origin فيما يتعلق بجافاسكربت.
  • اجعل هذا يعمل:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • لماذا "Ternary" سميت هكذا ,و ماذا تشير كلمة Ternary expression إلى؟
  • ماهو ;"use strict", وما هي إبجبايات و سلبيات استخدامه؟
  • اكتب for loop تكرر حتى 100 و تطبع "fizz" في مضاعفات 3 , و "buzz" في مضاعفات 5 و "fizzbuzz" في مضاعفات 5 و3.
  • لماذا بشكل عام ترك global scope للموقع كما هو و عدم لمسه فكرة جيدة
  • لماذا من الممكن تستخدم شي مثل load event, وهل هذا الـevent يملك سلبيات؟ وهل تعرف بدائل.و لماذا من الممكن ان تستخدمهم
  • اشرح ما هو single page app و كيفية صنع SEO-friendly.
  • ما مدى خبرتك في استعمال Promises و/او polyfills خاصتهم؟
  • ماهي بعض المزايا و العيوب في استخدام Promises بدلا من callbacks؟
  • ماهي بعض الاجابيات و السلبيات في كتابتة جافاسكرت كود في لغة يحدث لها compiles إلى جافاسكربت؟
  • ماهي الادوات و الطرق التي تستخدمها في البحث و التصحيح عن أخطاءك في الجافاسكربت كود؟
  • ماهي language constructions تستعمل لتكرار على خواص object و عناصر array؟
    • اشرح الفرق بين mutable و immutable objects.
    • ماذا يعتبر في الجافاسكربت لـ immutable object؟
    • ماهي الايجابيات و السلبيات الـ immutability؟
    • كيف يمكنك تحقيق immutability في الكود الخاص بك؟
  • اشرح الفرق بين synchronous و asynchronous functions.
  • ماهو event loop؟
    • ما هو الفرق بين call stack و task queue؟
  • اشرح الفرق في استخدام foo بين {} ()function foo و {} ()var foo = function.

أسئلة اختبار البرمجيات Testing:

  • ما هي المزايا والعيوب لاختبار برمجياتك؟
  • ما الأدوات التي تستخدمهافي اختبار وظائف برمجياتك؟
  • ما الفرق بين اختبار unit واختبار functional/integration؟
  • ما الغرض من code style linting tool؟

أسئلة أداء البرمجيات Performance:

  • ما الأدوات التي تستخدمها لإيجاد مشاكل في الأداء؟
  • ما هي الطرق التي من الممكن تحسن أداءالـ scrolling في موقعك؟
  • اشرح الفرق بين layout و painting و compositing.

أسئلة شبكات Network:

  • في العادة لماذا من الأفضل أن ترفع site assets من domains متعدده؟
  • افعل ما بوسعك لشرح ما يحدث من بداية كتابك عنوان الموقع الى انتهاء تحميله على شاشتك.
  • ما الفرق بين Long-Polling و Websockets و Server-Sent Events؟
  • اشرح request and response headers التاليه:
    • الفرق بين If-Modified-... , Expires, Date, Age
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • ما هي HTTP methods؟ و عدد كل HTTP methods التي تعرفها، واشرحها.

أسئلة برمجة:

سؤال: ماهي قيمة foo؟

var foo = 10 + '20';

سؤال: كيف يمكن جعل هذا الكود يعمل؟

add(2, 5); // 7
add(2)(5); // 7

سؤال: ماهي القيمة العائدة من الكود التالي؟

"i'm a lasagna hog".split("").reverse().join("");

سؤال: ماهي قيمة window.foo؟

( window.foo || ( window.foo = "bar" ) );

سؤال: ماهو ناتج التنبيهات التالية؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سؤال: ماهي قيمة foo.length؟

var foo = [];
foo.push(1);
foo.push(2);

سؤال: ماهي قيمة foo.x؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سؤال: ماذا يطبع الكود التالي؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

أسئلة مسلية:

  • ماذا عملت من مشروع رائع مؤخرا؟
  • ما هي الاشياء التي أعجبتك في أدوات التطوير التي تستعملها؟
  • من الذي يلهمك في مجتمع تطوير واجهة الويب؟
  • هل لديك اي من المشاريع الصغيرة؟ ما نوعها؟
  • ما هي الميزة المفضلة لديك في Internet Explorer؟
  • كيف تحب قهوتك؟

المساهمون:

بدأت هذه الوثيقة في عام 2009 بتعاون @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

ومنذ ذلك الحين تلقى مساهمات من أكثر من 100 مطور.

\ No newline at end of file +أسئلة مقابله شخصية في تطوير واجهةالويب ★ Front-end Job Interview Questions

أسئلة مقابله شخصية في تطوير واجهةالويب

أسئلة مقابله شخصية في تطوير واجهةالويب

هذا الملف يحتوي على عدد من أسئلة مقابلة شخصية في تطوير واجهة الويب التي من الممكن ان تساعدك في فحص المرشحين المحتملين للوظيفة.
لا ينصح باستخدام كل الأسئلة هنا على مرشح واحد, فاختيار بعض من الأسئلة سيساعدك في تحديد من يمتلك المهارات المتوافقه مع متطلباتك.

ملاحظة: كثير من هذه الأسئلة ليس لها إجابات محددة مما قد يؤدي الى نقاش مثير للاهتمام , و يعرفك على قدرات الشخص أكثر مما تتوقع من اجابة محدده.

قائمة المحتوى

  1. أسئلة عامة
  2. أسئلة HTML
  3. أسئلة CSS
  4. أسئلة JS
  5. أسئلة اختبار البرمجيات Testing
  6. أسئلة أداء البرمجيات Performance
  7. أسئلة شبكات Network
  8. أسئلة برمجة
  9. أسئلة مسلية

الدخول و المساهمة

  1. المساهمون
  2. كيف تساهم
  3. الرخصة

أسئلة عامة:

  • ماذا تعلمت بالأمس/هذا الأسبوع؟
  • ماذا يهمك ويثير اهتمامك في البرمجة؟
  • ماهو اخر تحدي تقني واجهته ,و كيف استطعت إصلاحه؟
  • اي من واجهة المستخدم, الامان, الاداء, قابلية الصيانه, SEO, او اي تقنية تضعها في الحسبان عند بناء تطبيق ويب او موقع؟
  • تكلم عن بيئة التطوير المفضلة لديك.
  • ماهو إصدار نظام التحكم المعتاد عليه؟
  • هل تستطيع وصف روتين عملك عند إنشاء صفحة ويب؟
  • لو كان لديك خمسة stylesheets مختلفة كيف لك دمجها في الموقع بأفضل طريقة؟
  • هل تستطيع شرح الفرق بين progressive enhancement و graceful degradation؟
  • كيف يمكنك تحسين assets/resources الموقع؟
  • كم عدد المصادر التي يحملها الموقع من domain في وقت واحد؟
    • ماهي الاستثناءت؟
  • سم ثلاث طرق لتخفيض تحميل الصفحة؟
  • لو دخلت الى مشروع و هم يستخدمون tabs وانت تستخدم spaecs, فماذا ستفعل؟
  • اشرح كيف تنشئ صفحة عرض شرائح.
  • لو كنت ستحترف تقنية واحده هذه السنه ماذا ستكون؟
  • اشرح اهمية standards و standards bodies.
  • ماهو Flash of Unstyled Content ؟وكيف تتفاداه
  • اشرح ما هو ARIA و screenreaders, وكيف تنشئ موقع accessible؟
  • اشرح الإيجابيات و السلبيات CSS animations مقابل JavaScript animations.
  • ماذا CORS يرمز الى ,و ماهي المشكلة التي يعالجها؟

أسئلة HTML:

  • ماذا تفعل doctype؟
  • ماهو الفرق بين full standards mode, almost standards mode و quirks mode؟
  • ماهو الفرق بين HTML و XHTML؟
  • هل هناك مشكلة في استضافة صفحاتapplication/xhtml+xml؟
  • كيف تستضيف صفحه بمحتوى متعدد اللغات؟
  • ماهي الاشياء التي يجب ان تحترس منها عند تصميم او تطور موقع متعدد اللغات؟
  • ماهي فائدة -data؟
  • اعتبر HTML5 منصة مفتوحة على شبكة الإنترنت ماهي أسس بناء HTML5؟
  • اشرح الفرق بين cookie, sessionStorage و localStorage.
  • اشرح الفرق بين <script>, <script async> و <script defer>.
  • لماذا من الأفضل وضع سي اس اس <link> بين <head></head> و جافاسكربت <script> قبل <body/>؟
  • ماهو progressive rendering؟
  • هل استخدمت HTML templating languages مختلفة من قبل؟

أسئلة CSS:

  • ما الفرق بين class و id في CSS؟
  • ما الفرق بين "resetting" و "normalizing" في CSS؟ واي منهم ستختار, ولماذا؟
  • اشرح Floats, و كيف تعمل؟
  • اشرح z-index, و كيف stacking context شُكلت؟
  • اشرح (BFC(Block Formatting Context, و كيف تعمل؟
  • ماهي clearing techniques المختلفه و اي منها مناسب لأي سياق؟
  • اشرح CSS sprites, وكيف سوف تنفذعم في صفحه او موقع؟
  • ما هي طرق تبديل الصور "image replacement" المفضلة لديك و متى تسخدم اي منها؟
  • كيف تصلح مشكلة تنسيق في متصفح معين؟
  • كيف تجعل صفحاتك تعمل على متصفحات مقيدة بالميزات "قديمة"؟
    • ما هي الطرق/العمليات التي تستخدمها؟
  • ماهي الطرق المختلفة لكي تخفي المحتوى وتجعله فقط متوفر لقارء الشاشه فقط؟
  • هل استخدمت نظام grid من قبل, و لو كان كذكلك ماذا تفضل؟
  • هل استخدمت media queries او تنسيق محدد للهاتف؟
  • هل انت معتاد مع تصميم SVG؟
  • كيف تحسن صفحاتك لطٌباعة؟
  • ماهي بعض المعوقات في كتابة CSS جيد؟
  • ماهي الايجابيات/السلبيات في استخدام CSS preprocessors؟
    • اوصف ماذا يعجبك وما لايعجبك حول استخدام CSS preprocessors؟
  • كيف كيف لك تنفيذ web design comp باستخدام خطوط ليست أساسية؟
  • اشرح كيف يتسطيع المتصفح تحديد أي عنصر ينتمي إلى أي CSS selector.
  • اوصف pseudo-elements و ناقش في ماذا يستخدمون؟
  • اشرح ماهو box model و كيف ستخبر المتصفح تنسيق في box models مختلفة باستخدام CSS.
  • ماذا { ;box-sizing: border-box } * يفعل, وماهي ايجابياته؟
  • عدد كل قيم خاصية display التي تتذكرها.
  • ما هو الفرق بين inline و inline-block؟
  • ماهو الفرق بين قيم relative, fixed, absolute و statically في خاصية position؟
  • الحرف "C" في CSS يرمز الى Cascading. كيف تحدد الافضلية في تعيين التصميم , وكيف لك أن تستفيد من هذه الخاصية؟
  • أي من إطارات العمل CSS استخدمت في الانتاج أو محليا على جهازك, وكيف لك تغييرهم/تطورهم؟
  • هل جربت او استعملت قليلا CSS Flexbox او Grid؟
  • كيف يكون responsive design مختلفا عن adaptive design
  • هل عملت من قبل مع retina graphics, ولو كان كذلك متى و ماهي الطرق التي استعملتها؟
  • هل هناك سبب يجعلك من الممكن أن تستعمل ()translate بدلا من absolute positioning او vice-versa؟ ولماذا.

أسئلة JS:

  • اشرح event delegation.
  • اشرح كيف this تعمل في JavaScript.
  • اشرح كيف تعمل prototypal inheritance.
  • ما رأيك في AMD vs CommonJS؟
  • اشرح لماذا التالي ;(){ }{}function foo لا يعمل كـ IIFE؟
    • ما الذي يحتاجه من تصحيح لجعل IIFE بصوره صحيحة؟
  • ما الفرق بين المتغيرات: null, undefined، undeclared؟
    • ما الذي ستفعله لتتحقق من أي من هذه الحالات؟
  • ما هو closure وكيف/لماذا ستستخدم واحدًا؟
  • ما هي حالة الاستخدام الاعتيادية لـ anonymous functions؟
  • كيف تنظم برمجياتك؟ (module pattern, classical inheritance)؟
  • ما الفرق بين host objects و native objects؟
  • القرق بين {} ()function Person, ()var person = Person()var person = new Person؟
  • ما الفرق بين call.و apply.؟
  • اشرح Function.prototype.bind.
  • متى تستخدم ()document.write؟
  • ما الفرق بين feature detection, feature inference , واستخدام الـ UA string؟
  • اشرح Ajax في أكبر قدر من التفاصيل .
  • ما هي المزايا والعيوب في استخدام Ajax ؟
  • اشرح كيف JSONP يعمل (وكيف أنها ليست حقا Ajax ).
  • هل سبق لك استخدام JavaScript templating؟
    • لو كان كذلك أي مكتبة استخدمت؟
  • اشرح "hoisting".
  • اوصف event bubbling.
  • ما الفرق بين "attribute" و "property"؟
  • لماذا extending built-in JavaScript objects فكرة سيئة؟
  • ما هو الفرق بين document load event و document DOMContentLoaded event؟
  • ما هو الفرق بين == و ===؟
  • اشرح سياسة same-origin فيما يتعلق بجافاسكربت.
  • اجعل هذا يعمل:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • لماذا "Ternary" سميت هكذا ,و ماذا تشير كلمة Ternary expression إلى؟
  • ماهو ;"use strict", وما هي إبجبايات و سلبيات استخدامه؟
  • اكتب for loop تكرر حتى 100 و تطبع "fizz" في مضاعفات 3 , و "buzz" في مضاعفات 5 و "fizzbuzz" في مضاعفات 5 و3.
  • لماذا بشكل عام ترك global scope للموقع كما هو و عدم لمسه فكرة جيدة
  • لماذا من الممكن تستخدم شي مثل load event, وهل هذا الـevent يملك سلبيات؟ وهل تعرف بدائل.و لماذا من الممكن ان تستخدمهم
  • اشرح ما هو single page app و كيفية صنع SEO-friendly.
  • ما مدى خبرتك في استعمال Promises و/او polyfills خاصتهم؟
  • ماهي بعض المزايا و العيوب في استخدام Promises بدلا من callbacks؟
  • ماهي بعض الاجابيات و السلبيات في كتابتة جافاسكرت كود في لغة يحدث لها compiles إلى جافاسكربت؟
  • ماهي الادوات و الطرق التي تستخدمها في البحث و التصحيح عن أخطاءك في الجافاسكربت كود؟
  • ماهي language constructions تستعمل لتكرار على خواص object و عناصر array؟
    • اشرح الفرق بين mutable و immutable objects.
    • ماذا يعتبر في الجافاسكربت لـ immutable object؟
    • ماهي الايجابيات و السلبيات الـ immutability؟
    • كيف يمكنك تحقيق immutability في الكود الخاص بك؟
  • اشرح الفرق بين synchronous و asynchronous functions.
  • ماهو event loop؟
    • ما هو الفرق بين call stack و task queue؟
  • اشرح الفرق في استخدام foo بين {} ()function foo و {} ()var foo = function.

أسئلة اختبار البرمجيات Testing:

  • ما هي المزايا والعيوب لاختبار برمجياتك؟
  • ما الأدوات التي تستخدمهافي اختبار وظائف برمجياتك؟
  • ما الفرق بين اختبار unit واختبار functional/integration؟
  • ما الغرض من code style linting tool؟

أسئلة أداء البرمجيات Performance:

  • ما الأدوات التي تستخدمها لإيجاد مشاكل في الأداء؟
  • ما هي الطرق التي من الممكن تحسن أداءالـ scrolling في موقعك؟
  • اشرح الفرق بين layout و painting و compositing.

أسئلة شبكات Network:

  • في العادة لماذا من الأفضل أن ترفع site assets من domains متعدده؟
  • افعل ما بوسعك لشرح ما يحدث من بداية كتابك عنوان الموقع الى انتهاء تحميله على شاشتك.
  • ما الفرق بين Long-Polling و Websockets و Server-Sent Events؟
  • اشرح request and response headers التاليه:
    • الفرق بين If-Modified-... , Expires, Date, Age
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • ما هي HTTP methods؟ و عدد كل HTTP methods التي تعرفها، واشرحها.

أسئلة برمجة:

سؤال: ماهي قيمة foo؟

var foo = 10 + '20';

سؤال: كيف يمكن جعل هذا الكود يعمل؟

add(2, 5); // 7
add(2)(5); // 7

سؤال: ماهي القيمة العائدة من الكود التالي؟

"i'm a lasagna hog".split("").reverse().join("");

سؤال: ماهي قيمة window.foo؟

( window.foo || ( window.foo = "bar" ) );

سؤال: ماهو ناتج التنبيهات التالية؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سؤال: ماهي قيمة foo.length؟

var foo = [];
foo.push(1);
foo.push(2);

سؤال: ماهي قيمة foo.x؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سؤال: ماذا يطبع الكود التالي؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

أسئلة مسلية:

  • ماذا عملت من مشروع رائع مؤخرا؟
  • ما هي الاشياء التي أعجبتك في أدوات التطوير التي تستعملها؟
  • من الذي يلهمك في مجتمع تطوير واجهة الويب؟
  • هل لديك اي من المشاريع الصغيرة؟ ما نوعها؟
  • ما هي الميزة المفضلة لديك في Internet Explorer؟
  • كيف تحب قهوتك؟

المساهمون:

بدأت هذه الوثيقة في عام 2009 بتعاون @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

ومنذ ذلك الحين تلقى مساهمات من أكثر من 100 مطور.

\ No newline at end of file diff --git a/_site/translations/bulgarian/index.html b/_site/translations/bulgarian/index.html index b43dfbae1..6ffbd25c9 100644 --- a/_site/translations/bulgarian/index.html +++ b/_site/translations/bulgarian/index.html @@ -1 +1 @@ -Въпроси за интервю за front-end разработчици ★ Front-end Job Interview Questions

Въпроси за интервю за front-end разработчици

Въпроси за интервю за front-end разработчици

Това репозитори съдържа въпроси от интервюта на front-end разработчици, които могат да бъдат използвани за отсяване на потенциални кандидати. Не препоръчваме използването на всеки въпрос за всеки кандидат (това би отнело часове). Избирането на няколко въпроса от списъка би могло да помогне да се проверят търсените умения у кандидатите.

Статията Baseline For Front-End Developers на Rebecca Murphey също е чудесен ресурс за четене преди провеждането на интервю.

Бележка: Имайте предвид, че много от тези въпроси могат да породят интересни дискусии и да ви помогнат по-добре да проверите познанията и начина на мислене на кандидата, отколкото ако получавате директен отговор.

Съдържание

  1. Участници в проекта
  2. Общи въпроси
  3. HTML въпроси
  4. CSS въпроси
  5. JS въпроси
  6. jQuery въпроси
  7. Въпроси, свързани с тестване
  8. Въпроси, свързани с бързодействие
  9. Мрежови въпроси
  10. Въпроси, свързани с програмиране
  11. Забавни въпроси
  12. Допълнителни ресурси

[⬆] Участници в проекта:

Мнозинството от въпроси са взети от oksoclap измислени от Paul Irish (@paul_irish) и благодарение на:

[⬆] Общи въпроси:

  • Какво научихте вчера / тази седмица?
  • Какво ви привлича в писането на код?
  • С какво техническо предизвикателство се сблъскахте наскоро и как го решихте?
  • Какво свързва потребителския интерфейс, сигурността, функционирането, SEO, поддръжката или технологиите по между им при създаването на уеб приложения или сайтове?
  • Разкажете за предпочитанията ви към операционни системи, редактори, браузъри, инструменти и т.н.
  • С кои системи за управление на версиите (source control) сте запознати?
  • Можете ли да обясните последователността от действия, които извършвате, когато създавате уеб страници?
  • Ако имате 5 различни стилови файла, как бихте ги интегрирали?
  • Можете ли да обясните разликите между progressive enhancement и graceful degradation?
  • Как бихте оптимизирали зареждането на ресурси за дадена уеб страница?
  • По колко ресурса едновременно свалят браузърите от даден домейн?
    • Какви са изключенията?
  • Назовете 3 начина да намалите скоростта на зареждане на уеб страница (забележимата или реалната скорост на зареждане).
  • Ако започнете работа по проект, в чийто код са използвани табулации, а вие сте използвали интервали, какво ще направите?
  • Обяснете как бихте изградили страница със слайд-шоу.
  • Ако можете да научите много добре 1 технология тази година, каква ще е тя?
  • Обяснете важността на стандартите и организациите за стандартизация.
  • Какво е Flash of unstyled content? Как се справяте с FOUC?
  • Обяснете какво е ARIA и екранни четци и как да правим сайтовете по-достъпни.
  • Обяснете предимствата и недостатъците на CSS анимациите пред тези на JavaScript.
  • Какво означава CORS и какъв проблем решава?

[⬆] HTML въпроси:

  • Какво прави doctype?
  • Каква е разликата между режимите “standards mode”, “almost standards mode” и “quirks mode”?
  • Каква е разликата между HTML и XHTML?
  • Има ли проблеми при обработката на страници с application/xhtml+xml?
  • Как показвате страници със съдържание на няколко езика?
  • Какви неща трябва да се имат предвид, когато правите дизайн или разработвате многоезични страници?
  • За какво служат HTML атрибутите, които започват с data-?
  • Представете си HTML5 като отворена уеб платформа. Кои са градивните елементи на HTML5?
  • Обяснете разликата между бисквитки, sessionStorage и localStorage.
  • Обяснете разликата <script>, <script async> и <script defer>.
  • Защо е добре да се зарежда CSS <link> в елемента <head></head> и JS <script> преди затварящия таг </body>? Знаете ли за изключения?
  • Какво означава progressive rendering?
  • Защо бихте използвали srcset атрибут в <img> таг? Обяснете процеса, през който минава браузърът, когато обработва съдържанието на този атрибут.
  • Използвали ли сте различни шаблонни HTML езици?

[⬆] CSS въпроси:

  • Каква е разликата между class и ID в CSS?
  • Каква е разликата между “resetting” и “normalizing” в CSS? Кое бихте избрали и защо?
  • Обяснете плаващите елементи (floats) и как работят.
  • Обяснете z-index и как се формира наслагването на елементите.
  • Опишете BFC (Block Formatting Context) и как работи той.
  • Кои са различните clearing техники и кои в какъв контекст се използват?
  • Обяснете CSS sprite-овете, и как можете да ги вкарате на уеб страница или сайт.
  • Кои са любимите ви техники, които заменят картинките и в кои случаи кои от тях използвате?
  • Как бихте подходили за да решите специфичните стилове за различните браузъри?
  • Как показвате страниците си на браузъри, които не поддържат част от възможностите на HTML5?
    • Какви техники/процеси използвате?
  • Какви са различните начини визуално да скриете съдържание от уеб страницата (и да го направите видимо само за екранните четци)?
  • Използвали ли сте грид система и ако да, коя предпочитате?
  • Използвали ли сте media queries или специфичен за мобилните платформи layouts или CSS?
  • Запознати ли сте със стилизирането на SVG?
  • Как оптимизирате вашите уеб страници за принтиране?
  • Кои са някои от “триковете” за писане на ефективен CSS?
  • Какви са предимствата/недостатъците при използване на препроцесори?
    • Опишете какво ви харесва и не ви харесва при използването им.
  • Как реализирате уеб дизайни, които използват нестандартни фонтове?
  • Обяснете как уеб браузърите разбират кои елементи отговарят на даден CSS селектор.
  • Опишете псевдо-елементите и обяснете за какво се използват.
  • Обяснете как разбирате box model и как бихте накарали браузъра с CSS да изпълни layout в различни box model-и.
  • Какво прави * { box-sizing: border-box; }? Какви са предимствата му?
  • Направете списък на всички стойности на display, за които можете да се сетите.
  • Каква е разликата между inline и inline-block?
  • Каква е разликата между позиционирането на елементите relative, fixed, absolute и static?
  • ‘C’ в CSS идва от Cascading. Какъв приоритет имат стиловете при наслагването им (няколко примера)? Как бихте използвали това?
  • Какви CSS frameworks сте ползвали самостоятелно или в проекти? Как бихте ги променили / обогатили?
  • Тествали ли сте новия CSS Flexbox или Grid specs?
  • Каква е разликата между responsive design и adaptive design на сайт?
  • Работили ли сте с retina graphics? Ако да, какви техники използвахте?
  • Има ли причина да ползвате translate() вместо абсолютно позициониране и обратно? Защо?

[⬆] JS въпроси:

  • Обяснете event delegation.
  • Обяснете как работи this в JavaScript.
  • Обяснете как работи наследяването на прототипи (prototypal inheritance).
  • AMD или CommonJS?
  • Обяснете защо този код не работи като IIFE: function foo(){ }();.
    • Какво е нужно да се промени, за да може кодът да работи като IIFE?
  • Каква е разликата между променлива, която е: null, undefined или недекларирана?
    • Как проверявате всяко от тези състояния на променливите?
  • Какво е closure? Как и защо се използва?
  • Кога се използват анонимните функции?
  • Как организирате своя код? (module патърн, класическо наследяване?)
  • Каква е разликата между host обекти и native обекти?
  • Каква е разликата между function Person(){}, var person = Person() и var person = new Person()?
  • Каква е разликата между .call и .apply?
  • Обяснете Function.prototype.bind?
  • В какви случаи бихте използвали document.write()?
  • Каква е разликата между feature detection, feature inference, и използването на user agent (UA) string?
  • Обяснете AJAX в детайли.
  • Какви са предимствата и недостатъците при употребата на AJAX?
  • Обяснете как работи JSONP (и защо не е точно AJAX).
  • Използвали ли сте JavaScript темплейти?
    • Ако да, коя библиотека сте използвали?
  • Обяснете “hoisting”.
  • Обяснете “event bubbling”.
  • Каква е разликата между “attribute” и “property”?
  • Защо extending built-in в JavaScript обектите не е добра идея?
  • Каква е разликата между събитията “document load” и “document DOMContentLoaded”?
  • Каква е разликата между == и ===?
  • Обяснете same-origin policy от гледна точка на JavaScript.
  • Оправете кода, така че да работи:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Защо тернарният оператор се нарича така? Какво означава думата “тернарен”?
  • Какво е "use strict";? Какви са предимствата и недостатъците на ползването му в кода?
  • Напишете for loop, който стига до 100 и извежда “fizz” за всички числа, които се делят на 3, “buzz” за тези, които се делят 5 и “fizzbuzz” за числата, които се делят и на 3 и на 5.
  • Защо по правило е добра идея да се остави global scope на един уебсайт непроменен?
  • Защо бихте използвали нещо като load събитието? Това събитие има ли недостатъци? Знаете ли алтернативи и защо бихте ги използвали?
  • Обяснете какво е single page app и как може да се оптимизира за търсачките.
  • Докъде се простира опитът ви с Promises и / или техните polyfills?
  • Какви са предимствата и недостатъците при използване на Promises вместо callbacks?
  • Кои са някои предимства / недостатъци на писането на JavaScript код на език, който се компилира до JavaScript?
  • Какви инструменти и техники използвате, когато дебъгвате JavaScript код?
  • Кои конструкции на езика използвате, за да итерирате атрибути (properties) на обекти и елементи в масиви?
  • Обяснете разликата между mutable и immutable обекти.
    • Дайте пример за immutable обект в JavaScript.
    • Какви са предимствата и недостатъците на това един обект да бъде immutable?
    • Как може да направите обект immutablе във Вашия собствен код?
  • Обяснете разликата между синхронни и асинхронни функции.
  • Какво е event loop?
    • Каква е разликата между call stack и task queue?
  • Обяснете разликите при използването на foo в примерите: function foo() {}; var foo = function() {}
  • Какви са разликите при създаавнето на променливи с let, var и const?

[⬆] jQuery въпроси:

  • Обяснете “chaining”.
  • Обяснете “deferreds”.
  • Какви специфични за jQuery оптимизации, можете да направите?
  • Какво прави .end()?
  • Как и защо бихте сложили bound event handler в namespace?
  • Назовете 4 различни типа стойности, които можете да подадете на jQuery метод.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object и т. н.
  • Какво е effects (или fx) queue?
  • Каква е разликата между .get(), [], и .eq()?
  • Каква е разликата между .bind(), .live(), и .delegate()?
  • Каква е разликата между $ и $.fn? Или просто: Какво е $.fn?
  • Оптимизирайте този селектор:
$(".foo div#bar:eq(0)")

[⬆] Въпроси, свързани с тестване:

  • Какви са предимствата и недостатъците в тестването на код?
  • Какви инструменти бихте могли да използвате, за да тествате как работи Вашия код?
  • Каква е разликата между компонентен тест (unit test) и функционален / интеграционен тест (functional / integration test)?
  • Каква е целта на инструментите за анализиране на кода (linting tools)?

[⬆] Въпроси, свързани с бързодействие:

  • Какви инструменти бихте използвали, за да откриете проблем, свързан с бързодействието на кода?
  • Дайте примери за начини, по които може да подобрите бързодействието на скролирането в сайт.
  • Обяснете разликата между layout, painting и compositing.

[⬆] Мрежови въпроси:

  • Защо по традиция е препоръчително да се зареждат ресурсите за даден уебсайт от няколко домейна?
  • Опишете по най-добрия възможен начин процесът, който се случва от написването на URL-a на един уебсайт до края на зарежаднето му на екрана.
  • Какви са разликите между Long-Polling, Websockets и Server-Sent Events?
  • Обяснете следните хедъри на request и response:
    • Разлики между Expires, Date, Age и If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Какво представляват HTTP методите? Избройте всички HTTP методи, които познавате, и ги обяснете.

[⬆] Въпроси, свързани с програмиране:

modulo(12, 5) // 2

Въпрос: Имплементирайте функция за намиране на остатък от деление която отговаря на горното условие (да връща 2 при аргументи 12 и 5)

"i'm a lasagna hog".split("").reverse().join("");

Въпрос: Каква стойност ще върне горният израз?

Отговор: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Въпрос: Каква е стойността на window.foo?

Отговор: “bar”, ако window.foo има стойност false, иначе стойността на window.foo)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Въпрос: Какво ще изкарат двете alert функции от горния код?

Отговор: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Въпрос: Каква е стойността на foo.length?

Отговор: 2

[⬆] Забавни въпроси:

  • Кое е най-якото нещо, което сте писали и от което сте най-горд?
  • Кое най-много ви допада в инструментите за разработчици, които използвате?
  • Разработвате ли някакви проекти като хоби? Какви?
  • Какво най-много ви харесва в Internet Explorer?
  • Как предпочитате кафето си?

####[⬆] Допълнителни ресурси:

\ No newline at end of file +Въпроси за интервю за front-end разработчици ★ Front-end Job Interview Questions

Въпроси за интервю за front-end разработчици

Въпроси за интервю за front-end разработчици

Това репозитори съдържа въпроси от интервюта на front-end разработчици, които могат да бъдат използвани за отсяване на потенциални кандидати. Не препоръчваме използването на всеки въпрос за всеки кандидат (това би отнело часове). Избирането на няколко въпроса от списъка би могло да помогне да се проверят търсените умения у кандидатите.

Статията Baseline For Front-End Developers на Rebecca Murphey също е чудесен ресурс за четене преди провеждането на интервю.

Бележка: Имайте предвид, че много от тези въпроси могат да породят интересни дискусии и да ви помогнат по-добре да проверите познанията и начина на мислене на кандидата, отколкото ако получавате директен отговор.

Съдържание

  1. Участници в проекта
  2. Общи въпроси
  3. HTML въпроси
  4. CSS въпроси
  5. JS въпроси
  6. jQuery въпроси
  7. Въпроси, свързани с тестване
  8. Въпроси, свързани с бързодействие
  9. Мрежови въпроси
  10. Въпроси, свързани с програмиране
  11. Забавни въпроси
  12. Допълнителни ресурси

[⬆] Участници в проекта:

Мнозинството от въпроси са взети от oksoclap измислени от Paul Irish (@paul_irish) и благодарение на:

[⬆] Общи въпроси:

  • Какво научихте вчера / тази седмица?
  • Какво ви привлича в писането на код?
  • С какво техническо предизвикателство се сблъскахте наскоро и как го решихте?
  • Какво свързва потребителския интерфейс, сигурността, функционирането, SEO, поддръжката или технологиите по между им при създаването на уеб приложения или сайтове?
  • Разкажете за предпочитанията ви към операционни системи, редактори, браузъри, инструменти и т.н.
  • С кои системи за управление на версиите (source control) сте запознати?
  • Можете ли да обясните последователността от действия, които извършвате, когато създавате уеб страници?
  • Ако имате 5 различни стилови файла, как бихте ги интегрирали?
  • Можете ли да обясните разликите между progressive enhancement и graceful degradation?
  • Как бихте оптимизирали зареждането на ресурси за дадена уеб страница?
  • По колко ресурса едновременно свалят браузърите от даден домейн?
    • Какви са изключенията?
  • Назовете 3 начина да намалите скоростта на зареждане на уеб страница (забележимата или реалната скорост на зареждане).
  • Ако започнете работа по проект, в чийто код са използвани табулации, а вие сте използвали интервали, какво ще направите?
  • Обяснете как бихте изградили страница със слайд-шоу.
  • Ако можете да научите много добре 1 технология тази година, каква ще е тя?
  • Обяснете важността на стандартите и организациите за стандартизация.
  • Какво е Flash of unstyled content? Как се справяте с FOUC?
  • Обяснете какво е ARIA и екранни четци и как да правим сайтовете по-достъпни.
  • Обяснете предимствата и недостатъците на CSS анимациите пред тези на JavaScript.
  • Какво означава CORS и какъв проблем решава?

[⬆] HTML въпроси:

  • Какво прави doctype?
  • Каква е разликата между режимите “standards mode”, “almost standards mode” и “quirks mode”?
  • Каква е разликата между HTML и XHTML?
  • Има ли проблеми при обработката на страници с application/xhtml+xml?
  • Как показвате страници със съдържание на няколко езика?
  • Какви неща трябва да се имат предвид, когато правите дизайн или разработвате многоезични страници?
  • За какво служат HTML атрибутите, които започват с data-?
  • Представете си HTML5 като отворена уеб платформа. Кои са градивните елементи на HTML5?
  • Обяснете разликата между бисквитки, sessionStorage и localStorage.
  • Обяснете разликата <script>, <script async> и <script defer>.
  • Защо е добре да се зарежда CSS <link> в елемента <head></head> и JS <script> преди затварящия таг </body>? Знаете ли за изключения?
  • Какво означава progressive rendering?
  • Защо бихте използвали srcset атрибут в <img> таг? Обяснете процеса, през който минава браузърът, когато обработва съдържанието на този атрибут.
  • Използвали ли сте различни шаблонни HTML езици?

[⬆] CSS въпроси:

  • Каква е разликата между class и ID в CSS?
  • Каква е разликата между “resetting” и “normalizing” в CSS? Кое бихте избрали и защо?
  • Обяснете плаващите елементи (floats) и как работят.
  • Обяснете z-index и как се формира наслагването на елементите.
  • Опишете BFC (Block Formatting Context) и как работи той.
  • Кои са различните clearing техники и кои в какъв контекст се използват?
  • Обяснете CSS sprite-овете, и как можете да ги вкарате на уеб страница или сайт.
  • Кои са любимите ви техники, които заменят картинките и в кои случаи кои от тях използвате?
  • Как бихте подходили за да решите специфичните стилове за различните браузъри?
  • Как показвате страниците си на браузъри, които не поддържат част от възможностите на HTML5?
    • Какви техники/процеси използвате?
  • Какви са различните начини визуално да скриете съдържание от уеб страницата (и да го направите видимо само за екранните четци)?
  • Използвали ли сте грид система и ако да, коя предпочитате?
  • Използвали ли сте media queries или специфичен за мобилните платформи layouts или CSS?
  • Запознати ли сте със стилизирането на SVG?
  • Как оптимизирате вашите уеб страници за принтиране?
  • Кои са някои от “триковете” за писане на ефективен CSS?
  • Какви са предимствата/недостатъците при използване на препроцесори?
    • Опишете какво ви харесва и не ви харесва при използването им.
  • Как реализирате уеб дизайни, които използват нестандартни фонтове?
  • Обяснете как уеб браузърите разбират кои елементи отговарят на даден CSS селектор.
  • Опишете псевдо-елементите и обяснете за какво се използват.
  • Обяснете как разбирате box model и как бихте накарали браузъра с CSS да изпълни layout в различни box model-и.
  • Какво прави * { box-sizing: border-box; }? Какви са предимствата му?
  • Направете списък на всички стойности на display, за които можете да се сетите.
  • Каква е разликата между inline и inline-block?
  • Каква е разликата между позиционирането на елементите relative, fixed, absolute и static?
  • ‘C’ в CSS идва от Cascading. Какъв приоритет имат стиловете при наслагването им (няколко примера)? Как бихте използвали това?
  • Какви CSS frameworks сте ползвали самостоятелно или в проекти? Как бихте ги променили / обогатили?
  • Тествали ли сте новия CSS Flexbox или Grid specs?
  • Каква е разликата между responsive design и adaptive design на сайт?
  • Работили ли сте с retina graphics? Ако да, какви техники използвахте?
  • Има ли причина да ползвате translate() вместо абсолютно позициониране и обратно? Защо?

[⬆] JS въпроси:

  • Обяснете event delegation.
  • Обяснете как работи this в JavaScript.
  • Обяснете как работи наследяването на прототипи (prototypal inheritance).
  • AMD или CommonJS?
  • Обяснете защо този код не работи като IIFE: function foo(){ }();.
    • Какво е нужно да се промени, за да може кодът да работи като IIFE?
  • Каква е разликата между променлива, която е: null, undefined или недекларирана?
    • Как проверявате всяко от тези състояния на променливите?
  • Какво е closure? Как и защо се използва?
  • Кога се използват анонимните функции?
  • Как организирате своя код? (module патърн, класическо наследяване?)
  • Каква е разликата между host обекти и native обекти?
  • Каква е разликата между function Person(){}, var person = Person() и var person = new Person()?
  • Каква е разликата между .call и .apply?
  • Обяснете Function.prototype.bind?
  • В какви случаи бихте използвали document.write()?
  • Каква е разликата между feature detection, feature inference, и използването на user agent (UA) string?
  • Обяснете AJAX в детайли.
  • Какви са предимствата и недостатъците при употребата на AJAX?
  • Обяснете как работи JSONP (и защо не е точно AJAX).
  • Използвали ли сте JavaScript темплейти?
    • Ако да, коя библиотека сте използвали?
  • Обяснете “hoisting”.
  • Обяснете “event bubbling”.
  • Каква е разликата между “attribute” и “property”?
  • Защо extending built-in в JavaScript обектите не е добра идея?
  • Каква е разликата между събитията “document load” и “document DOMContentLoaded”?
  • Каква е разликата между == и ===?
  • Обяснете same-origin policy от гледна точка на JavaScript.
  • Оправете кода, така че да работи:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Защо тернарният оператор се нарича така? Какво означава думата “тернарен”?
  • Какво е "use strict";? Какви са предимствата и недостатъците на ползването му в кода?
  • Напишете for loop, който стига до 100 и извежда “fizz” за всички числа, които се делят на 3, “buzz” за тези, които се делят 5 и “fizzbuzz” за числата, които се делят и на 3 и на 5.
  • Защо по правило е добра идея да се остави global scope на един уебсайт непроменен?
  • Защо бихте използвали нещо като load събитието? Това събитие има ли недостатъци? Знаете ли алтернативи и защо бихте ги използвали?
  • Обяснете какво е single page app и как може да се оптимизира за търсачките.
  • Докъде се простира опитът ви с Promises и / или техните polyfills?
  • Какви са предимствата и недостатъците при използване на Promises вместо callbacks?
  • Кои са някои предимства / недостатъци на писането на JavaScript код на език, който се компилира до JavaScript?
  • Какви инструменти и техники използвате, когато дебъгвате JavaScript код?
  • Кои конструкции на езика използвате, за да итерирате атрибути (properties) на обекти и елементи в масиви?
  • Обяснете разликата между mutable и immutable обекти.
    • Дайте пример за immutable обект в JavaScript.
    • Какви са предимствата и недостатъците на това един обект да бъде immutable?
    • Как може да направите обект immutablе във Вашия собствен код?
  • Обяснете разликата между синхронни и асинхронни функции.
  • Какво е event loop?
    • Каква е разликата между call stack и task queue?
  • Обяснете разликите при използването на foo в примерите: function foo() {}; var foo = function() {}
  • Какви са разликите при създаавнето на променливи с let, var и const?

[⬆] jQuery въпроси:

  • Обяснете “chaining”.
  • Обяснете “deferreds”.
  • Какви специфични за jQuery оптимизации, можете да направите?
  • Какво прави .end()?
  • Как и защо бихте сложили bound event handler в namespace?
  • Назовете 4 различни типа стойности, които можете да подадете на jQuery метод.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object и т. н.
  • Какво е effects (или fx) queue?
  • Каква е разликата между .get(), [], и .eq()?
  • Каква е разликата между .bind(), .live(), и .delegate()?
  • Каква е разликата между $ и $.fn? Или просто: Какво е $.fn?
  • Оптимизирайте този селектор:
$(".foo div#bar:eq(0)")

[⬆] Въпроси, свързани с тестване:

  • Какви са предимствата и недостатъците в тестването на код?
  • Какви инструменти бихте могли да използвате, за да тествате как работи Вашия код?
  • Каква е разликата между компонентен тест (unit test) и функционален / интеграционен тест (functional / integration test)?
  • Каква е целта на инструментите за анализиране на кода (linting tools)?

[⬆] Въпроси, свързани с бързодействие:

  • Какви инструменти бихте използвали, за да откриете проблем, свързан с бързодействието на кода?
  • Дайте примери за начини, по които може да подобрите бързодействието на скролирането в сайт.
  • Обяснете разликата между layout, painting и compositing.

[⬆] Мрежови въпроси:

  • Защо по традиция е препоръчително да се зареждат ресурсите за даден уебсайт от няколко домейна?
  • Опишете по най-добрия възможен начин процесът, който се случва от написването на URL-a на един уебсайт до края на зарежаднето му на екрана.
  • Какви са разликите между Long-Polling, Websockets и Server-Sent Events?
  • Обяснете следните хедъри на request и response:
    • Разлики между Expires, Date, Age и If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Какво представляват HTTP методите? Избройте всички HTTP методи, които познавате, и ги обяснете.

[⬆] Въпроси, свързани с програмиране:

modulo(12, 5) // 2

Въпрос: Имплементирайте функция за намиране на остатък от деление която отговаря на горното условие (да връща 2 при аргументи 12 и 5)

"i'm a lasagna hog".split("").reverse().join("");

Въпрос: Каква стойност ще върне горният израз?

Отговор: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Въпрос: Каква е стойността на window.foo?

Отговор: “bar”, ако window.foo има стойност false, иначе стойността на window.foo)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Въпрос: Какво ще изкарат двете alert функции от горния код?

Отговор: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Въпрос: Каква е стойността на foo.length?

Отговор: 2

[⬆] Забавни въпроси:

  • Кое е най-якото нещо, което сте писали и от което сте най-горд?
  • Кое най-много ви допада в инструментите за разработчици, които използвате?
  • Разработвате ли някакви проекти като хоби? Какви?
  • Какво най-много ви харесва в Internet Explorer?
  • Как предпочитате кафето си?

####[⬆] Допълнителни ресурси:

\ No newline at end of file diff --git a/_site/translations/burmese/index.html b/_site/translations/burmese/index.html index bb4cd2369..04190d76e 100644 --- a/_site/translations/burmese/index.html +++ b/_site/translations/burmese/index.html @@ -1 +1 @@ -Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ ★ Front-end Job Interview Questions

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

ယခုဖိုင်တွင် Front-end developer အလုပ်အတွက် အလုပ်လျှောက်ထားသူများအား အင်တာဗျူးများပြုလုပ်ရာတွင် အထောက်အကူပြုနိုင်သည့် မေးခွန်းများပါဝင်ပါသည်။ အလုပ်လျှောက်ထားသူတစ်ဦးစီတိုင်းကို ရှိသမျှမေးခွန်းတိုင်းမေးရန် အကြံပြုခြင်းမဟုတ်ပါ။ (ဖြေရလွန်း၍ လျှာထွက်နိုင်ကိန်းရှိသည်။) မိမိခန့်အပ်လိုသောအလုပ်နှင့်သက်ဆိုင်သည့် အလုပ်တာဝန်၊ လိုအပ်ချက်များနှင့်သက်ဆိုင်သည့် မေးခွန်းများကိုသာရွေးချယ်ကာမေးရန် ရည်ရွယ်ပါသည်။

မှတ်ချက်။ ။ မေးခွန်းအများစုမှာ open-ended မေးခွန်းများြဖစ်ြပီး ဒဲ့ဒိုးအဖြေတစ်ခု အတိအကျရယ် မရှိချေ။ ထိုမေးခွန်းနှင့် ပါတ်သက်၍ ဆွေးနွေးစကားပြောဆိုရာမှ လျှောက်ထားသူ၏ အစွမ်းအဆကို ပိုမိုခန့်မှန်းနိုင်မည်ြဖစ်သည်။

မာတိကာ

  1. ယေဘုယျ မေးခွန်းများ
  2. HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ
  3. CSS နှင့်သက်ဆိုင်သော မေးခွန်းများ
  4. JS နှင့် သက်ဆိုင်သော မေးခွန်းများ
  5. Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ
  6. Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ
  7. Network နှင့် သက်ဆိုင်သော မေးခွန်းများ
  8. Coding နှင့်သက်ဆိုင်သော မေးခွန်းများ
  9. အပျော်မေးခွန်းများ

Getting Involved

  1. Contributors
  2. How to Contribute
  3. License

ယေဘုယျ မေးခွန်းများ

  • ဒီရက်ပိုင်းအတွင်း (သို့) ဒီတစ်ပါတ်အတွင်း ဘာတွေသင်ယူ လေ့လာြဖစ်ပါသနည်း။
  • Coding နဲ့ပါတ်သက်လို့ ဘယ်လိုအရာမျိုးက သင့်ကို စိတ်လှုပ်ရှားအောင်၊ စိတ်ဝင်စားအောင်လုပ်နိုင်ပါလဲ။
  • အခုလောလောဆယ်ပိုင်းမှာ ဘယ်လို technical challenge တွေများတွေ့ခဲ့သလဲ၊ ပြီးတော့ အဲ့ဒီ့ challenge တွေကို ဘယ်လိုအောင်ြမင်စွာ ကျော်ြဖတ်ခဲ့ပါသလဲ။
  • Web application တစ်ခု သို့ web site တစ်ခုကိုလုပ်ရာမှာ မည်သည့် User Iterface၊ Security (လုံခြုံရေး)၊ Performance၊ Search Engine Optimization (မိမိ၏ site/application အား search engine များမှ လွယ်ကူစွာ ရှာဖွေနိုင်ရေး)၊ Maintainability (နောင်မှာပြုပြင်မှုလွယ်ကူရေး)၊ Technology (နည်းပညာရွေးချယ်မှု) စသည်တို့နှင့်ပါတ်သက်၍ မည့်သည့်အချက်များကို စဉ်းစားပါသလဲ။
  • Development လုပ်ရာတွင် သင့်အကြိုက်ဆုံးြဖစ်မည့် computer set-up အကြောင်းပြောပါ။
  • မည့်သည့် Version control system တွေကို သုံးဖူး၊ စမ်းဖူးပါသလဲ။
  • Web page တစ်ခုကို ပြုလုပ်ရာတွင် သင်၏ လုပ်ငန်းစဉ်အဆင့်ဆင့် (workflow) ကိုပြောပြပါ။
  • သင့်မှာ stylesheet ၅ခုရှိသည်ဆိုပါစို့၊ သင်၏ webpage အတွင်းသို့ ဘယ်လိုအကောင်းဆုံးြဖစ်အောင် ထည့်သွင်းမည်နည်း။
  • Progressive enhancement (ဆီလျော်စွာ ကောင်းမွန်စေနည်း) နှင့် graceful degradation (ဟန်မပျက် နှိမ့်ချနည်း) တို့ကို ရှင်းြပပေးပါ။
  • Website တစ်ခု၏ assets များ resource များကို ဘယ်လို optimize လုပ်ပါမည်နည်း။
  • Browser တစ်ခုသည် domain တစ်ခုမှ resource ဘယ်နှစ်ခု တစ်ပြိုင်တည်း download လုပ်နိုင်ပါသနည်း
    • ဘယ်လိုချွင်းချက်များရှိပါသနည်း။
  • Page load လုပ်သည့်အချိန်အား လျှော့ချနိုင်သည့် နည်း၃မျိုးပြောပါ။ (တကယ် load လုပ်သည့်အခိျန် သို့ load လုပ်သည်ဟုထင်ရချိန်)
  • လုပ်လက်ဆ Project တစ်ခုကို ဝင်ရောက်လုပ်ကိုင်ရာမှာ၊ နဂို developer များက Tab ကိုသုံးကာ code ကို format လုပ်ထားပြီး သင့်အနေနှင့် space များနှင့် format လုပ်သူတစ်ယောက်ဖြစ်သည်ဆိုပါစို့။ သင်မည်သို့ ဝင်ရောက်လုပ်ကိုင်မည်နည်း။
  • ရိုးရှင်းတဲ့ Slideshow page တစ်ခုကို သင်ဘယ်လိုပြုလုပ်ပါမည်နည်း။
  • သင်သည် ဒီနှစ်ထဲတွင် technology တစ်ခုကို ကျွမ်းကျင်စွာလေ့လာနိုင်မည်ဆိုပါက မည်သည့် technology ကိုလေ့လာမည်နည်း။
  • Standard များ၏ အရေးပါပုံနှင့် standard များကို သတ်မှတ်သည့် အဖွဲ့အစည်းများ၏ အရေးပါပုံကို ပြောပါ။
  • Flash of unstyled content ဆိုတာဘာလဲ။ ဘယ်လိုရှောင်ကွင်းနိုင်ပါသလဲ။
  • ARIA နှင့် screenreader များအကြောင်း၊ accessible ြဖစ်သည့် website ကို လုပ်ပုံလုပ်နည်းအကြောင်း ပြောပါ။
  • CSS animation များနှင့် Javascript animation များ၏ အားနည်းချက်၊ အားသာချက်များအကြောင်းရှင်းပြပါ။
  • CORS ဆိုတာဘာလဲ၊ ဘယ်လိုအခက်အခဲမျိုး ဘယ်လို issue မျိုးအတွက် အသုံးပြုပါသလဲ။

HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ

  • doctype ဆိုတာဘာလဲ။ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Full standards mode၊ almost standard mode နှင့် quirks mode ကွာခြားချက်များကို ပြောပါ။
  • HTML နှင့် XHTML ကွာခြားချက်များကို ပြောပါ။
  • Page များကို application/xhtml+xml နှင့် ချပေးပါက မည်သည့်ပြဿနာများရှိသနည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော page တစ်ခုကို ဘယ်လိုချပြမည်နည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော website တစ်ခုကို ဒီဇိုင်းလုပ်ရာ၊ develop လုပ်ရာတွင် မည်သို့စဥ်းစားကိုပြုလုပ်မည်နည်း။
  • data- attributes တွေသည် မည်သည့် ကိစ္စအတွက် ကောင်းသနည်း။
  • HTML5 ကို open platform တစ်ခုအနေစဥ်းစားကြည့်ပါစို့။ HTML5 ၏ အခြေခံအုပ်မြစ်များသည် အဘယ်နည်း။
  • cookie, sessionStorage နှင့် localStorage တို့၏ ကွာခြားချက်များကိုပြောပါ။
  • <script>, <script async> နှင့် <script defer> တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • ဘာကြောင့် CSS ၏ <link> tag များကို <head></head> အတွင်း၊ ဘာကြောင့် Javascript ၏ <script> tag များကို </body> မတိုင်ခင်ထည့်သည့်သည်ဟု ယေဘုယျအားဖြင့် အကြံပြုကြပါသလည်း။ ဘယ်လိုချွင်းချက်များ ရှိပါလဲ။
  • Progressive Rendering ဆိုတာဘာလဲ။
  • တခြား HTML template လုပ်ပေးနိုင်တဲ့ templating engine မျိုးဘာသုံးဖူးလဲ။

CSS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • CSS တွင် class တွေနှင့် ID တွေ၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS တွင် “resetting” နှင့် “normalizing” တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • Float တွေအကြောင်းနှင့် ဘယ်လိုအလုပ်လုပ်ကြောင်း ပြောပါ။
  • z-index နှင့် stacking အလုပ်လုပ်ပုံကို ရှင်းပါ။
  • BFC(Block Formatting Context) အကြောင်းရှင်းပါ၊ ဘယ်လိုအလုပ်လုပ်လဲ ပြောပါ။
  • Clearing နည်းအမျိုးမျိုးနှင့် မည်သည့်နည်းသည် မည်သို့အခြေအနေနှင့်သင့်တော်ကြောင်းရှင်းပြပါ။
  • CSS sprites များအကြောင်းရှင်းပြပါ။ Page တစ်ခု၊ site တစ်ခုမှာ ဘယ်လိုလုပ်မလဲရှင်းပြပါ။
  • အကြိုက်ဆုံး Image replacement နည်းများကိုပြောပါ၊ ဘယ်နည်းကို ဘယ်အခါမှာသုံးပါသနည်း။
  • Browser တစ်ခု၊နှစ်ခုနှင့်သာ သက်ဆိုင်သည့် style ပိုင်း ပြဿနာမျိုးကို မည်သို့ရှင်းမည်နည်း။
  • သင်၏ page တစ်ခုကို feature အစုံမပါသည့် browser တစ်ခုအတွက် မည်သို့ style လုပ်မည်နည်း။
    • မည်သည့်နည်း၊ လုပ်ဆောင်မှုများကို သုံးမည်နည်း။
  • Content တစ်ခုကို မမြင်ရအောင် မည်သို့လုပ်နိုင်ပါသနည်း (Screen readers များနှင့်သာ ဖတ်နိုင်အောင်)
  • Grid system များသုံးဖူးပါသလား၊ ဘယ်တစ်ခုကို ပိုကြိုက်ပါသလဲ။
  • Media queries သို့ mobile ဖုန်းအတွက် ရည်ရွယ်တဲ့ layout တွေ styling တွေလုပ်ဖူးလား။
  • SVG ကို style လုပ်တာနဲ့ပါတ်သက်ပြီး ဘယ်လိုအတွေ့အကြုံရှိပါသလဲ။
  • Webpage တွေကို print ထုတ်ဖို့အတွက် ဘယ်လို optimize လုပ်ပါသလဲ။
  • Efficient ြဖစ်တဲ့ CSS တွေကိုရေးဖို့အတွက် ဘယ်လို အချက်များကို သတိထားရပါမလဲ။
  • CSS preprocessor များ၏ ကောင်းချက် ဆိုးချက်များကို ပြောပါ။
    • သုံးဖူးတဲ့ CSS preprocessor တွေရဲ့ ကြိုက်တဲ့အချက် မကြိုက်တဲ့အချက်များကို ပြောပြပါ။
  • Web design comp တစ်ခု၊ photoshop/illustrator နဲ့ဆွဲထားတဲ့ design တစ်ခုကို ဘယ်လို develop လုပ်ပါမည်နည်း။
  • Browser တစ်ခုက CSS selector တစ်ခုနှင့် ဘယ်လို match လုပ်ပါသနည်း။
  • Pseudo-element တွေအကြောင်း ပြောပါ။ ဘယ်လိုနေရာမှာသုံးလဲ ပြောပါ။
  • Box model ကို နားလည်သလောက်ရှင်းပြပါ။ Browser တစ်ခုကို သင်လိုချင်သော box model တစ်ခုနှင့် render လုပ်အောင်မည်သို့ပြောရမည်နည်း။
  • * { box-sizing: border-box; } က ဘာလုပ်တာလည်း။ အဲ့ဒါရဲ့ အားသာချက်တွေက ဘာလဲ။
  • display property ရဲ့ value တွေထဲက မှတ်မိသမျှပြောပြပါ။
  • inline နှင့် inline-block ၏ ကွာခြားချက်များကို ပြောပါ။
  • relative, fixed, absolute နှင့် static position တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS ထဲမှ ‘C’ သည် Cascading လို့ရည်ရွယ်ပါသည်။ မည်သည့် style ကို ဦးစားပေးအရေးယူမည်ဟု browser က သတ်မှတ်ပါသနည်း (ဥပမာနှင့်တကွ ဖြေရန်)။ အဲ့ဒီ့ system ကို ဘယ်လို အသုံးချမည်နည်း။
  • ဘယ် CSS framework ကို စမ်းသုံးဖူးပါသလဲ။ production မှာရော ဘာကိုသုံးဖူးပါလဲ။
  • CSS flexbox သို့ Grid specs တို့ကို စမ်းသုံးဖူးပါသလား။
  • Responsive design နှင့် adaptive design ဘယ်လိုကွာပါသလဲ။
  • Retina graphic တွေသုံးဖူးပါသလား။ သုံးဖူးပါက ဘယ်တုန်းကပါလည်း၊ ဘယ်နည်းတွေသုံးခဲ့ပါသလဲ။
  • absolute positioning မသုံးပဲ translate() ကို ဘယ်လိုအချိန်မျိုးမှာ သုံးနိုင်ပါသလဲ။ အဲ့ဒါမဟုတ်ပြောင်းပြန် ဆိုရင်ရော။ ဘာကြောင့်လဲ။

JS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • Event delegation အကြောင်းရှင်းပြပါ။
  • this က Javascript မှာ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Prototypal inheritance က ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • AMD နှင့် CommonJS ကိုယှဉ်ပြပါ။
  • ဘာကြောင့် IIFE မှာ function foo(){}();; အလုပ်မလုပ်တာလည်း။
    • ဘာကိုပြောင်းလိုက်ရင် အလုပ်လုပ်ပါမည်နည်း။
  • Variable တစ်ခု၏ null, undefined or undeclared value များသည် ဘယ်လိုကွာခြားပါသလဲ။
    • အဲ့ဒီ့မတူတဲ့ value တွေကို ဘယ်လို check မလဲ။
  • Closure ဆိုတာဘာလဲ၊ ဘယ်လို၊ ဘာကြောင့်သုံးမှာလဲ။
  • Anonymous function တစ်ခုရဲ့ use case တွေဘာတွေရှိသလဲ။
  • Code တွေကို ဘယ်လို organize လုပ်မှာလဲ။ (module pattern, classical inheritance?)
  • Host object တွေနဲ့ native object တွေနဲ့ ဘယ်လိုကွာသလဲ။
  • function Person(){}, var person = Person(), နှင့် var person = new Person() ဆိုတဲ့ သုံးခုက ဘယ်လိုကွာပါသလဲ။
  • .call နှင့် .apply က ဘာကွာပါသလဲ။
  • Function.prototype.bind အကြောင်းရှင်းပါ။
  • document.write() ကို ဘယ်လိုအချိန်မှာ သုံးမှာလဲ။
  • Feature detection, feature inference နှင့် UA string တို့ရဲ့ ကွာခြားချက်ကို ပြောပါ။
  • Ajax ကို အသေးစိတ်ကျကျ ရှင်းပါ။
  • Ajax သုံးခြင်းရဲ့ အားသာချက်၊ အားနည်းချက်များကို ရှင်းပါ။
  • JSONP က ဘယ်လိုအလုပ်လုပ်သလဲပြောပါ။ (AJAX နှင့် ဘယ်လို မတူကြောင်းရှင်းပါ)
  • Javascript templating သုံးဖူးပါသလား၊​
    • ဘယ် Library တွေသုံးဖူးပါသလဲ။
  • “hoisting” ကိုရှင်းပြပါ။
  • Event bubbling အကြောင်းရှင်းပါ။
  • “attribute” နှင့် “property” ဘယ်လိုကွာပါသလဲ။
  • နဂိုကတည်းကရှိသည့် JavaScript object တွေကို extend လုပ်ခြင်းသည် ဘာ့ကြောင့် မလုပ်သင့်တာလဲ။
  • Document load event နဲ့ document DOMContentLoaded event က ဘယ်လိုကွာသလဲ။
  • == နှင့် === ကွာခြားပုံကိုပြောပါ။
  • Javascript ၏ same-origin policy အကြောင်းရှင်းပါ။
  • အောက်ပါကုဒ်ကို အလုပ်လုပ်အောင် လုပ်ပါ။
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression လို့ ဘာကြောင့်ခေါ်တာလဲ, “Ternary” ဆိုတာ ဘာကိုဆိုလိုချင်တာလဲ။
  • "use strict"; က ဘာလဲ။ အားနည်းချက် အားသာချက်များကို ရှင်းပါ။
  • 100 အထိ loop ပါတ်ကာ 3 နှင့် စားလုိ့ပြတ်က “fizz” လို့ထုတ်ပြီး , 5 နှင့်စားလို့ပြတ်က **“buzz”**လို့ထုတ်ပါ။ 3 နှင့် 5 နှစ်ခုလုံးနှင့်စားလို့ပြတ်က “fizzbuzz” လို့ထုတ်ပါ။
  • Website တစ်ခု၏ global scope ကို များသောအားြဖင့် မထိတာအကောင်းဆုံးြဖစ်ပါသလဲ။
  • load event ကို ဘာကြောင့်သုံးပါသလဲ။ အဲ့ဒီ့ event မှာ အားနည်းချက်များရှိပါသလား။ တခြားနည်းလမ်းတွေသိလား၊ ဘာလို့ အြခားနည်းလမ်းတွေသုံးမှာလဲ။
  • Single page app ဆိုတာဘာလဲ ရှင်းပြပေးပါ၊ ပြီးတော့ အဲ့ဒီ့ app တွေကို ဘယ်လို SEO-friendly ြဖစ်အောင်လုပ်မလဲ။
  • Promises သို့မဟုတ် သူတို့ရဲ့ polyfills တွေနဲ့ပါတ်သက်ြပီး အတွေ့အကြုံအကြောင်းပြောပြပါ။
  • Promise တွေကိုသုံးြခင်းနှင့် Callback တွေကိုသုံးခြင်းတို့၏ အားနည်းချက်၊ အားသာချက်များကို ရှင်းပါ။
  • Javascript ကို တခြား language တစ်ခုနှင့် develop လုပ်ပြီး Javascript သို့ compile လုပ်ခြင်းနှင့်ပါတ်သက်ပြီး အားနည်းချက် အားသာချက်များကို ပြောပြပါ။
  • ဘယ်လို tools တွေ၊ technique တွေကို သုံးပြီး javascript ကို debug လုပ်ပါသလဲ။
  • ဘယ်လို language construction ကိုသုံးပြီး object တစ်ခုရဲ့ properties တွေနှင့် array item တွေကို iterate လုပ်ပါသလဲ။
  • Mutable နှင့် immutable object တွေဘယ်လိုကွာခြားပါသလဲ။
    • Javascript မှာ ဘယ်လို object မျိုးသည် immutable object ဖြစ်ပါသလဲ။
    • Immutability ရဲ့ အားနည်းချက်၊ အားသာချက်များက ဘာတွေလဲ။
    • ကိုယ့်ရဲ့ code ထဲမှာ immutability ကို ဘယ်လို ရအောင်လုပ်နိုင်သလဲ။
  • Synchronous နဲ့ asynchronous function တွေရဲ့ ကွာခြားချက်ကိုပြောပါ။
  • Event loop ဆိုတာဘာလဲ။
    • Call stack နဲ့ task queue က ဘာကွာလဲ။
  • function foo() {} နှင့် var foo = function() {} မှာ foo ရဲ့ကွာခြားချက်ကိုပြောပါ။

Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ကိုယ်ရေးတဲ့ code ကို test လုပ်ခြင်းအားဖြင့် ဘယ်လိုအားနည်းချက်၊ အားသာချက်များရှိပါသလဲ။
  • ကိုယ်ရေးတဲ့ code ရဲ့ functionality ကို test လုပ်ဖို့အတွက် ဘယ်လို tool တွေ သုံးမှာလဲ။
  • Unit test နဲ့ function/integration test တို့ ဘယ်လိုကွာခြားပါသလဲ။
  • Code style linting tool ရဲ့ ရည်ရွယ်ချက်ကို ပြောပါ။

Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ဘယ်လို tools တွေကို သုံးပြီး performance bug တွေကို ရှာရမှာလဲ။
  • Website တစ်ခုရဲ့ scrolling နဲ့ပါတ်သက်ပြီး performance ဘယ်လိုကောင်းအောင်လုပ်ရမှာလဲ
  • Layout, painting နှင့် compositing ရဲ့ကွာခြားချက်ကိုပြောပါ။

Network နှင့်ပါတ်သက်သော မေးခွန်းများ

  • သာမန်ရိုးကျအားဖြင့်၊ ဘာကြောင့် website တစ်ခု၏ assets များကို domain တစ်ခုထက်ပိုပြီး ချပေးခြင်းက ဘာ့ကြောင့်ပိုကောင်းပါသလဲ။
  • Website တစ်ခု၏ url ကို ရိုက်ထည့်ပြီး load လုပ်ပြီးချိန်အထိ ဘာတွေဖြစ်သွားတယ်ဆိုတာကို ရှင်းပြပါ။
  • Long-polling, websocket နှင့် server-sent events တို့၏ ကွာခြားချက်များကိုရှင်းပါ။
  • အောက်ပါ request နှင့် response header များကို ရှင်းပါ။
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP Methods တွေကဘာတွေလဲ။ သူတို့ရဲ့ ကွာခြားချက်များကိုရှင်းပါ။

Coding နှင့်ပါတ်သက်သော မေးခွန်းများ

Question: foo ၏ value ကိုပြောပါ။

var foo = 10 + '20';

Question: အောက်ပါ code ကို ဘယ်လိုအလုပ်လုပ်အောင်လုပ်မည်နည်း။

add(2, 5); // 7
add(2)(5); // 7

Question: အောက်ပါ statement မှ ဘာကို return ပြန်မည်နည်း။

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo ၏ value ကို ပြောပါ။

( window.foo || ( window.foo = "bar" ) );

Question: အောက်ပါ alert နှစ်ခုက ဘာပြမည်နည်း။

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: foo.length ၏ value ကိုပြောပါ။

var foo = [];
foo.push(1);
foo.push(2);

Question: foo.x ၏ value ကိုပြောပါ။?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: အောက်ပါ ကုဒ်က ဘာ print ထုတ်မည်နည်း။?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

အပျော်မေးခွန်းများ

  • သင်လတ်တလောလုပ်ဖူးတဲ့ project များထဲက cool ဖြစ်တဲ့ project တစ်ခုအကြောင်းပြောပါ။
  • သင်သုံးတဲ့ developer tools တွေထဲက ဘယ်လိုအရာမျိုးတွေကို ကြိုက်ပါသလဲ။
  • Front-end community ထဲမှာ ဘယ်သူတွေကို စံနမူနာယူပါသလဲ။
  • အပျော်တမ်း၊ အားလပ်ချိန်မှာ လုပ်နေတဲ့ project တွေရှိပါသလား။ ဘယ်လိုမျိုးတွေလဲ။
  • Internet Explorer ရဲ့ အကြိုက်ဆုံး feature တစ်ခုပြောပါ။
  • ကော်ဖီကို ဘယ်လိုသောက်ပါသလဲ။

Contributors:

This document started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

It has since received contributions from over 100 developers.

Burmese translation provided by @mmhan.

\ No newline at end of file +Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ ★ Front-end Job Interview Questions

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

ယခုဖိုင်တွင် Front-end developer အလုပ်အတွက် အလုပ်လျှောက်ထားသူများအား အင်တာဗျူးများပြုလုပ်ရာတွင် အထောက်အကူပြုနိုင်သည့် မေးခွန်းများပါဝင်ပါသည်။ အလုပ်လျှောက်ထားသူတစ်ဦးစီတိုင်းကို ရှိသမျှမေးခွန်းတိုင်းမေးရန် အကြံပြုခြင်းမဟုတ်ပါ။ (ဖြေရလွန်း၍ လျှာထွက်နိုင်ကိန်းရှိသည်။) မိမိခန့်အပ်လိုသောအလုပ်နှင့်သက်ဆိုင်သည့် အလုပ်တာဝန်၊ လိုအပ်ချက်များနှင့်သက်ဆိုင်သည့် မေးခွန်းများကိုသာရွေးချယ်ကာမေးရန် ရည်ရွယ်ပါသည်။

မှတ်ချက်။ ။ မေးခွန်းအများစုမှာ open-ended မေးခွန်းများြဖစ်ြပီး ဒဲ့ဒိုးအဖြေတစ်ခု အတိအကျရယ် မရှိချေ။ ထိုမေးခွန်းနှင့် ပါတ်သက်၍ ဆွေးနွေးစကားပြောဆိုရာမှ လျှောက်ထားသူ၏ အစွမ်းအဆကို ပိုမိုခန့်မှန်းနိုင်မည်ြဖစ်သည်။

မာတိကာ

  1. ယေဘုယျ မေးခွန်းများ
  2. HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ
  3. CSS နှင့်သက်ဆိုင်သော မေးခွန်းများ
  4. JS နှင့် သက်ဆိုင်သော မေးခွန်းများ
  5. Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ
  6. Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ
  7. Network နှင့် သက်ဆိုင်သော မေးခွန်းများ
  8. Coding နှင့်သက်ဆိုင်သော မေးခွန်းများ
  9. အပျော်မေးခွန်းများ

Getting Involved

  1. Contributors
  2. How to Contribute
  3. License

ယေဘုယျ မေးခွန်းများ

  • ဒီရက်ပိုင်းအတွင်း (သို့) ဒီတစ်ပါတ်အတွင်း ဘာတွေသင်ယူ လေ့လာြဖစ်ပါသနည်း။
  • Coding နဲ့ပါတ်သက်လို့ ဘယ်လိုအရာမျိုးက သင့်ကို စိတ်လှုပ်ရှားအောင်၊ စိတ်ဝင်စားအောင်လုပ်နိုင်ပါလဲ။
  • အခုလောလောဆယ်ပိုင်းမှာ ဘယ်လို technical challenge တွေများတွေ့ခဲ့သလဲ၊ ပြီးတော့ အဲ့ဒီ့ challenge တွေကို ဘယ်လိုအောင်ြမင်စွာ ကျော်ြဖတ်ခဲ့ပါသလဲ။
  • Web application တစ်ခု သို့ web site တစ်ခုကိုလုပ်ရာမှာ မည်သည့် User Iterface၊ Security (လုံခြုံရေး)၊ Performance၊ Search Engine Optimization (မိမိ၏ site/application အား search engine များမှ လွယ်ကူစွာ ရှာဖွေနိုင်ရေး)၊ Maintainability (နောင်မှာပြုပြင်မှုလွယ်ကူရေး)၊ Technology (နည်းပညာရွေးချယ်မှု) စသည်တို့နှင့်ပါတ်သက်၍ မည့်သည့်အချက်များကို စဉ်းစားပါသလဲ။
  • Development လုပ်ရာတွင် သင့်အကြိုက်ဆုံးြဖစ်မည့် computer set-up အကြောင်းပြောပါ။
  • မည့်သည့် Version control system တွေကို သုံးဖူး၊ စမ်းဖူးပါသလဲ။
  • Web page တစ်ခုကို ပြုလုပ်ရာတွင် သင်၏ လုပ်ငန်းစဉ်အဆင့်ဆင့် (workflow) ကိုပြောပြပါ။
  • သင့်မှာ stylesheet ၅ခုရှိသည်ဆိုပါစို့၊ သင်၏ webpage အတွင်းသို့ ဘယ်လိုအကောင်းဆုံးြဖစ်အောင် ထည့်သွင်းမည်နည်း။
  • Progressive enhancement (ဆီလျော်စွာ ကောင်းမွန်စေနည်း) နှင့် graceful degradation (ဟန်မပျက် နှိမ့်ချနည်း) တို့ကို ရှင်းြပပေးပါ။
  • Website တစ်ခု၏ assets များ resource များကို ဘယ်လို optimize လုပ်ပါမည်နည်း။
  • Browser တစ်ခုသည် domain တစ်ခုမှ resource ဘယ်နှစ်ခု တစ်ပြိုင်တည်း download လုပ်နိုင်ပါသနည်း
    • ဘယ်လိုချွင်းချက်များရှိပါသနည်း။
  • Page load လုပ်သည့်အချိန်အား လျှော့ချနိုင်သည့် နည်း၃မျိုးပြောပါ။ (တကယ် load လုပ်သည့်အခိျန် သို့ load လုပ်သည်ဟုထင်ရချိန်)
  • လုပ်လက်ဆ Project တစ်ခုကို ဝင်ရောက်လုပ်ကိုင်ရာမှာ၊ နဂို developer များက Tab ကိုသုံးကာ code ကို format လုပ်ထားပြီး သင့်အနေနှင့် space များနှင့် format လုပ်သူတစ်ယောက်ဖြစ်သည်ဆိုပါစို့။ သင်မည်သို့ ဝင်ရောက်လုပ်ကိုင်မည်နည်း။
  • ရိုးရှင်းတဲ့ Slideshow page တစ်ခုကို သင်ဘယ်လိုပြုလုပ်ပါမည်နည်း။
  • သင်သည် ဒီနှစ်ထဲတွင် technology တစ်ခုကို ကျွမ်းကျင်စွာလေ့လာနိုင်မည်ဆိုပါက မည်သည့် technology ကိုလေ့လာမည်နည်း။
  • Standard များ၏ အရေးပါပုံနှင့် standard များကို သတ်မှတ်သည့် အဖွဲ့အစည်းများ၏ အရေးပါပုံကို ပြောပါ။
  • Flash of unstyled content ဆိုတာဘာလဲ။ ဘယ်လိုရှောင်ကွင်းနိုင်ပါသလဲ။
  • ARIA နှင့် screenreader များအကြောင်း၊ accessible ြဖစ်သည့် website ကို လုပ်ပုံလုပ်နည်းအကြောင်း ပြောပါ။
  • CSS animation များနှင့် Javascript animation များ၏ အားနည်းချက်၊ အားသာချက်များအကြောင်းရှင်းပြပါ။
  • CORS ဆိုတာဘာလဲ၊ ဘယ်လိုအခက်အခဲမျိုး ဘယ်လို issue မျိုးအတွက် အသုံးပြုပါသလဲ။

HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ

  • doctype ဆိုတာဘာလဲ။ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Full standards mode၊ almost standard mode နှင့် quirks mode ကွာခြားချက်များကို ပြောပါ။
  • HTML နှင့် XHTML ကွာခြားချက်များကို ပြောပါ။
  • Page များကို application/xhtml+xml နှင့် ချပေးပါက မည်သည့်ပြဿနာများရှိသနည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော page တစ်ခုကို ဘယ်လိုချပြမည်နည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော website တစ်ခုကို ဒီဇိုင်းလုပ်ရာ၊ develop လုပ်ရာတွင် မည်သို့စဥ်းစားကိုပြုလုပ်မည်နည်း။
  • data- attributes တွေသည် မည်သည့် ကိစ္စအတွက် ကောင်းသနည်း။
  • HTML5 ကို open platform တစ်ခုအနေစဥ်းစားကြည့်ပါစို့။ HTML5 ၏ အခြေခံအုပ်မြစ်များသည် အဘယ်နည်း။
  • cookie, sessionStorage နှင့် localStorage တို့၏ ကွာခြားချက်များကိုပြောပါ။
  • <script>, <script async> နှင့် <script defer> တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • ဘာကြောင့် CSS ၏ <link> tag များကို <head></head> အတွင်း၊ ဘာကြောင့် Javascript ၏ <script> tag များကို </body> မတိုင်ခင်ထည့်သည့်သည်ဟု ယေဘုယျအားဖြင့် အကြံပြုကြပါသလည်း။ ဘယ်လိုချွင်းချက်များ ရှိပါလဲ။
  • Progressive Rendering ဆိုတာဘာလဲ။
  • တခြား HTML template လုပ်ပေးနိုင်တဲ့ templating engine မျိုးဘာသုံးဖူးလဲ။

CSS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • CSS တွင် class တွေနှင့် ID တွေ၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS တွင် “resetting” နှင့် “normalizing” တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • Float တွေအကြောင်းနှင့် ဘယ်လိုအလုပ်လုပ်ကြောင်း ပြောပါ။
  • z-index နှင့် stacking အလုပ်လုပ်ပုံကို ရှင်းပါ။
  • BFC(Block Formatting Context) အကြောင်းရှင်းပါ၊ ဘယ်လိုအလုပ်လုပ်လဲ ပြောပါ။
  • Clearing နည်းအမျိုးမျိုးနှင့် မည်သည့်နည်းသည် မည်သို့အခြေအနေနှင့်သင့်တော်ကြောင်းရှင်းပြပါ။
  • CSS sprites များအကြောင်းရှင်းပြပါ။ Page တစ်ခု၊ site တစ်ခုမှာ ဘယ်လိုလုပ်မလဲရှင်းပြပါ။
  • အကြိုက်ဆုံး Image replacement နည်းများကိုပြောပါ၊ ဘယ်နည်းကို ဘယ်အခါမှာသုံးပါသနည်း။
  • Browser တစ်ခု၊နှစ်ခုနှင့်သာ သက်ဆိုင်သည့် style ပိုင်း ပြဿနာမျိုးကို မည်သို့ရှင်းမည်နည်း။
  • သင်၏ page တစ်ခုကို feature အစုံမပါသည့် browser တစ်ခုအတွက် မည်သို့ style လုပ်မည်နည်း။
    • မည်သည့်နည်း၊ လုပ်ဆောင်မှုများကို သုံးမည်နည်း။
  • Content တစ်ခုကို မမြင်ရအောင် မည်သို့လုပ်နိုင်ပါသနည်း (Screen readers များနှင့်သာ ဖတ်နိုင်အောင်)
  • Grid system များသုံးဖူးပါသလား၊ ဘယ်တစ်ခုကို ပိုကြိုက်ပါသလဲ။
  • Media queries သို့ mobile ဖုန်းအတွက် ရည်ရွယ်တဲ့ layout တွေ styling တွေလုပ်ဖူးလား။
  • SVG ကို style လုပ်တာနဲ့ပါတ်သက်ပြီး ဘယ်လိုအတွေ့အကြုံရှိပါသလဲ။
  • Webpage တွေကို print ထုတ်ဖို့အတွက် ဘယ်လို optimize လုပ်ပါသလဲ။
  • Efficient ြဖစ်တဲ့ CSS တွေကိုရေးဖို့အတွက် ဘယ်လို အချက်များကို သတိထားရပါမလဲ။
  • CSS preprocessor များ၏ ကောင်းချက် ဆိုးချက်များကို ပြောပါ။
    • သုံးဖူးတဲ့ CSS preprocessor တွေရဲ့ ကြိုက်တဲ့အချက် မကြိုက်တဲ့အချက်များကို ပြောပြပါ။
  • Web design comp တစ်ခု၊ photoshop/illustrator နဲ့ဆွဲထားတဲ့ design တစ်ခုကို ဘယ်လို develop လုပ်ပါမည်နည်း။
  • Browser တစ်ခုက CSS selector တစ်ခုနှင့် ဘယ်လို match လုပ်ပါသနည်း။
  • Pseudo-element တွေအကြောင်း ပြောပါ။ ဘယ်လိုနေရာမှာသုံးလဲ ပြောပါ။
  • Box model ကို နားလည်သလောက်ရှင်းပြပါ။ Browser တစ်ခုကို သင်လိုချင်သော box model တစ်ခုနှင့် render လုပ်အောင်မည်သို့ပြောရမည်နည်း။
  • * { box-sizing: border-box; } က ဘာလုပ်တာလည်း။ အဲ့ဒါရဲ့ အားသာချက်တွေက ဘာလဲ။
  • display property ရဲ့ value တွေထဲက မှတ်မိသမျှပြောပြပါ။
  • inline နှင့် inline-block ၏ ကွာခြားချက်များကို ပြောပါ။
  • relative, fixed, absolute နှင့် static position တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS ထဲမှ ‘C’ သည် Cascading လို့ရည်ရွယ်ပါသည်။ မည်သည့် style ကို ဦးစားပေးအရေးယူမည်ဟု browser က သတ်မှတ်ပါသနည်း (ဥပမာနှင့်တကွ ဖြေရန်)။ အဲ့ဒီ့ system ကို ဘယ်လို အသုံးချမည်နည်း။
  • ဘယ် CSS framework ကို စမ်းသုံးဖူးပါသလဲ။ production မှာရော ဘာကိုသုံးဖူးပါလဲ။
  • CSS flexbox သို့ Grid specs တို့ကို စမ်းသုံးဖူးပါသလား။
  • Responsive design နှင့် adaptive design ဘယ်လိုကွာပါသလဲ။
  • Retina graphic တွေသုံးဖူးပါသလား။ သုံးဖူးပါက ဘယ်တုန်းကပါလည်း၊ ဘယ်နည်းတွေသုံးခဲ့ပါသလဲ။
  • absolute positioning မသုံးပဲ translate() ကို ဘယ်လိုအချိန်မျိုးမှာ သုံးနိုင်ပါသလဲ။ အဲ့ဒါမဟုတ်ပြောင်းပြန် ဆိုရင်ရော။ ဘာကြောင့်လဲ။

JS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • Event delegation အကြောင်းရှင်းပြပါ။
  • this က Javascript မှာ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Prototypal inheritance က ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • AMD နှင့် CommonJS ကိုယှဉ်ပြပါ။
  • ဘာကြောင့် IIFE မှာ function foo(){}();; အလုပ်မလုပ်တာလည်း။
    • ဘာကိုပြောင်းလိုက်ရင် အလုပ်လုပ်ပါမည်နည်း။
  • Variable တစ်ခု၏ null, undefined or undeclared value များသည် ဘယ်လိုကွာခြားပါသလဲ။
    • အဲ့ဒီ့မတူတဲ့ value တွေကို ဘယ်လို check မလဲ။
  • Closure ဆိုတာဘာလဲ၊ ဘယ်လို၊ ဘာကြောင့်သုံးမှာလဲ။
  • Anonymous function တစ်ခုရဲ့ use case တွေဘာတွေရှိသလဲ။
  • Code တွေကို ဘယ်လို organize လုပ်မှာလဲ။ (module pattern, classical inheritance?)
  • Host object တွေနဲ့ native object တွေနဲ့ ဘယ်လိုကွာသလဲ။
  • function Person(){}, var person = Person(), နှင့် var person = new Person() ဆိုတဲ့ သုံးခုက ဘယ်လိုကွာပါသလဲ။
  • .call နှင့် .apply က ဘာကွာပါသလဲ။
  • Function.prototype.bind အကြောင်းရှင်းပါ။
  • document.write() ကို ဘယ်လိုအချိန်မှာ သုံးမှာလဲ။
  • Feature detection, feature inference နှင့် UA string တို့ရဲ့ ကွာခြားချက်ကို ပြောပါ။
  • Ajax ကို အသေးစိတ်ကျကျ ရှင်းပါ။
  • Ajax သုံးခြင်းရဲ့ အားသာချက်၊ အားနည်းချက်များကို ရှင်းပါ။
  • JSONP က ဘယ်လိုအလုပ်လုပ်သလဲပြောပါ။ (AJAX နှင့် ဘယ်လို မတူကြောင်းရှင်းပါ)
  • Javascript templating သုံးဖူးပါသလား၊​
    • ဘယ် Library တွေသုံးဖူးပါသလဲ။
  • “hoisting” ကိုရှင်းပြပါ။
  • Event bubbling အကြောင်းရှင်းပါ။
  • “attribute” နှင့် “property” ဘယ်လိုကွာပါသလဲ။
  • နဂိုကတည်းကရှိသည့် JavaScript object တွေကို extend လုပ်ခြင်းသည် ဘာ့ကြောင့် မလုပ်သင့်တာလဲ။
  • Document load event နဲ့ document DOMContentLoaded event က ဘယ်လိုကွာသလဲ။
  • == နှင့် === ကွာခြားပုံကိုပြောပါ။
  • Javascript ၏ same-origin policy အကြောင်းရှင်းပါ။
  • အောက်ပါကုဒ်ကို အလုပ်လုပ်အောင် လုပ်ပါ။
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression လို့ ဘာကြောင့်ခေါ်တာလဲ, “Ternary” ဆိုတာ ဘာကိုဆိုလိုချင်တာလဲ။
  • "use strict"; က ဘာလဲ။ အားနည်းချက် အားသာချက်များကို ရှင်းပါ။
  • 100 အထိ loop ပါတ်ကာ 3 နှင့် စားလုိ့ပြတ်က “fizz” လို့ထုတ်ပြီး , 5 နှင့်စားလို့ပြတ်က **“buzz”**လို့ထုတ်ပါ။ 3 နှင့် 5 နှစ်ခုလုံးနှင့်စားလို့ပြတ်က “fizzbuzz” လို့ထုတ်ပါ။
  • Website တစ်ခု၏ global scope ကို များသောအားြဖင့် မထိတာအကောင်းဆုံးြဖစ်ပါသလဲ။
  • load event ကို ဘာကြောင့်သုံးပါသလဲ။ အဲ့ဒီ့ event မှာ အားနည်းချက်များရှိပါသလား။ တခြားနည်းလမ်းတွေသိလား၊ ဘာလို့ အြခားနည်းလမ်းတွေသုံးမှာလဲ။
  • Single page app ဆိုတာဘာလဲ ရှင်းပြပေးပါ၊ ပြီးတော့ အဲ့ဒီ့ app တွေကို ဘယ်လို SEO-friendly ြဖစ်အောင်လုပ်မလဲ။
  • Promises သို့မဟုတ် သူတို့ရဲ့ polyfills တွေနဲ့ပါတ်သက်ြပီး အတွေ့အကြုံအကြောင်းပြောပြပါ။
  • Promise တွေကိုသုံးြခင်းနှင့် Callback တွေကိုသုံးခြင်းတို့၏ အားနည်းချက်၊ အားသာချက်များကို ရှင်းပါ။
  • Javascript ကို တခြား language တစ်ခုနှင့် develop လုပ်ပြီး Javascript သို့ compile လုပ်ခြင်းနှင့်ပါတ်သက်ပြီး အားနည်းချက် အားသာချက်များကို ပြောပြပါ။
  • ဘယ်လို tools တွေ၊ technique တွေကို သုံးပြီး javascript ကို debug လုပ်ပါသလဲ။
  • ဘယ်လို language construction ကိုသုံးပြီး object တစ်ခုရဲ့ properties တွေနှင့် array item တွေကို iterate လုပ်ပါသလဲ။
  • Mutable နှင့် immutable object တွေဘယ်လိုကွာခြားပါသလဲ။
    • Javascript မှာ ဘယ်လို object မျိုးသည် immutable object ဖြစ်ပါသလဲ။
    • Immutability ရဲ့ အားနည်းချက်၊ အားသာချက်များက ဘာတွေလဲ။
    • ကိုယ့်ရဲ့ code ထဲမှာ immutability ကို ဘယ်လို ရအောင်လုပ်နိုင်သလဲ။
  • Synchronous နဲ့ asynchronous function တွေရဲ့ ကွာခြားချက်ကိုပြောပါ။
  • Event loop ဆိုတာဘာလဲ။
    • Call stack နဲ့ task queue က ဘာကွာလဲ။
  • function foo() {} နှင့် var foo = function() {} မှာ foo ရဲ့ကွာခြားချက်ကိုပြောပါ။

Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ကိုယ်ရေးတဲ့ code ကို test လုပ်ခြင်းအားဖြင့် ဘယ်လိုအားနည်းချက်၊ အားသာချက်များရှိပါသလဲ။
  • ကိုယ်ရေးတဲ့ code ရဲ့ functionality ကို test လုပ်ဖို့အတွက် ဘယ်လို tool တွေ သုံးမှာလဲ။
  • Unit test နဲ့ function/integration test တို့ ဘယ်လိုကွာခြားပါသလဲ။
  • Code style linting tool ရဲ့ ရည်ရွယ်ချက်ကို ပြောပါ။

Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ဘယ်လို tools တွေကို သုံးပြီး performance bug တွေကို ရှာရမှာလဲ။
  • Website တစ်ခုရဲ့ scrolling နဲ့ပါတ်သက်ပြီး performance ဘယ်လိုကောင်းအောင်လုပ်ရမှာလဲ
  • Layout, painting နှင့် compositing ရဲ့ကွာခြားချက်ကိုပြောပါ။

Network နှင့်ပါတ်သက်သော မေးခွန်းများ

  • သာမန်ရိုးကျအားဖြင့်၊ ဘာကြောင့် website တစ်ခု၏ assets များကို domain တစ်ခုထက်ပိုပြီး ချပေးခြင်းက ဘာ့ကြောင့်ပိုကောင်းပါသလဲ။
  • Website တစ်ခု၏ url ကို ရိုက်ထည့်ပြီး load လုပ်ပြီးချိန်အထိ ဘာတွေဖြစ်သွားတယ်ဆိုတာကို ရှင်းပြပါ။
  • Long-polling, websocket နှင့် server-sent events တို့၏ ကွာခြားချက်များကိုရှင်းပါ။
  • အောက်ပါ request နှင့် response header များကို ရှင်းပါ။
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP Methods တွေကဘာတွေလဲ။ သူတို့ရဲ့ ကွာခြားချက်များကိုရှင်းပါ။

Coding နှင့်ပါတ်သက်သော မေးခွန်းများ

Question: foo ၏ value ကိုပြောပါ။

var foo = 10 + '20';

Question: အောက်ပါ code ကို ဘယ်လိုအလုပ်လုပ်အောင်လုပ်မည်နည်း။

add(2, 5); // 7
add(2)(5); // 7

Question: အောက်ပါ statement မှ ဘာကို return ပြန်မည်နည်း။

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo ၏ value ကို ပြောပါ။

( window.foo || ( window.foo = "bar" ) );

Question: အောက်ပါ alert နှစ်ခုက ဘာပြမည်နည်း။

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: foo.length ၏ value ကိုပြောပါ။

var foo = [];
foo.push(1);
foo.push(2);

Question: foo.x ၏ value ကိုပြောပါ။?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: အောက်ပါ ကုဒ်က ဘာ print ထုတ်မည်နည်း။?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

အပျော်မေးခွန်းများ

  • သင်လတ်တလောလုပ်ဖူးတဲ့ project များထဲက cool ဖြစ်တဲ့ project တစ်ခုအကြောင်းပြောပါ။
  • သင်သုံးတဲ့ developer tools တွေထဲက ဘယ်လိုအရာမျိုးတွေကို ကြိုက်ပါသလဲ။
  • Front-end community ထဲမှာ ဘယ်သူတွေကို စံနမူနာယူပါသလဲ။
  • အပျော်တမ်း၊ အားလပ်ချိန်မှာ လုပ်နေတဲ့ project တွေရှိပါသလား။ ဘယ်လိုမျိုးတွေလဲ။
  • Internet Explorer ရဲ့ အကြိုက်ဆုံး feature တစ်ခုပြောပါ။
  • ကော်ဖီကို ဘယ်လိုသောက်ပါသလဲ။

Contributors:

This document started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

It has since received contributions from over 100 developers.

Burmese translation provided by @mmhan.

\ No newline at end of file diff --git a/_site/translations/chinese-traditional/index.html b/_site/translations/chinese-traditional/index.html index 373bc547b..e40e70bee 100644 --- a/_site/translations/chinese-traditional/index.html +++ b/_site/translations/chinese-traditional/index.html @@ -1 +1 @@ -前端工程師面試問題集 ★ Front-end Job Interview Questions

前端工程師面試問題集

前端工程師面試問題集

譯注:此翻譯版,主要給不能流利的讀英文的人看,相關專有名詞還是保留原文,翻譯不好地方請協助 Pull request。

此文件包含了一些前端開發的面試問題,來審查一個有潛力的面試者。這並不是建議你對同一個面試者問上所有的問 (那會花費好幾小時)。從列表中挑幾個題目,應該就夠幫助你審查面試者是否擁有你需要的技能。

注意: 請記住一點,很多問題都是隨情況而變化,能引發很多有趣的討論,比直接的標準答案更能讓你瞭解此人的能力。

目錄

  1. 常見問題
  2. HTML 問題
  3. CSS 問題
  4. JS 問題
  5. 測試問題
  6. 效能問題
  7. 網路問題
  8. 程式碼問題
  9. 有趣問題

參與貢獻

  1. 貢獻作者群
  2. 如何貢獻
  3. 版權宣告

常見問題:

  • 你昨天或這週學習了什麼?
  • 寫程式的哪部份最讓你感到很興奮或是有興趣?
  • 最近有無遇過不容易的技術性問題,又如何解決?
  • 當你開發Web應用程式或網站時,針對UI、安全性、效能、SEO、維護性,以及技術,你考量的點是什麼?
  • 說說你喜好的開發環境 (作業系統, 編輯器或 IDE, 瀏覽器, 開發工具 … 之類)。
  • 你最熟悉哪一套版本控制系統?
  • 你可以描述你在開發一個網站時的工作流程嗎?
  • 如果有 5 種不同的樣式表 (stylesheets),該如何整併到網站?
  • 你可以描述漸進增強 (progressive enhancement) 和優美退化 (graceful degradation) 間的差異嗎?
  • 你怎麼優化一個網站的靜態檔案 (assets) 和資源 (resources)?
  • 說出三種能加快網頁讀取速度的方法 (感覺上的速度或是真正的讀取時間)。
  • 如果你加入了一個專案,但是他們的程式碼用 tabs,但是你習慣用spaces (空白鍵),你會怎麼做?
  • 寫一個簡易的投影片頁面。
  • 你用什麼工具來測試你的程式碼效能?
  • 如果今年你能精通一項技術,那會是什麼?
  • 描述標準和製定標準機構的重要性?
  • 什麼是 Flash of Unstyled Content? 你怎麼避免 FOUC?
  • 解釋什麼是 ARIA 與 screenreaders,它們是怎麼樣讓網站使用更無障礙?
  • 解釋 CSS 動畫與 JavaScript 動畫之間的憂與劣。
  • CORS 是什麼,它解決了什麼問題?

HTML 問題:

  • doctype 做什麼用的?
  • standards mode 和 quirks mode 有什麼不同?
  • 使用 XHTML 有什麼限制??
  • 如果網頁使用 application/xhtml+xml 會有問題嗎?
  • 你怎麼做一個需要支持多國語言的網頁?
  • 當開發和設計一個多國語言網站時,有什麼需要小心的?
  • data- 屬性的好處在哪?
  • 考慮 HTML5 作為一個開放式的網站平台,組成 HTML5 的技術有哪些?
  • 請描述 cookies, sessionStoragelocalStorage 的不同?
  • 描述下列之間的不同 <script>, <script async> & <script defer>
  • 為什麼把 CSS <link> 放在 <head></head> 之間,與將 JS <script> 放在 </body> 之前是個較好的主意?有什麼例外情形嗎?
  • 什麼是漸進式呈現?
  • 有用過 HTML 樣板語言(template languages)嗎?

CSS 問題:

  • CSS 的 class 和 ID 兩者有何差異?
  • 描述 “resetting” 和 “normalizing” 的差異性?你會選擇哪一種,為什麼選擇它?
  • 描述 Floats 並解釋如何運作。
  • 描述 z-index 並且描述堆疊內容 (stacking context) 如何形成。
  • 解釋 BFC(Block Formatting Context) 是什麼、如何運作的。
  • 有哪些不同的 clearing 技術?哪個適用在哪種內容上?
  • 描述 CSS sprites, 你如何實作在網頁或網站上?
  • 你最喜愛的圖片取代技術是什麼?你什麼時候會用到?
  • 針對各瀏覽器制定的樣式表(browser-specific styling),你的做法是?
  • 你怎麼讓你的網頁支援有功能限制的瀏覽器?
    • 你會使用什麼樣的技術/流程 ?
  • 有什麼方法來隱藏網頁的內容? (只顯示在 screen readers)?
  • 你使用過 grid system 嗎?如果有的話?你較推薦哪個?
  • 你曾經實作 media queries 或是 mobile specific (手機規格的) layouts/CSS?
  • 你熟悉任何有關 SVG 嗎?
  • 你如何優化你的網頁以利於列印?
  • 在寫高效的 CSS 時,有什麼要注意的?
  • 使用 CSS preprocessors 的優點和缺點是什麼? (Sass, Compass, Stylus, LESS)
    • 描述你使用過的喜歡和不喜歡的 CSS preprocessors。
  • 你如何使用非標準字體來實作網頁設計?
  • 解釋瀏覽器如何按照 CSS selector 找到對應的 element。
  • 解釋你所認知的 box model,以及你如何在 CSS 告訴瀏覽器使用不同 box model 來呈現圖層?
  • 請解釋 * { box-sizing: border-box; }?並且說明使用它的好處?
  • 請列出您記憶中 display 屬性的全部值。
  • 請說明 inline 和 inline-block 的差異性?
  • 請說明 relative、fixed、absolute 和 static 元件差異性?
  • ‘C’ 在 CSS 中代表層疊。樣式的優先級(舉出範例)?如何利用這項功能?
  • 你目前有使用哪一套 CSS Framework 在開發環境或產品線上?
    • 如果有,請問是哪一套,並且描述如果改善或提昇 CSS Framework?
  • 請問你有使用過 CSS Flexbox 或 Grid specs?
  • 如何區分 responsive design 與 adaptive design 有何不同?
  • 你曾經使用過 retina graphics?如果有,是在什麼時機以及用了什麼技術?
  • 為什麼會用 translate() 代替 aboslute positioning,或者用 absolute positioning 代替 translate?為什麼要這樣?

JS 規格問題集:

  • 描述 event delegation。
  • 描述 this 如何在 JavaScript 中運作。
  • 描述 prototypal inheritance 如何運作?
  • 你如何測試你的 JavaScript?
  • AMD vs. CommonJS?
  • 解釋下列程式碼為什麼不是IIFE: function foo(){ }();. (Immediately Invoked Function Expression,立即函式)
    • 需要修改那裡使它成為IIFE?
  • nullundefinedundeclared變數之間有什麼差異?
    • 你如何檢查?
  • 什麼是 closure, 如何/為什麼使用?
  • anonymous functions 典型的使用時機?
  • 你如何架構你的程式碼? (module pattern, classical inheritance?)
  • host objects 和 native objects 有何不同?
  • function Person(){}var person = Person()var person = new Person()之間有何不同?
  • .call.apply有何不同?
  • 描述 Function.prototype.bind?
  • 你什麼時候優化你的程式?
  • 你什麼情況會使用 document.write()
    • 多數的廣告產生仍然使用 document.write() 雖然這樣用會令人皺眉
  • feature detection, feature inference, 和使用 UA string 有什麼不同?
  • 盡可能的詳述描述 AJAX。
  • 描述 JSONP 如何運作 (且為何它不是真正的 AJAX)。
  • 你是用過 JavaScript templating (樣板) ?
    • 如果有的話,你有用過哪些 libraries? (Mustache.js, Handlebars … 等)
  • 描述 “hoisting”
  • 描述 event bubbling.
  • “attribute” 和 “property” 的不同?
  • 為什麼擴展 JavaScript 內建的 objects 不是個好方法?
  • document load event 和 document ready event 有什麼不同?
  • ===== 有什麼不同?
  • 描述 JavaScript 的 same-origin policy (同源策略)
  • 實作如下程式:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression 怎麼來的, “Ternary” 的意思是什麼?
  • 什麼是 "use strict";? 使用他的優點和缺點是什麼?
  • 建個數到 100 的迴圈,當數字是 3 的倍數時輸出 “fizz”,當數字是 5 的倍數時輸出 "buzz",當數字同時是 35 的倍數時輸出 “fizzbuzz”
  • 為什麼保持網站的全域(global scope)原樣是一個好做法?
  • 為什麼要用 load 事件?有什麼缺點嗎?有其他選擇嗎?又為何選擇它?
  • 解釋什麼是 single page app,並怎麼讓它對 SEO 更友善。
  • 你對 Promises 的經驗?有用過相關的補強(ployfills)嗎?
  • Promises 之於 callbacks 的優劣?
  • JavaScript 轉譯器(transpiler)的優缺點?
  • 你用什麼工具或技巧來做 JavaScript debug?
  • 你都用什麼對 object properties 與 array 進行迭代?
  • 解釋 mutable 與 immutable objects 之間的不同。
    • 舉個 immutable 在 JavaScript 中例子?
    • immutability 的憂劣?
    • 如何達成 immutability?
  • 解釋同步(synchronous)與非同步(asynchronous)函式之間的差異。
  • Event loop 是什麼?
    • call stack 與 task queue 之間的不同?

測試問題集:

  • 寫測試有什麼好壞?
  • 都用什麼工具測試代碼是否能運作?
  • Unit test 與 functional/integration 間的不同?
  • 監控代碼風格 linting 工具的用途是?

效能問題集:

  • 你都用什麼工具尋找效能上的臭蟲?
  • 有哪些方法可改善網站在 scrolling 效能?
  • 解釋 layout, painting 與 compositing 的不同。(瀏覽器在 render 上的效能問題)

網路問題集:

  • 傳統上為什麼用多個域名來放置網站資源會比較好?
  • 請詳細描述當您在網址列打入網址開始到最後網頁呈現在螢幕前的整個流程。
  • Long-Polling, Websockets, SSE (Server-Sent Event) 之間有什麼差異?
  • 請描述下列 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • DNT
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 列出所有你知道的 HTTP 操作,並詳加解釋。

程式碼問題集:

問題: foo 的值是什麼?

var foo = 10 + '20';

問題:實作符合下面的函式

add(2, 5); // 7
add(2)(5); // 7

問題: 下面的 statement(陳述式) 會回傳什麼?

"i'm a lasagna hog".split("").reverse().join("");

問題: window.foo 的值是什麼?

( window.foo || ( window.foo = "bar" ) );

問題: 下面的兩個 alerts 的結果會是什麼?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

問題: 下面 foo.length 的值是什麼?

var foo = [];
foo.push(1);
foo.push(2);

問題:下面這段會印出什麼?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

有趣問題:

  • 你最近寫過最酷的專案是?
  • 你使用的開發工具中,你最喜歡的部分是什麼?
  • 你有任何的 pet projects (個人開發的小專案)? 什麼樣的?
  • 你最喜歡 IE 瀏覽器的什麼特點?
  • 喜歡咖啡嗎?

貢獻作者群:

此文件是由 @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym 於 2009 年共同發起。

目前已經超過 100 開發者 參與此專案.

\ No newline at end of file +前端工程師面試問題集 ★ Front-end Job Interview Questions

前端工程師面試問題集

前端工程師面試問題集

譯注:此翻譯版,主要給不能流利的讀英文的人看,相關專有名詞還是保留原文,翻譯不好地方請協助 Pull request。

此文件包含了一些前端開發的面試問題,來審查一個有潛力的面試者。這並不是建議你對同一個面試者問上所有的問 (那會花費好幾小時)。從列表中挑幾個題目,應該就夠幫助你審查面試者是否擁有你需要的技能。

注意: 請記住一點,很多問題都是隨情況而變化,能引發很多有趣的討論,比直接的標準答案更能讓你瞭解此人的能力。

目錄

  1. 常見問題
  2. HTML 問題
  3. CSS 問題
  4. JS 問題
  5. 測試問題
  6. 效能問題
  7. 網路問題
  8. 程式碼問題
  9. 有趣問題

參與貢獻

  1. 貢獻作者群
  2. 如何貢獻
  3. 版權宣告

常見問題:

  • 你昨天或這週學習了什麼?
  • 寫程式的哪部份最讓你感到很興奮或是有興趣?
  • 最近有無遇過不容易的技術性問題,又如何解決?
  • 當你開發Web應用程式或網站時,針對UI、安全性、效能、SEO、維護性,以及技術,你考量的點是什麼?
  • 說說你喜好的開發環境 (作業系統, 編輯器或 IDE, 瀏覽器, 開發工具 … 之類)。
  • 你最熟悉哪一套版本控制系統?
  • 你可以描述你在開發一個網站時的工作流程嗎?
  • 如果有 5 種不同的樣式表 (stylesheets),該如何整併到網站?
  • 你可以描述漸進增強 (progressive enhancement) 和優美退化 (graceful degradation) 間的差異嗎?
  • 你怎麼優化一個網站的靜態檔案 (assets) 和資源 (resources)?
  • 說出三種能加快網頁讀取速度的方法 (感覺上的速度或是真正的讀取時間)。
  • 如果你加入了一個專案,但是他們的程式碼用 tabs,但是你習慣用spaces (空白鍵),你會怎麼做?
  • 寫一個簡易的投影片頁面。
  • 你用什麼工具來測試你的程式碼效能?
  • 如果今年你能精通一項技術,那會是什麼?
  • 描述標準和製定標準機構的重要性?
  • 什麼是 Flash of Unstyled Content? 你怎麼避免 FOUC?
  • 解釋什麼是 ARIA 與 screenreaders,它們是怎麼樣讓網站使用更無障礙?
  • 解釋 CSS 動畫與 JavaScript 動畫之間的憂與劣。
  • CORS 是什麼,它解決了什麼問題?

HTML 問題:

  • doctype 做什麼用的?
  • standards mode 和 quirks mode 有什麼不同?
  • 使用 XHTML 有什麼限制??
  • 如果網頁使用 application/xhtml+xml 會有問題嗎?
  • 你怎麼做一個需要支持多國語言的網頁?
  • 當開發和設計一個多國語言網站時,有什麼需要小心的?
  • data- 屬性的好處在哪?
  • 考慮 HTML5 作為一個開放式的網站平台,組成 HTML5 的技術有哪些?
  • 請描述 cookies, sessionStoragelocalStorage 的不同?
  • 描述下列之間的不同 <script>, <script async> & <script defer>
  • 為什麼把 CSS <link> 放在 <head></head> 之間,與將 JS <script> 放在 </body> 之前是個較好的主意?有什麼例外情形嗎?
  • 什麼是漸進式呈現?
  • 有用過 HTML 樣板語言(template languages)嗎?

CSS 問題:

  • CSS 的 class 和 ID 兩者有何差異?
  • 描述 “resetting” 和 “normalizing” 的差異性?你會選擇哪一種,為什麼選擇它?
  • 描述 Floats 並解釋如何運作。
  • 描述 z-index 並且描述堆疊內容 (stacking context) 如何形成。
  • 解釋 BFC(Block Formatting Context) 是什麼、如何運作的。
  • 有哪些不同的 clearing 技術?哪個適用在哪種內容上?
  • 描述 CSS sprites, 你如何實作在網頁或網站上?
  • 你最喜愛的圖片取代技術是什麼?你什麼時候會用到?
  • 針對各瀏覽器制定的樣式表(browser-specific styling),你的做法是?
  • 你怎麼讓你的網頁支援有功能限制的瀏覽器?
    • 你會使用什麼樣的技術/流程 ?
  • 有什麼方法來隱藏網頁的內容? (只顯示在 screen readers)?
  • 你使用過 grid system 嗎?如果有的話?你較推薦哪個?
  • 你曾經實作 media queries 或是 mobile specific (手機規格的) layouts/CSS?
  • 你熟悉任何有關 SVG 嗎?
  • 你如何優化你的網頁以利於列印?
  • 在寫高效的 CSS 時,有什麼要注意的?
  • 使用 CSS preprocessors 的優點和缺點是什麼? (Sass, Compass, Stylus, LESS)
    • 描述你使用過的喜歡和不喜歡的 CSS preprocessors。
  • 你如何使用非標準字體來實作網頁設計?
  • 解釋瀏覽器如何按照 CSS selector 找到對應的 element。
  • 解釋你所認知的 box model,以及你如何在 CSS 告訴瀏覽器使用不同 box model 來呈現圖層?
  • 請解釋 * { box-sizing: border-box; }?並且說明使用它的好處?
  • 請列出您記憶中 display 屬性的全部值。
  • 請說明 inline 和 inline-block 的差異性?
  • 請說明 relative、fixed、absolute 和 static 元件差異性?
  • ‘C’ 在 CSS 中代表層疊。樣式的優先級(舉出範例)?如何利用這項功能?
  • 你目前有使用哪一套 CSS Framework 在開發環境或產品線上?
    • 如果有,請問是哪一套,並且描述如果改善或提昇 CSS Framework?
  • 請問你有使用過 CSS Flexbox 或 Grid specs?
  • 如何區分 responsive design 與 adaptive design 有何不同?
  • 你曾經使用過 retina graphics?如果有,是在什麼時機以及用了什麼技術?
  • 為什麼會用 translate() 代替 aboslute positioning,或者用 absolute positioning 代替 translate?為什麼要這樣?

JS 規格問題集:

  • 描述 event delegation。
  • 描述 this 如何在 JavaScript 中運作。
  • 描述 prototypal inheritance 如何運作?
  • 你如何測試你的 JavaScript?
  • AMD vs. CommonJS?
  • 解釋下列程式碼為什麼不是IIFE: function foo(){ }();. (Immediately Invoked Function Expression,立即函式)
    • 需要修改那裡使它成為IIFE?
  • nullundefinedundeclared變數之間有什麼差異?
    • 你如何檢查?
  • 什麼是 closure, 如何/為什麼使用?
  • anonymous functions 典型的使用時機?
  • 你如何架構你的程式碼? (module pattern, classical inheritance?)
  • host objects 和 native objects 有何不同?
  • function Person(){}var person = Person()var person = new Person()之間有何不同?
  • .call.apply有何不同?
  • 描述 Function.prototype.bind?
  • 你什麼時候優化你的程式?
  • 你什麼情況會使用 document.write()
    • 多數的廣告產生仍然使用 document.write() 雖然這樣用會令人皺眉
  • feature detection, feature inference, 和使用 UA string 有什麼不同?
  • 盡可能的詳述描述 AJAX。
  • 描述 JSONP 如何運作 (且為何它不是真正的 AJAX)。
  • 你是用過 JavaScript templating (樣板) ?
    • 如果有的話,你有用過哪些 libraries? (Mustache.js, Handlebars … 等)
  • 描述 “hoisting”
  • 描述 event bubbling.
  • “attribute” 和 “property” 的不同?
  • 為什麼擴展 JavaScript 內建的 objects 不是個好方法?
  • document load event 和 document ready event 有什麼不同?
  • ===== 有什麼不同?
  • 描述 JavaScript 的 same-origin policy (同源策略)
  • 實作如下程式:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression 怎麼來的, “Ternary” 的意思是什麼?
  • 什麼是 "use strict";? 使用他的優點和缺點是什麼?
  • 建個數到 100 的迴圈,當數字是 3 的倍數時輸出 “fizz”,當數字是 5 的倍數時輸出 "buzz",當數字同時是 35 的倍數時輸出 “fizzbuzz”
  • 為什麼保持網站的全域(global scope)原樣是一個好做法?
  • 為什麼要用 load 事件?有什麼缺點嗎?有其他選擇嗎?又為何選擇它?
  • 解釋什麼是 single page app,並怎麼讓它對 SEO 更友善。
  • 你對 Promises 的經驗?有用過相關的補強(ployfills)嗎?
  • Promises 之於 callbacks 的優劣?
  • JavaScript 轉譯器(transpiler)的優缺點?
  • 你用什麼工具或技巧來做 JavaScript debug?
  • 你都用什麼對 object properties 與 array 進行迭代?
  • 解釋 mutable 與 immutable objects 之間的不同。
    • 舉個 immutable 在 JavaScript 中例子?
    • immutability 的憂劣?
    • 如何達成 immutability?
  • 解釋同步(synchronous)與非同步(asynchronous)函式之間的差異。
  • Event loop 是什麼?
    • call stack 與 task queue 之間的不同?

測試問題集:

  • 寫測試有什麼好壞?
  • 都用什麼工具測試代碼是否能運作?
  • Unit test 與 functional/integration 間的不同?
  • 監控代碼風格 linting 工具的用途是?

效能問題集:

  • 你都用什麼工具尋找效能上的臭蟲?
  • 有哪些方法可改善網站在 scrolling 效能?
  • 解釋 layout, painting 與 compositing 的不同。(瀏覽器在 render 上的效能問題)

網路問題集:

  • 傳統上為什麼用多個域名來放置網站資源會比較好?
  • 請詳細描述當您在網址列打入網址開始到最後網頁呈現在螢幕前的整個流程。
  • Long-Polling, Websockets, SSE (Server-Sent Event) 之間有什麼差異?
  • 請描述下列 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • DNT
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 列出所有你知道的 HTTP 操作,並詳加解釋。

程式碼問題集:

問題: foo 的值是什麼?

var foo = 10 + '20';

問題:實作符合下面的函式

add(2, 5); // 7
add(2)(5); // 7

問題: 下面的 statement(陳述式) 會回傳什麼?

"i'm a lasagna hog".split("").reverse().join("");

問題: window.foo 的值是什麼?

( window.foo || ( window.foo = "bar" ) );

問題: 下面的兩個 alerts 的結果會是什麼?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

問題: 下面 foo.length 的值是什麼?

var foo = [];
foo.push(1);
foo.push(2);

問題:下面這段會印出什麼?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

有趣問題:

  • 你最近寫過最酷的專案是?
  • 你使用的開發工具中,你最喜歡的部分是什麼?
  • 你有任何的 pet projects (個人開發的小專案)? 什麼樣的?
  • 你最喜歡 IE 瀏覽器的什麼特點?
  • 喜歡咖啡嗎?

貢獻作者群:

此文件是由 @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym 於 2009 年共同發起。

目前已經超過 100 開發者 參與此專案.

\ No newline at end of file diff --git a/_site/translations/chinese/index.html b/_site/translations/chinese/index.html index d24c61ce6..d32ef1ec2 100644 --- a/_site/translations/chinese/index.html +++ b/_site/translations/chinese/index.html @@ -1 +1 @@ -前端工作面试问题 ★ Front-end Job Interview Questions

前端工作面试问题

前端工作面试问题

本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能。

备注: 这些问题中很多都是开放性的,可以引发有趣的讨论。这比直接的答案更能体现此人的能力。

目录

  1. 常见问题
  2. HTML 相关问题
  3. CSS 相关问题
  4. JS 相关问题
  5. 测试相关问题
  6. 效能相关问题
  7. 网络相关问题
  8. 代码相关问题
  9. 趣味问题

参与协作

  1. 贡献者
  2. 如何参与贡献
  3. 许可协议

常见问题:

  • 你在昨天/本周学到了什么?
  • 编写代码的哪些方面能够使你兴奋或感兴趣?
  • 你最近遇到过什么技术挑战?你是如何解决的?
  • 在制作一个网页应用或网站的过程中,你是如何考虑其 UI、安全性、高性能、SEO、可维护性以及技术因素的?
  • 请谈谈你喜欢的开发环境。
  • 你最熟悉哪一套版本控制系统?
  • 你能描述当你制作一个网页的工作流程吗?
  • 假若你有 5 个不同的样式文件 (stylesheets), 整合进网站的最好方式是?
  • 你能描述渐进增强 (progressive enhancement) 和优雅降级 (graceful degradation) 之间的不同吗?
  • 你如何对网站的文件和资源进行优化?
  • 浏览器同一时间可以从一个域名下载多少资源?
    • 有什么例外吗?
  • 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
  • 如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做?
  • 请写一个简单的幻灯效果页面。
  • 如果今年你打算熟练掌握一项新技术,那会是什么?
  • 请谈谈你对网页标准和标准制定机构重要性的理解。
  • 什么是 FOUC (无样式内容闪烁)?你如何来避免 FOUC?
  • 请解释什么是 ARIA 和屏幕阅读器 (screenreaders),以及如何使网站实现无障碍访问 (accessible)。
  • 请解释 CSS 动画和 JavaScript 动画的优缺点。
  • 什么是跨域资源共享 (CORS)?它用于解决什么问题?

HTML 相关问题:

  • doctype(文档类型) 的作用是什么?
  • 浏览器标准模式 (standards mode) 、几乎标准模式(almost standards mode)和怪异模式 (quirks mode) 之间的区别是什么?
  • HTML 和 XHTML 有什么区别?
  • 如果页面使用 ‘application/xhtml+xml’ 会有什么问题吗?
  • 如果网页内容需要支持多语言,你会怎么做?
  • 在设计和开发多语言网站时,有哪些问题你必须要考虑?
  • 使用 data- 属性的好处是什么?
  • 如果把 HTML5 看作做一个开放平台,那它的构建模块有哪些?
  • 请描述 cookiessessionStoragelocalStorage 的区别。
  • 请解释 <script><script async><script defer> 的区别。
  • 为什么通常推荐将 CSS <link> 放置在 <head></head> 之间,而将 JS <script> 放置在 </body> 之前?你知道有哪些例外吗?
  • 什么是渐进式渲染 (progressive rendering)?
  • 你用过哪些不同的 HTML 模板语言?

CSS 相关问题:

  • CSS 中类 (classes) 和 ID 的区别。
  • 请问 “resetting” 和 “normalizing” CSS 之间的区别?你会如何选择,为什么?
  • 请解释浮动 (Floats) 及其工作原理。
  • 描述z-index和叠加上下文是如何形成的。
  • 请描述 BFC(Block Formatting Context) 及其如何工作。
  • 列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。
  • 请解释 CSS sprites,以及你要如何在页面或网站中实现它。
  • 你最喜欢的图片替换方法是什么,你如何选择使用。
  • 你会如何解决特定浏览器的样式问题?
  • 如何为有功能限制的浏览器提供网页?
    • 你会使用哪些技术和处理方法?
  • 有哪些的隐藏内容的方法 (如果同时还要保证屏幕阅读器可用呢)?
  • 你用过栅格系统 (grid system) 吗?如果使用过,你最喜欢哪种?
  • 你用过媒体查询,或针对移动端的布局/CSS 吗?
  • 你熟悉 SVG 样式的书写吗?
  • 如何优化网页的打印样式?
  • 在书写高效 CSS 时会有哪些问题需要考虑?
  • 使用 CSS 预处理器的优缺点有哪些?
    • 请描述你曾经使用过的 CSS 预处理器的优缺点。
  • 如果设计中使用了非标准的字体,你该如何去实现?
  • 请解释浏览器是如何判断元素是否匹配某个 CSS 选择器?
  • 请描述伪元素 (pseudo-elements) 及其用途。
  • 请解释你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
  • 请解释 * { box-sizing: border-box; } 的作用, 并且说明使用它有什么好处?
  • 请罗列出你所知道的 display 属性的全部值
  • 请解释 inline 和 inline-block 的区别?
  • 请解释 relative、fixed、absolute 和 static 元素的区别
  • CSS 中字母 ‘C’ 的意思是叠层 (Cascading)。请问在确定样式的过程中优先级是如何决定的 (请举例)?如何有效使用此系统?
  • 你在开发或生产环境中使用过哪些 CSS 框架?你觉得应该如何改善他们?
  • 请问你有尝试过 CSS Flexbox 或者 Grid 标准规格吗?
  • 为什么响应式设计 (responsive design) 和自适应设计 (adaptive design) 不同?
  • 你有兼容 retina 屏幕的经历吗?如果有,在什么地方使用了何种技术?
  • 请问为何要使用 translate() 而非 absolute positioning,或反之的理由?为什么?

JS 相关问题:

  • 请解释事件代理 (event delegation)。
  • 请解释 JavaScript 中 this 是如何工作的。
  • 请解释原型继承 (prototypal inheritance) 的原理。
  • 你怎么看 AMD vs. CommonJS?
  • 请解释为什么接下来这段代码不是 IIFE (立即调用的函数表达式):function foo(){ }();.
    • 要做哪些改动使它变成 IIFE?
  • 描述以下变量的区别:nullundefinedundeclared
    • 该如何检测它们?
  • 什么是闭包 (closure),如何使用它,为什么要使用它?
  • 请举出一个匿名函数的典型用例?
  • 你是如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
  • 请指出 JavaScript 宿主对象 (host objects) 和原生对象 (native objects) 的区别?
  • 请指出以下代码的区别:function Person(){}var person = Person()var person = new Person()
  • .call.apply 的区别是什么?
  • 请解释 Function.prototype.bind
  • 在什么时候你会使用 document.write()
  • 请指出浏览器特性检测,特性推断和浏览器 UA 字符串嗅探的区别?
  • 请尽可能详尽的解释 Ajax 的工作原理。
  • 使用 Ajax 都有哪些优劣?
  • 请解释 JSONP 的工作原理,以及它为什么不是真正的 Ajax。
  • 你使用过 JavaScript 模板系统吗?
    • 如有使用过,请谈谈你都使用过哪些库?
  • 请解释变量声明提升 (hoisting)。
  • 请描述事件冒泡机制 (event bubbling)。
  • “attribute” 和 “property” 的区别是什么?
  • 为什么扩展 JavaScript 内置对象不是好的做法?
  • 请指出 document load 和 document DOMContentLoaded 两个事件的区别。
  • ===== 有什么不同?
  • 请解释 JavaScript 的同源策略 (same-origin policy)。
  • 如何实现下列代码:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • 什么是三元表达式 (Ternary expression)?“三元 (Ternary)” 表示什么意思?
  • 什么是 "use strict"; ? 使用它的好处和坏处分别是什么?
  • 请实现一个遍历至 100 的 for loop 循环,在能被 3 整除时输出 “fizz”,在能被 5 整除时输出 “buzz”,在能同时被 35 整除时输出 “fizzbuzz”
  • 为何通常会认为保留网站现有的全局作用域 (global scope) 不去改变它,是较好的选择?
  • 为何你会使用 load 之类的事件 (event)?此事件有缺点吗?你是否知道其他替代品,以及为何使用它们?
  • 请解释什么是单页应用 (single page app), 以及如何使其对搜索引擎友好 (SEO-friendly)。
  • 你使用过 Promises 及其 polyfills 吗? 请写出 Promise 的基本用法(ES6)。
  • 使用 Promises 而非回调 (callbacks) 优缺点是什么?
  • 使用一种可以编译成 JavaScript 的语言来写 JavaScript 代码有哪些优缺点?
  • 你使用哪些工具和技术来调试 JavaScript 代码?
  • 你会使用怎样的语言结构来遍历对象属性 (object properties) 和数组内容?
  • 请解释可变 (mutable) 和不变 (immutable) 对象的区别。
    • 请举出 JavaScript 中一个不变性对象 (immutable object) 的例子?
    • 不变性 (immutability) 有哪些优缺点?
    • 如何用你自己的代码来实现不变性 (immutability)?
  • 请解释同步 (synchronous) 和异步 (asynchronous) 函数的区别。
  • 什么是事件循环 (event loop)?
    • 请问调用栈 (call stack) 和任务队列 (task queue) 的区别是什么?
  • 解释 function foo() {}var foo = function() {} 用法的区别

测试相关问题:

  • 对代码进行测试的有什么优缺点?
  • 你会用什么工具测试你的代码功能?
  • 单元测试与功能/集成测试的区别是什么?
  • 代码风格 linting 工具的作用是什么?

效能相关问题:

  • 你会用什么工具来查找代码中的性能问题?
  • 你会用什么方式来增强网站的页面滚动效能?
  • 请解释 layout、painting 和 compositing 的区别。

网络相关问题:

  • 为什么传统上利用多个域名来提供网站资源会更有效?
  • 请尽可能完整得描述从输入 URL 到整个网页加载完毕及显示在屏幕上的整个流程。
  • Long-Polling、Websockets 和 Server-Sent Event 之间有什么区别?
  • 请描述以下 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 什么是 HTTP method?请罗列出你所知道的所有 HTTP method,并给出解释。
  • 请解释 HTTP status 301 与 302 的区别?

代码相关的问题:

问题:foo的值是什么?

var foo = 10 + '20';

问题:如何实现以下函数?

add(2, 5); // 7
add(2)(5); // 7

问题:下面的语句的返回值是什么?

"i'm a lasagna hog".split("").reverse().join("");

问题:window.foo的值是什么?

( window.foo || ( window.foo = "bar" ) );

问题:下面两个 alert 的结果是什么?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

问题:foo.length的值是什么?

var foo = [];
foo.push(1);
foo.push(2);

问题:foo.x的值是什么?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

问题:下面代码的输出是什么?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

趣味问题:

  • 你最近写过什么的很酷的项目吗?
  • 在你使用的开发工具中,最喜欢哪些方面?
  • 谁使你踏足了前端开发领域?
  • 你有什么业余项目吗?是哪种类型的?
  • 你最爱的 IE 特性是什么?
  • 你对咖啡有没有什么喜好?

贡献者:

本文档始于 2009 年,是以下作者的合作成果:@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym

时至今日,文档已经融入超过 100 位开发者的贡献。

\ No newline at end of file +前端工作面试问题 ★ Front-end Job Interview Questions

前端工作面试问题

前端工作面试问题

本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能。

备注: 这些问题中很多都是开放性的,可以引发有趣的讨论。这比直接的答案更能体现此人的能力。

目录

  1. 常见问题
  2. HTML 相关问题
  3. CSS 相关问题
  4. JS 相关问题
  5. 测试相关问题
  6. 效能相关问题
  7. 网络相关问题
  8. 代码相关问题
  9. 趣味问题

参与协作

  1. 贡献者
  2. 如何参与贡献
  3. 许可协议

常见问题:

  • 你在昨天/本周学到了什么?
  • 编写代码的哪些方面能够使你兴奋或感兴趣?
  • 你最近遇到过什么技术挑战?你是如何解决的?
  • 在制作一个网页应用或网站的过程中,你是如何考虑其 UI、安全性、高性能、SEO、可维护性以及技术因素的?
  • 请谈谈你喜欢的开发环境。
  • 你最熟悉哪一套版本控制系统?
  • 你能描述当你制作一个网页的工作流程吗?
  • 假若你有 5 个不同的样式文件 (stylesheets), 整合进网站的最好方式是?
  • 你能描述渐进增强 (progressive enhancement) 和优雅降级 (graceful degradation) 之间的不同吗?
  • 你如何对网站的文件和资源进行优化?
  • 浏览器同一时间可以从一个域名下载多少资源?
    • 有什么例外吗?
  • 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
  • 如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做?
  • 请写一个简单的幻灯效果页面。
  • 如果今年你打算熟练掌握一项新技术,那会是什么?
  • 请谈谈你对网页标准和标准制定机构重要性的理解。
  • 什么是 FOUC (无样式内容闪烁)?你如何来避免 FOUC?
  • 请解释什么是 ARIA 和屏幕阅读器 (screenreaders),以及如何使网站实现无障碍访问 (accessible)。
  • 请解释 CSS 动画和 JavaScript 动画的优缺点。
  • 什么是跨域资源共享 (CORS)?它用于解决什么问题?

HTML 相关问题:

  • doctype(文档类型) 的作用是什么?
  • 浏览器标准模式 (standards mode) 、几乎标准模式(almost standards mode)和怪异模式 (quirks mode) 之间的区别是什么?
  • HTML 和 XHTML 有什么区别?
  • 如果页面使用 ‘application/xhtml+xml’ 会有什么问题吗?
  • 如果网页内容需要支持多语言,你会怎么做?
  • 在设计和开发多语言网站时,有哪些问题你必须要考虑?
  • 使用 data- 属性的好处是什么?
  • 如果把 HTML5 看作做一个开放平台,那它的构建模块有哪些?
  • 请描述 cookiessessionStoragelocalStorage 的区别。
  • 请解释 <script><script async><script defer> 的区别。
  • 为什么通常推荐将 CSS <link> 放置在 <head></head> 之间,而将 JS <script> 放置在 </body> 之前?你知道有哪些例外吗?
  • 什么是渐进式渲染 (progressive rendering)?
  • 你用过哪些不同的 HTML 模板语言?

CSS 相关问题:

  • CSS 中类 (classes) 和 ID 的区别。
  • 请问 “resetting” 和 “normalizing” CSS 之间的区别?你会如何选择,为什么?
  • 请解释浮动 (Floats) 及其工作原理。
  • 描述z-index和叠加上下文是如何形成的。
  • 请描述 BFC(Block Formatting Context) 及其如何工作。
  • 列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。
  • 请解释 CSS sprites,以及你要如何在页面或网站中实现它。
  • 你最喜欢的图片替换方法是什么,你如何选择使用。
  • 你会如何解决特定浏览器的样式问题?
  • 如何为有功能限制的浏览器提供网页?
    • 你会使用哪些技术和处理方法?
  • 有哪些的隐藏内容的方法 (如果同时还要保证屏幕阅读器可用呢)?
  • 你用过栅格系统 (grid system) 吗?如果使用过,你最喜欢哪种?
  • 你用过媒体查询,或针对移动端的布局/CSS 吗?
  • 你熟悉 SVG 样式的书写吗?
  • 如何优化网页的打印样式?
  • 在书写高效 CSS 时会有哪些问题需要考虑?
  • 使用 CSS 预处理器的优缺点有哪些?
    • 请描述你曾经使用过的 CSS 预处理器的优缺点。
  • 如果设计中使用了非标准的字体,你该如何去实现?
  • 请解释浏览器是如何判断元素是否匹配某个 CSS 选择器?
  • 请描述伪元素 (pseudo-elements) 及其用途。
  • 请解释你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
  • 请解释 * { box-sizing: border-box; } 的作用, 并且说明使用它有什么好处?
  • 请罗列出你所知道的 display 属性的全部值
  • 请解释 inline 和 inline-block 的区别?
  • 请解释 relative、fixed、absolute 和 static 元素的区别
  • CSS 中字母 ‘C’ 的意思是叠层 (Cascading)。请问在确定样式的过程中优先级是如何决定的 (请举例)?如何有效使用此系统?
  • 你在开发或生产环境中使用过哪些 CSS 框架?你觉得应该如何改善他们?
  • 请问你有尝试过 CSS Flexbox 或者 Grid 标准规格吗?
  • 为什么响应式设计 (responsive design) 和自适应设计 (adaptive design) 不同?
  • 你有兼容 retina 屏幕的经历吗?如果有,在什么地方使用了何种技术?
  • 请问为何要使用 translate() 而非 absolute positioning,或反之的理由?为什么?

JS 相关问题:

  • 请解释事件代理 (event delegation)。
  • 请解释 JavaScript 中 this 是如何工作的。
  • 请解释原型继承 (prototypal inheritance) 的原理。
  • 你怎么看 AMD vs. CommonJS?
  • 请解释为什么接下来这段代码不是 IIFE (立即调用的函数表达式):function foo(){ }();.
    • 要做哪些改动使它变成 IIFE?
  • 描述以下变量的区别:nullundefinedundeclared
    • 该如何检测它们?
  • 什么是闭包 (closure),如何使用它,为什么要使用它?
  • 请举出一个匿名函数的典型用例?
  • 你是如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
  • 请指出 JavaScript 宿主对象 (host objects) 和原生对象 (native objects) 的区别?
  • 请指出以下代码的区别:function Person(){}var person = Person()var person = new Person()
  • .call.apply 的区别是什么?
  • 请解释 Function.prototype.bind
  • 在什么时候你会使用 document.write()
  • 请指出浏览器特性检测,特性推断和浏览器 UA 字符串嗅探的区别?
  • 请尽可能详尽的解释 Ajax 的工作原理。
  • 使用 Ajax 都有哪些优劣?
  • 请解释 JSONP 的工作原理,以及它为什么不是真正的 Ajax。
  • 你使用过 JavaScript 模板系统吗?
    • 如有使用过,请谈谈你都使用过哪些库?
  • 请解释变量声明提升 (hoisting)。
  • 请描述事件冒泡机制 (event bubbling)。
  • “attribute” 和 “property” 的区别是什么?
  • 为什么扩展 JavaScript 内置对象不是好的做法?
  • 请指出 document load 和 document DOMContentLoaded 两个事件的区别。
  • ===== 有什么不同?
  • 请解释 JavaScript 的同源策略 (same-origin policy)。
  • 如何实现下列代码:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • 什么是三元表达式 (Ternary expression)?“三元 (Ternary)” 表示什么意思?
  • 什么是 "use strict"; ? 使用它的好处和坏处分别是什么?
  • 请实现一个遍历至 100 的 for loop 循环,在能被 3 整除时输出 “fizz”,在能被 5 整除时输出 “buzz”,在能同时被 35 整除时输出 “fizzbuzz”
  • 为何通常会认为保留网站现有的全局作用域 (global scope) 不去改变它,是较好的选择?
  • 为何你会使用 load 之类的事件 (event)?此事件有缺点吗?你是否知道其他替代品,以及为何使用它们?
  • 请解释什么是单页应用 (single page app), 以及如何使其对搜索引擎友好 (SEO-friendly)。
  • 你使用过 Promises 及其 polyfills 吗? 请写出 Promise 的基本用法(ES6)。
  • 使用 Promises 而非回调 (callbacks) 优缺点是什么?
  • 使用一种可以编译成 JavaScript 的语言来写 JavaScript 代码有哪些优缺点?
  • 你使用哪些工具和技术来调试 JavaScript 代码?
  • 你会使用怎样的语言结构来遍历对象属性 (object properties) 和数组内容?
  • 请解释可变 (mutable) 和不变 (immutable) 对象的区别。
    • 请举出 JavaScript 中一个不变性对象 (immutable object) 的例子?
    • 不变性 (immutability) 有哪些优缺点?
    • 如何用你自己的代码来实现不变性 (immutability)?
  • 请解释同步 (synchronous) 和异步 (asynchronous) 函数的区别。
  • 什么是事件循环 (event loop)?
    • 请问调用栈 (call stack) 和任务队列 (task queue) 的区别是什么?
  • 解释 function foo() {}var foo = function() {} 用法的区别

测试相关问题:

  • 对代码进行测试的有什么优缺点?
  • 你会用什么工具测试你的代码功能?
  • 单元测试与功能/集成测试的区别是什么?
  • 代码风格 linting 工具的作用是什么?

效能相关问题:

  • 你会用什么工具来查找代码中的性能问题?
  • 你会用什么方式来增强网站的页面滚动效能?
  • 请解释 layout、painting 和 compositing 的区别。

网络相关问题:

  • 为什么传统上利用多个域名来提供网站资源会更有效?
  • 请尽可能完整得描述从输入 URL 到整个网页加载完毕及显示在屏幕上的整个流程。
  • Long-Polling、Websockets 和 Server-Sent Event 之间有什么区别?
  • 请描述以下 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 什么是 HTTP method?请罗列出你所知道的所有 HTTP method,并给出解释。
  • 请解释 HTTP status 301 与 302 的区别?

代码相关的问题:

问题:foo的值是什么?

var foo = 10 + '20';

问题:如何实现以下函数?

add(2, 5); // 7
add(2)(5); // 7

问题:下面的语句的返回值是什么?

"i'm a lasagna hog".split("").reverse().join("");

问题:window.foo的值是什么?

( window.foo || ( window.foo = "bar" ) );

问题:下面两个 alert 的结果是什么?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

问题:foo.length的值是什么?

var foo = [];
foo.push(1);
foo.push(2);

问题:foo.x的值是什么?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

问题:下面代码的输出是什么?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

趣味问题:

  • 你最近写过什么的很酷的项目吗?
  • 在你使用的开发工具中,最喜欢哪些方面?
  • 谁使你踏足了前端开发领域?
  • 你有什么业余项目吗?是哪种类型的?
  • 你最爱的 IE 特性是什么?
  • 你对咖啡有没有什么喜好?

贡献者:

本文档始于 2009 年,是以下作者的合作成果:@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym

时至今日,文档已经融入超过 100 位开发者的贡献。

\ No newline at end of file diff --git a/_site/translations/croatian/index.html b/_site/translations/croatian/index.html index 324fc7c7e..cb563e2fb 100644 --- a/_site/translations/croatian/index.html +++ b/_site/translations/croatian/index.html @@ -1 +1 @@ -Intervju za posao Front-end Developera ★ Front-end Job Interview Questions

Intervju za posao Front-end Developera

Intervju za posao Front-end Developera

@version 2.0.0

Ovaj repozitorij sadrži brojna pitanja za intervju iz područja front-end-a koja možete koristiti u procjeni potencijalnih kandidata. Nikako se ne preporuča da upotrijebite svako ovdje navedeno pitanje za jednog kandidata (to bi trajalo satima). Odabir nekoliko ciljanih pitanja s ove liste bi Vam trebao pomoći u odabiru.

Rebecca Murphey Baseline For Front-End Developers je prilično dobro štivo za pročitati prije samog razgovora.

Napomena: Imajte na umu da su mnoga ovdje navedena pitanja otvorenog tipa i mogla bi voditi u zanimljive rasprave koje govore više o sposobnostima osobe nego pitanja sa direktnim odgovorima.

Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je u originalu pokrenuo Paul Irish (@paul_irish) i kojoj su pridonijele sljedeće osobe:

Općenita pitanja:

  • Opišite Vašu preferiranu razvojnu okolinu. (OS, Editor, Broseri, Alati itd.)
  • Možete li opisati Vaš postupak izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektiranje mogućnosti browsera
  • Objasnite što je to “Semantički HTML”.
  • Kako biste optimirali infrastrukturu i resurse web stranice?
    • Traženje više rješenja poput:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korištenje CDN-a
      • Međuspremanje (Caching)
      • itd.
  • Zašto je sadržaj bolje poslužiti sa više domena?
    • Koliko resursa preglednik skida sa jedne domene odjednom?
  • Navedite tri načina za smanjivanje vremena učitavanja stranice. (primijećeno ili stvarno vrijeme učitavanje)
  • Ako bi došli na projekt gdje se koriste tabovi a Vi koristite razmake, što biste učinili?
    • Npr. preporučanje korištenja EditorConfig-a (http://editorconfig.org)
    • Konformacija postojećoj praksi (zadržavanje konzistentnosti)
    • korištenje :retab! naredbe
  • Napravite jednostavnu stranicu za držanje prezentacije
    • Bonus bodovi za nekorištenje JavaScript-a.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kad bi mogli odabrati jednu tehologiju koju ćete naučiti ove godine, što bi to bila?
  • Objasnite važnost standarda i tijela za standardizaciju
  • Što je FOUC? Kako biste izbjegli FOUC?

Pitanja za HTML:

  • Što radi doctype?
  • Koja je razlika između standardnog i dosjetljivog (quirks) modusa?
  • Koja su ograničenja kod posluživanja XHTML stranica?
    • Postoje li problemi kod posluživanja stranica sa application/xhtml+xml?
  • Kako biste poslužili stranicu sa sadržajem na više jezika?
    • Na što morate paziti kod dizajniranja ili razvoja za višejezičnu stranicu?
  • Za što se koriste data- atributi?
  • Razmotrite HTML5 kao platformu otvorenog web-a. Koji su gradivni elementi HTML5-ice?
  • Pojasnite razliku između kolačića, podataka sjednice (sessionStorage) i lokalne pohrane.

Pitanja za JavaScript:

  • Objasnite delegaciju događaja.
  • Objasnite kako se u Javascriptu koristi this
  • Pojasnite prototipno nasljeđivanje
  • Kako testirate JavaScript?
  • AMD u usporedbi sa CommonJS-om?
  • Što je to hash tabela?
  • Što su undefined i undeclared varijable?
  • Što je closure, kako i zašto se koristi?
    • Vaš omiljeni način njihovog kreiranja? argyle (samo kod IIFE-a)
  • Koja je uobičajena primjena za anonimnu funkciju?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za spomen čistih imenskih prostora (namespacing)
    • Što učiniti ako moduli nemaju imenske prostore
  • Kako organizirate kod? (module pattern, klasično nasljeđivanje?)
  • Koja je razlika između host i native objekta?
  • Razlika između:
function Person(){} var person = Person() var person = new Person()
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kad optimirate Vaš kod?
  • Možete li objasniti nasljeđivanje u JavaScriptu?
  • Kada biste koristili document.write()?
    • Većina generiranih oglasa još uvijek koristi document.write() premda se to zamjera.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korištenja UA string-a
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i zašto nije pravi AJAX)
  • Da li ste ikad koristili JavaScript predloške (templating)?
    • Ako da, koje ste biblioteke koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi došli do parametra iz URL adrese prozora preglednika.
  • Objasnite politiku jednog izvorišta gledano sa stajališta JavaScript-e.
  • Opišite načine nasljeđivanja u JavaScript-u.
  • Popravite:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opišite strategiju za memoizaciju (izbjegavanje ponovljenog računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Što je arnost funkcije?
  • Što je "use strict";? Koje su mane, koje prednosti?

JavaScript primjeri koda:

~~3.14

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: 3

"Ovo je proba".split("").reverse().join("");

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: "aborp ej ovO"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koju vrijednost ima window.foo?
Odgovor: "bar"
Samo ako window.foo nije istinit u suprotnom će zadržati vrijednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Kako će izgledati obavijesti iz gornjeg primjera?
Odgovor: “Hello World” nakon toga ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: undefined

Pitanja za jQuery:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korištenja jQuery-a poznajete?
  • Što radi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u imenski prostor (namespace)?
  • Navedite četiri vrijednosti koje možete poslati jQuery metodi.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Što je red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor:
$(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Pitanja za CSS:

  • Objasnite što je to “reset” CSS i zašto je koristan.
  • Opišite što su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i koji su konteksti prikladni za njihovu primjenu?
  • Pojasnite CSS sprite-ove i kako biste ih izveli na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamjene slike i kada ih koristite?
  • CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako poslužujete sadržaj za preglednike (browser-e) slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (ostaju dostupni samo screen reader-ima)?
  • Da li ste ikad koristili grid system, ako jeste koji preferirate?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifičan za mobile?
  • Imate li iskustva u stiliziranju sa SVG-om?
  • Kako optimirate stranice za ispis?
  • Koje su “kvake” za pisanje učinkovitog CSS-a?
  • Koje su prednosti/nedostatci korištenja CSS preprocessore? (SASS, Compass, Stylus, LESS)
    • Ako da, opišite što vam se (ne)sviđa kod CSS preprocessora koje ste koristili.
  • Kako bi izradili preliminarni web dizajn koji ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.

Opcionalna zabavna pitanja:

  • Koja je najbolja stvar koju ste isprogramirali, na što ste najviše ponosni?
  • Koji su Vam omiljena svojstva razvojnih alata koje koristite?
  • Imate li kakve omiljene vlastite projekte? Koje?
  • Koja Vam je omiljena mogućnost Internet Explorer-a?
\ No newline at end of file +Intervju za posao Front-end Developera ★ Front-end Job Interview Questions

Intervju za posao Front-end Developera

Intervju za posao Front-end Developera

@version 2.0.0

Ovaj repozitorij sadrži brojna pitanja za intervju iz područja front-end-a koja možete koristiti u procjeni potencijalnih kandidata. Nikako se ne preporuča da upotrijebite svako ovdje navedeno pitanje za jednog kandidata (to bi trajalo satima). Odabir nekoliko ciljanih pitanja s ove liste bi Vam trebao pomoći u odabiru.

Rebecca Murphey Baseline For Front-End Developers je prilično dobro štivo za pročitati prije samog razgovora.

Napomena: Imajte na umu da su mnoga ovdje navedena pitanja otvorenog tipa i mogla bi voditi u zanimljive rasprave koje govore više o sposobnostima osobe nego pitanja sa direktnim odgovorima.

Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je u originalu pokrenuo Paul Irish (@paul_irish) i kojoj su pridonijele sljedeće osobe:

Općenita pitanja:

  • Opišite Vašu preferiranu razvojnu okolinu. (OS, Editor, Broseri, Alati itd.)
  • Možete li opisati Vaš postupak izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektiranje mogućnosti browsera
  • Objasnite što je to “Semantički HTML”.
  • Kako biste optimirali infrastrukturu i resurse web stranice?
    • Traženje više rješenja poput:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korištenje CDN-a
      • Međuspremanje (Caching)
      • itd.
  • Zašto je sadržaj bolje poslužiti sa više domena?
    • Koliko resursa preglednik skida sa jedne domene odjednom?
  • Navedite tri načina za smanjivanje vremena učitavanja stranice. (primijećeno ili stvarno vrijeme učitavanje)
  • Ako bi došli na projekt gdje se koriste tabovi a Vi koristite razmake, što biste učinili?
    • Npr. preporučanje korištenja EditorConfig-a (http://editorconfig.org)
    • Konformacija postojećoj praksi (zadržavanje konzistentnosti)
    • korištenje :retab! naredbe
  • Napravite jednostavnu stranicu za držanje prezentacije
    • Bonus bodovi za nekorištenje JavaScript-a.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kad bi mogli odabrati jednu tehologiju koju ćete naučiti ove godine, što bi to bila?
  • Objasnite važnost standarda i tijela za standardizaciju
  • Što je FOUC? Kako biste izbjegli FOUC?

Pitanja za HTML:

  • Što radi doctype?
  • Koja je razlika između standardnog i dosjetljivog (quirks) modusa?
  • Koja su ograničenja kod posluživanja XHTML stranica?
    • Postoje li problemi kod posluživanja stranica sa application/xhtml+xml?
  • Kako biste poslužili stranicu sa sadržajem na više jezika?
    • Na što morate paziti kod dizajniranja ili razvoja za višejezičnu stranicu?
  • Za što se koriste data- atributi?
  • Razmotrite HTML5 kao platformu otvorenog web-a. Koji su gradivni elementi HTML5-ice?
  • Pojasnite razliku između kolačića, podataka sjednice (sessionStorage) i lokalne pohrane.

Pitanja za JavaScript:

  • Objasnite delegaciju događaja.
  • Objasnite kako se u Javascriptu koristi this
  • Pojasnite prototipno nasljeđivanje
  • Kako testirate JavaScript?
  • AMD u usporedbi sa CommonJS-om?
  • Što je to hash tabela?
  • Što su undefined i undeclared varijable?
  • Što je closure, kako i zašto se koristi?
    • Vaš omiljeni način njihovog kreiranja? argyle (samo kod IIFE-a)
  • Koja je uobičajena primjena za anonimnu funkciju?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za spomen čistih imenskih prostora (namespacing)
    • Što učiniti ako moduli nemaju imenske prostore
  • Kako organizirate kod? (module pattern, klasično nasljeđivanje?)
  • Koja je razlika između host i native objekta?
  • Razlika između:
function Person(){} var person = Person() var person = new Person()
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kad optimirate Vaš kod?
  • Možete li objasniti nasljeđivanje u JavaScriptu?
  • Kada biste koristili document.write()?
    • Većina generiranih oglasa još uvijek koristi document.write() premda se to zamjera.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korištenja UA string-a
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i zašto nije pravi AJAX)
  • Da li ste ikad koristili JavaScript predloške (templating)?
    • Ako da, koje ste biblioteke koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi došli do parametra iz URL adrese prozora preglednika.
  • Objasnite politiku jednog izvorišta gledano sa stajališta JavaScript-e.
  • Opišite načine nasljeđivanja u JavaScript-u.
  • Popravite:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opišite strategiju za memoizaciju (izbjegavanje ponovljenog računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Što je arnost funkcije?
  • Što je "use strict";? Koje su mane, koje prednosti?

JavaScript primjeri koda:

~~3.14

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: 3

"Ovo je proba".split("").reverse().join("");

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: "aborp ej ovO"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koju vrijednost ima window.foo?
Odgovor: "bar"
Samo ako window.foo nije istinit u suprotnom će zadržati vrijednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Kako će izgledati obavijesti iz gornjeg primjera?
Odgovor: “Hello World” nakon toga ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: undefined

Pitanja za jQuery:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korištenja jQuery-a poznajete?
  • Što radi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u imenski prostor (namespace)?
  • Navedite četiri vrijednosti koje možete poslati jQuery metodi.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Što je red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor:
$(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Pitanja za CSS:

  • Objasnite što je to “reset” CSS i zašto je koristan.
  • Opišite što su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i koji su konteksti prikladni za njihovu primjenu?
  • Pojasnite CSS sprite-ove i kako biste ih izveli na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamjene slike i kada ih koristite?
  • CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako poslužujete sadržaj za preglednike (browser-e) slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (ostaju dostupni samo screen reader-ima)?
  • Da li ste ikad koristili grid system, ako jeste koji preferirate?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifičan za mobile?
  • Imate li iskustva u stiliziranju sa SVG-om?
  • Kako optimirate stranice za ispis?
  • Koje su “kvake” za pisanje učinkovitog CSS-a?
  • Koje su prednosti/nedostatci korištenja CSS preprocessore? (SASS, Compass, Stylus, LESS)
    • Ako da, opišite što vam se (ne)sviđa kod CSS preprocessora koje ste koristili.
  • Kako bi izradili preliminarni web dizajn koji ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.

Opcionalna zabavna pitanja:

  • Koja je najbolja stvar koju ste isprogramirali, na što ste najviše ponosni?
  • Koji su Vam omiljena svojstva razvojnih alata koje koristite?
  • Imate li kakve omiljene vlastite projekte? Koje?
  • Koja Vam je omiljena mogućnost Internet Explorer-a?
\ No newline at end of file diff --git a/_site/translations/czech/index.html b/_site/translations/czech/index.html index 95acb0149..4b3136cb8 100644 --- a/_site/translations/czech/index.html +++ b/_site/translations/czech/index.html @@ -1 +1 @@ -Front-end vývojář – otázky k pohovoru ★ Front-end Job Interview Questions

Front-end vývojář – otázky k pohovoru

Front-end vývojář – otázky k pohovoru

Tento repozitář obsahuje řadu otázek, které můžete směle položit u pohovoru kandidátovi na pozici front-end vývojář a ověřit si tak jeho znalosti v tomto oboru. Není zamýšleno položit všechny tyto otázky (jejich korektní zodpovězení by trvalo hodiny), leč pouze určitou část vyhovující vašim potřebám.

Za přečtení stojí také:

Poznámka: Mějte na paměti, že tyto otázky mají vést spíše k diskusi na dané téma a prozradit tak něco více o schopnostech daného vývojáře než aby byly zodpovězeny jedním slovem nebo větou.

Obsah

  1. Původní přispěvovatelé
  2. Obecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky

Původní přispěvovatelé:

Většina otázek byla převzata z oksoclap původně vytvořeného Paulem Irishem (@paul_irish) a následně doplněna těmito osobami:

[⬆]

Obecné otázky:

  • Co jste se naučili včera/minulý týden nového?
  • Co Vás vzrušuje nebo zajímá na kódování?
  • Povězte něco o Vašem oblíbeném vývojovém prostředí (operační systém, editor, prohlížeč, nástroje, atd.).
  • Popište jak postupujete při vytváření nové webové stránky.
  • Dokážete vysvětlit rozdíl mezi pozvolným degradováním (graceful degradation) a postupným vylepšováním(progressive enhancement)?
    • Body navíc za popsání detekce pokročilé funkcionality
  • Vysvětlete pojem “sémantické HTML”.
  • Jak byste optimalizovali zdroje (obrázky, JS, CSS, atd.) webové stránky?
    • K dispozici je celá řada optimalizací např.:
      • Spojování souborů
      • Minifikace souborů
      • CDN hostování
      • Caching
      • atd.
  • Proč je lepší posílat zdroje webové stránky z více domén?
    • Kolik souborů může z dané domény stahovat prohlížeš najednou?
  • Vyjmenujte tři způsoby jak snížit dobu nahrávání webové stránky (vnímanou nebo skutečnou dobu nahrávání)
  • Pokud naskočíte do projektu, kde se místo odsazování tabulátory používají mezery, co uděláte?
    • Navrhnutí, že projekt by mohl využívat něco jako EditorConfig (http://editorconfig.org)
    • Přízpůsobení se konvenci (ale zústat konzistentní).
    • issue :retab! command
  • Napište jednoduchou stránku se slideshow.
    • Body navíc pokud nepoužívá JS.
  • Jaké nástroje používáte pro testování rychlosti Vašeho kódu?
    • Profiler, JSPerf, Dromaeo
  • Pokud byste se chtěl/chtěla letos naučit jednu novou technologii, která by to byla?
  • Vysvětlete důležitost standardů a standardizačních orgánů
  • Co to je FOUC? Jak je možné se vyhnout FOUC?

[⬆]

HTML otázky:

  • Co dělá doctype ?
  • Jaký je rozdíl mezi standardním módem a quirks módem?
  • Jaká jsou omezení při poskytování XHTML stránek?
    • Existuje nějaký problém při poskytování stránek jako application/xhtml+xml?
  • Jak poskytujete stránku s vícejazyčným obsahem?
    • Na co všechno si musíte dát pozor při vytváření vícejazyčné stránky?
  • K čemu je dobrý atribut data-?
  • Uvažujte o HTML5 jako o otevření platormě. Jaké jsou základní stavební kameny HTML5?
  • Popište rozdíl mezi cookies, sessionStorage a localStorage.

[⬆]

CSS otázky:

  • Popište co děla a k čemu je dobrý “reset” CSS soubor.
  • Popište obtékání (floats) a jak funguje.
  • Popiště různé techniky pro zastavení obtékání (clear fixing) a řekněte, které se hodí v kterém kontextu.
  • Vysvětlete, co to jsou CSS sprites a jak byste je implementovali.
  • Jaká je Vaše oblíbená technika pro nahrazování obrázků a kterou a kdy používáte?
  • CSS property hacks, kondicionální vkládání .css souborů nebo něco dalšího?
  • Jak poskytujete stránky pro funkcionálně/vlastnostmi omezený prohlížeč?
    • Jakou techniku/proces používáte?
  • Jaké jsou způsoby pro zneviditelní obsahu (a zachování jeho dostupnosti pro čtečky)?
  • Použili jste někdy grid system a pokud ano, který upřednostňujete?
  • Použili jset někdy mediální selektor (media query) nebo specifický layout/CSS pro mobilní zařízení?
  • Máte nějaké zkušenosti s vytvářením SVG?
  • Jak optimalizujete stránky pro tisk?
  • Jaké jsou zásady pro psaní efektnivního CSS?
  • Jaké jsou výhody/nevýhody použítí CSS preprocesorů (SASS, Compass, Stylus, LESS)?
    • Popiště, co se Vám na CSS preprocesorech, které jste použili, líbí/nelíbí.
  • Jak byste implementovali návrh webové stránky, která používá nestandardní řezy písma?
    • Webfonts (služby typu: Google Webfonts, Typekit etc.)
  • Vysvětlete jak prohlížeč určuje, který element odpovída CSS selektoru.
  • Vysvětlete Vaše chápání box modelu a jak řeknete pomocí CSS prohlížeči, aby Váš layout vykreslil v odlišném box modelu

[⬆]

JS otázky:

  • Vysvětlete delegaci událostí.
  • Vysvětlete jak funguje this v JavaScriptu.
  • Vysvětlete jak funguje funguje prototypová dědičnost.
  • Jak testujete JavaScript?
  • AMD vs. CommonJS?
  • Co je hashovací tabulka?
  • Vysvětlete proč následující volání nebude fungovat jako IIFE: function foo(){ }();.
    • Co musíte změnit, aby volání zafungovalo jako IIFE?
  • Vysvětlete rozdíl mezi proměnou, která je null, nedefinovaná nebo nedeklarovaná?
    • Jakým způsobem ověříte jednotlivé stavy proměnné?
  • Co to je closure a jak/proč bychom je měli používat?
  • Jaké je typické využití pro anonymní funkce?
  • Vysvětlete “JavaScript module pattern” a kdybyste ho měli použít.
    • Body navíc za zmínku o čistých jmených prostorech.
    • Co když moduly nemají jmené prostory?
  • Jak organizujete Váš kód? Module pattern, klasická dědičn5ost?
  • Jaký je rozdíl mezi nativními a hostitelskými objekty?
  • Rozdíl mezi:
function Person(){} var person = Person() var person = new Person()
  • Jaký je rozdíl mezi .call a .apply?
  • Jaký je rozdíl mezi undefined and null?
  • Vysvětlete Function.prototype.bind.
  • Kdy optimalizujete Váš kód?
  • Vysvětlete jak funguje dědičnost v JavaScriptu.
  • Kdy byste použili document.write()?
    • Většina generovaných reklam stále používá tento přístup i přesto, že je to dlouhodobě odsuzováno.
  • Jaký je rozdíl mezi detekcí vlastností, odvození vlastností a použití UA řetězce?
  • Vysvětlete AJAX co nejpodrobněji to jde.
  • Vysvětlete jak funguje JSONP (a proč to není opravdový AJAX).
  • Použili jste někdy JavaScriptové šablony?
    • Pokud ano, které knihovny jste použili (Mustache.js, Handlebars etc.)?
  • Vysvětlete “hoisting”.
  • Vysvětlete probublávání událostí.
  • Jaký je rozdíl mezi atributem (attribute) a vlastností (property)?
  • Proč není dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Proč je dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Jaký je rozdíl mezi událostmi document load a document ready?
  • Jaký je rozdíl mezi == a ===?
  • Vysvětlete jakým způsobem získáte parametr z URL zadaného v okně prohlížeče.
  • Vysvětlete JavaScriptové pravidlo stejného původu (same-origin policy).
  • Popište přístupy k dědění v JavaScriptu.
  • Následující kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Popište strategie pro memorizaci (odstranění opakovaných výpočtů) v JavaScriptu.
  • Proč se říká ternární operátor, co označuje slovo ternární?
  • Co je označováné jako “arity” funkce?
  • Co znamená "use strict";? Jaké jsou výhody a nevýhody použití?

[⬆]

jQuery otázky:

  • Vysvětlete řetězení (chaining).
  • Vysvětlete odkládání (deferreds).
  • Jaké znáte a umíte implementovat optimalizace speciálně pro jQuery?
  • Co dělá .end()?
  • Jak a proč byste váš event handler opatřili jmeným prostorem?
  • Jmenujte čtyři různé typy hodnot, které můžete předat jako vstupní parametr metod v jQuery.
    • Selektor (řetězec), HTML (řetězec), Callback (funkce), HTMLElement, object, pole, pole elementu, jQuery Object, atd.
  • Co to je fronta efektů (nebo fx fronta)?
  • Jaký je rozdíl mezi .get(), [] a .eq()?
  • Jaký je rozdíl mezi .bind(), .live() a .delegate()?
  • Jaký je rozdíl mezi $ a $.fn? Nebo jenom, co je $.fn?
  • Zoptimalizujte tento selektor:
$(".foo div#bar:eq(0)")
  • Jaký je rozdíl mezi ‘delegate()’ a ‘live()’?

[⬆]

Otázky z kódu:

~~3.14

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: 3

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Otázka: Jakou hodnotu má window.foo?
Odpověď: "bar"
pouze pokud window.foo bylo false, jinak vrátí svojí hodnotu.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Otázka: Co zobrazí uvedené dva alerty?
Odpověď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Jaká je hodnota foo.length?
Odpověď: 2

var foo = {};
foo.bar = 'hello';

Otázka: Jaká je hodnota foo.length?
Odpověď: undefined

[⬆]

Zábavné otázky:

  • Jaká je nejúžasnější věc, kterou jste kdy nakódovali, nebo na kterou jste nejvíce pyšní?
  • Jaké jsou Vaše oblíbené části vývojářských nástrojů, které používáte?
  • Máte nějaký vlastní hobby projekt?
  • Jaká je Vaše oblíbená vlastnost Internet Exploreru?

[⬆]

\ No newline at end of file +Front-end vývojář – otázky k pohovoru ★ Front-end Job Interview Questions

Front-end vývojář – otázky k pohovoru

Front-end vývojář – otázky k pohovoru

Tento repozitář obsahuje řadu otázek, které můžete směle položit u pohovoru kandidátovi na pozici front-end vývojář a ověřit si tak jeho znalosti v tomto oboru. Není zamýšleno položit všechny tyto otázky (jejich korektní zodpovězení by trvalo hodiny), leč pouze určitou část vyhovující vašim potřebám.

Za přečtení stojí také:

Poznámka: Mějte na paměti, že tyto otázky mají vést spíše k diskusi na dané téma a prozradit tak něco více o schopnostech daného vývojáře než aby byly zodpovězeny jedním slovem nebo větou.

Obsah

  1. Původní přispěvovatelé
  2. Obecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky

Původní přispěvovatelé:

Většina otázek byla převzata z oksoclap původně vytvořeného Paulem Irishem (@paul_irish) a následně doplněna těmito osobami:

[⬆]

Obecné otázky:

  • Co jste se naučili včera/minulý týden nového?
  • Co Vás vzrušuje nebo zajímá na kódování?
  • Povězte něco o Vašem oblíbeném vývojovém prostředí (operační systém, editor, prohlížeč, nástroje, atd.).
  • Popište jak postupujete při vytváření nové webové stránky.
  • Dokážete vysvětlit rozdíl mezi pozvolným degradováním (graceful degradation) a postupným vylepšováním(progressive enhancement)?
    • Body navíc za popsání detekce pokročilé funkcionality
  • Vysvětlete pojem “sémantické HTML”.
  • Jak byste optimalizovali zdroje (obrázky, JS, CSS, atd.) webové stránky?
    • K dispozici je celá řada optimalizací např.:
      • Spojování souborů
      • Minifikace souborů
      • CDN hostování
      • Caching
      • atd.
  • Proč je lepší posílat zdroje webové stránky z více domén?
    • Kolik souborů může z dané domény stahovat prohlížeš najednou?
  • Vyjmenujte tři způsoby jak snížit dobu nahrávání webové stránky (vnímanou nebo skutečnou dobu nahrávání)
  • Pokud naskočíte do projektu, kde se místo odsazování tabulátory používají mezery, co uděláte?
    • Navrhnutí, že projekt by mohl využívat něco jako EditorConfig (http://editorconfig.org)
    • Přízpůsobení se konvenci (ale zústat konzistentní).
    • issue :retab! command
  • Napište jednoduchou stránku se slideshow.
    • Body navíc pokud nepoužívá JS.
  • Jaké nástroje používáte pro testování rychlosti Vašeho kódu?
    • Profiler, JSPerf, Dromaeo
  • Pokud byste se chtěl/chtěla letos naučit jednu novou technologii, která by to byla?
  • Vysvětlete důležitost standardů a standardizačních orgánů
  • Co to je FOUC? Jak je možné se vyhnout FOUC?

[⬆]

HTML otázky:

  • Co dělá doctype ?
  • Jaký je rozdíl mezi standardním módem a quirks módem?
  • Jaká jsou omezení při poskytování XHTML stránek?
    • Existuje nějaký problém při poskytování stránek jako application/xhtml+xml?
  • Jak poskytujete stránku s vícejazyčným obsahem?
    • Na co všechno si musíte dát pozor při vytváření vícejazyčné stránky?
  • K čemu je dobrý atribut data-?
  • Uvažujte o HTML5 jako o otevření platormě. Jaké jsou základní stavební kameny HTML5?
  • Popište rozdíl mezi cookies, sessionStorage a localStorage.

[⬆]

CSS otázky:

  • Popište co děla a k čemu je dobrý “reset” CSS soubor.
  • Popište obtékání (floats) a jak funguje.
  • Popiště různé techniky pro zastavení obtékání (clear fixing) a řekněte, které se hodí v kterém kontextu.
  • Vysvětlete, co to jsou CSS sprites a jak byste je implementovali.
  • Jaká je Vaše oblíbená technika pro nahrazování obrázků a kterou a kdy používáte?
  • CSS property hacks, kondicionální vkládání .css souborů nebo něco dalšího?
  • Jak poskytujete stránky pro funkcionálně/vlastnostmi omezený prohlížeč?
    • Jakou techniku/proces používáte?
  • Jaké jsou způsoby pro zneviditelní obsahu (a zachování jeho dostupnosti pro čtečky)?
  • Použili jste někdy grid system a pokud ano, který upřednostňujete?
  • Použili jset někdy mediální selektor (media query) nebo specifický layout/CSS pro mobilní zařízení?
  • Máte nějaké zkušenosti s vytvářením SVG?
  • Jak optimalizujete stránky pro tisk?
  • Jaké jsou zásady pro psaní efektnivního CSS?
  • Jaké jsou výhody/nevýhody použítí CSS preprocesorů (SASS, Compass, Stylus, LESS)?
    • Popiště, co se Vám na CSS preprocesorech, které jste použili, líbí/nelíbí.
  • Jak byste implementovali návrh webové stránky, která používá nestandardní řezy písma?
    • Webfonts (služby typu: Google Webfonts, Typekit etc.)
  • Vysvětlete jak prohlížeč určuje, který element odpovída CSS selektoru.
  • Vysvětlete Vaše chápání box modelu a jak řeknete pomocí CSS prohlížeči, aby Váš layout vykreslil v odlišném box modelu

[⬆]

JS otázky:

  • Vysvětlete delegaci událostí.
  • Vysvětlete jak funguje this v JavaScriptu.
  • Vysvětlete jak funguje funguje prototypová dědičnost.
  • Jak testujete JavaScript?
  • AMD vs. CommonJS?
  • Co je hashovací tabulka?
  • Vysvětlete proč následující volání nebude fungovat jako IIFE: function foo(){ }();.
    • Co musíte změnit, aby volání zafungovalo jako IIFE?
  • Vysvětlete rozdíl mezi proměnou, která je null, nedefinovaná nebo nedeklarovaná?
    • Jakým způsobem ověříte jednotlivé stavy proměnné?
  • Co to je closure a jak/proč bychom je měli používat?
  • Jaké je typické využití pro anonymní funkce?
  • Vysvětlete “JavaScript module pattern” a kdybyste ho měli použít.
    • Body navíc za zmínku o čistých jmených prostorech.
    • Co když moduly nemají jmené prostory?
  • Jak organizujete Váš kód? Module pattern, klasická dědičn5ost?
  • Jaký je rozdíl mezi nativními a hostitelskými objekty?
  • Rozdíl mezi:
function Person(){} var person = Person() var person = new Person()
  • Jaký je rozdíl mezi .call a .apply?
  • Jaký je rozdíl mezi undefined and null?
  • Vysvětlete Function.prototype.bind.
  • Kdy optimalizujete Váš kód?
  • Vysvětlete jak funguje dědičnost v JavaScriptu.
  • Kdy byste použili document.write()?
    • Většina generovaných reklam stále používá tento přístup i přesto, že je to dlouhodobě odsuzováno.
  • Jaký je rozdíl mezi detekcí vlastností, odvození vlastností a použití UA řetězce?
  • Vysvětlete AJAX co nejpodrobněji to jde.
  • Vysvětlete jak funguje JSONP (a proč to není opravdový AJAX).
  • Použili jste někdy JavaScriptové šablony?
    • Pokud ano, které knihovny jste použili (Mustache.js, Handlebars etc.)?
  • Vysvětlete “hoisting”.
  • Vysvětlete probublávání událostí.
  • Jaký je rozdíl mezi atributem (attribute) a vlastností (property)?
  • Proč není dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Proč je dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Jaký je rozdíl mezi událostmi document load a document ready?
  • Jaký je rozdíl mezi == a ===?
  • Vysvětlete jakým způsobem získáte parametr z URL zadaného v okně prohlížeče.
  • Vysvětlete JavaScriptové pravidlo stejného původu (same-origin policy).
  • Popište přístupy k dědění v JavaScriptu.
  • Následující kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Popište strategie pro memorizaci (odstranění opakovaných výpočtů) v JavaScriptu.
  • Proč se říká ternární operátor, co označuje slovo ternární?
  • Co je označováné jako “arity” funkce?
  • Co znamená "use strict";? Jaké jsou výhody a nevýhody použití?

[⬆]

jQuery otázky:

  • Vysvětlete řetězení (chaining).
  • Vysvětlete odkládání (deferreds).
  • Jaké znáte a umíte implementovat optimalizace speciálně pro jQuery?
  • Co dělá .end()?
  • Jak a proč byste váš event handler opatřili jmeným prostorem?
  • Jmenujte čtyři různé typy hodnot, které můžete předat jako vstupní parametr metod v jQuery.
    • Selektor (řetězec), HTML (řetězec), Callback (funkce), HTMLElement, object, pole, pole elementu, jQuery Object, atd.
  • Co to je fronta efektů (nebo fx fronta)?
  • Jaký je rozdíl mezi .get(), [] a .eq()?
  • Jaký je rozdíl mezi .bind(), .live() a .delegate()?
  • Jaký je rozdíl mezi $ a $.fn? Nebo jenom, co je $.fn?
  • Zoptimalizujte tento selektor:
$(".foo div#bar:eq(0)")
  • Jaký je rozdíl mezi ‘delegate()’ a ‘live()’?

[⬆]

Otázky z kódu:

~~3.14

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: 3

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Otázka: Jakou hodnotu má window.foo?
Odpověď: "bar"
pouze pokud window.foo bylo false, jinak vrátí svojí hodnotu.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Otázka: Co zobrazí uvedené dva alerty?
Odpověď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Jaká je hodnota foo.length?
Odpověď: 2

var foo = {};
foo.bar = 'hello';

Otázka: Jaká je hodnota foo.length?
Odpověď: undefined

[⬆]

Zábavné otázky:

  • Jaká je nejúžasnější věc, kterou jste kdy nakódovali, nebo na kterou jste nejvíce pyšní?
  • Jaké jsou Vaše oblíbené části vývojářských nástrojů, které používáte?
  • Máte nějaký vlastní hobby projekt?
  • Jaká je Vaše oblíbená vlastnost Internet Exploreru?

[⬆]

\ No newline at end of file diff --git a/_site/translations/danish/index.html b/_site/translations/danish/index.html index 9ba9b5441..7f259b7ca 100644 --- a/_site/translations/danish/index.html +++ b/_site/translations/danish/index.html @@ -1 +1 @@ -Front-end Job Interview Spørgsmål ★ Front-end Job Interview Questions

Front-end Job Interview Spørgsmål

Front-end Job Interview Spørgsmål

@version 1.0

Bemærk: Dette arkiv indeholder et udvalg af spørgsmål, der kan bruges til samtale til stillingen som front-end udvikler. Det kan på ingen måde anbefales at bruge hver eneste spørgsmål på samme kandidat da det ville tage flere timer.

Husk på, at mange af disse spørgsmål er åbne og kan føre til interessante diskussioner, der fortæller dig mere om personens evner end et klart svar ville.

####Originale bidragydere

Bemærk: Størstedelen af spørgsmålene blev plukket fra en tråd skabt og bidraget af følgende personer:

Generelle spørgsmål:

  • Er du på Twitter?
    • Hvis ja, hvem følger du?
  • Er du på GitHub?
    • Hvis ja, hvilke repoer følger du?
  • Hvilke blogs følger du?
  • Hvilke version kontrolsystemer har du brugt (Git, SVN osv.)?
  • Hvad er dit foretrukne udviklingsmiljø? (OS, Editor, Browsere, Tools osv.)
  • Kan du beskrive din arbejdsgang, når du bygger en webside?
  • Kan du beskrive forskellen mellem ‘progressive enhancement’ og ‘graceful degradation’?
    • Bonuspoint beskrive ‘feature detection’
  • Forklar hvad “Semantisk HTML” betyder.
  • Hvilken browser udvikler du primært i og hvad hvilke udviklingsværktøjer bruger du?
  • Hvordan vil du optimere et websites ressourcer?
    • Du leder efter en række løsninger, som kan omfatte:
      • Fil sammenkædning (File concatenation)
      • Fil minification
      • CDN Hosted
      • Caching
      • Osv.
  • Hvorfor er det bedre at have flere domæner som man serverer sit website fra?
    • Hvor mange ressourcer vil en browser hente ad gangen fra et givent domæne?
  • Navn 3 måder at mindske et websites belastning. (formodet eller faktisk lade tid)
  • Hvis du hoppede på et projekt, og de brugte tabulering og du brugte mellemrum, hvad ville du gøre?
    • Foreslå projektet at benytte noget lignende EditorConfig (http://editorconfig.org)
    • Følge konventioner (være consistent)
    • ‘Indføre :retab! kommandoen’
  • Skriv et simpelt billed slideshow side
    • Bonuspoint, hvis det ikke bruger JS.
  • Hvilke værktøjer bruger du til at teste din kode effektivitet?
  • Hvis du kunne mestre en teknologi i år, hvad ville det så være?
  • Forklare vigtigheden af standarder.
  • Hvad er FOUC? Hvordan undgår man FOUC?

HTML-specifikke spørgsmål:

  • Hvad er et doctype gøre, og hvor mange kan du nævne?
  • Hvad er forskellen mellem standards mode og quirks mode?
  • Hvilke Begrænsninger er der med XHTML-sider?
    • Er der nogen problemer med at serverer sider som application/xhtml+xml?
  • Hvordan du serverer man en side med indhold på flere sprog?
    • Hvilken slags ting skal du være opmærksom på, når der skal designes eller udviklings til flersprogede sites?
  • Kan du bruge XHTML syntaks i HTML5?
  • Hvordan bruger du XML i HTML5?
  • Hvad er data- attributter godt for?
  • Hvad er indholds modeller i HTML4 og er de anderledes i HTML5?
  • Tænk på HTML5 som en åben web-platform. Hvad er byggestenene i HTML5?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Beskriv forskellen mellem cookies, sessionStorage og localStorage.

JS-specifikke spørgsmål

  • Hvilke JavaScript-biblioteker har du brugt?
  • Har du nogensinde kigget på kildekoden til bibliotekerne eller frameworks som du bruger?
  • Hvordan er JavaScript forskellig fra Java?
  • Hvad er en Hashtable?
  • Hvad er undefined og undeclared variabler?
  • Hvad er en closure, og hvordan/hvorfor ville du bruge en?
    • Din yndlings mønster bruges til at skabe dem? argyle (Gælder kun for IIFEs)
  • En typisk eksempel på brug af anonyme funktioner?
  • Forklare “JavaScript module pattern”, og hvornår du skal bruge det.
    • Bonuspoint for at nævne ren namespacing.
    • Hvad hvis dine moduler er uden namespace?
  • Hvordan tilrettelægger du din kode? (module pattern, classical inheritance?)
  • Hvad er forskellen mellem ‘host objects’ og ‘native objects’?
  • Forskel mellem:
function Person(){} var person = Person() var person = new Person()
  • Hvad er forskellen mellem .call og .apply?
  • Forklare Function.prototype.bind?
  • Hvornår skal du optimere din kode?
  • Kan du forklare, hvordan arv(inheritance) virker i JavaScript?
  • Hvornår vil du bruge document.write()?
    • De fleste annoncer stadig genereres ved brug af document.write() selvom dets anvendelse er ildeset.
  • Hvad er forskellen mellem feature detection, feature inference, og brug af UA string
  • Forklar AJAX så udførligt som muligt.
  • Forklare hvordan JSONP virker (og hvordan det egentlig ikke er AJAX)
  • Har du nogensinde brugt JavaScript templating?
    • Hvis ja, hvilke biblioteker har du brugt (Mustache.js, Handlebars osv.)
  • Forklare “hoisting”.
  • Forklare “event bubbling”.
  • Hvad er forskellen mellem en “attribute” og en “property”?
  • Hvorfor er det ikke en god idé Udvide indbygget JavaScript-objekter?
  • Hvorfor er Udvidelse af ins en god idé?
  • Forskel mellem document load event og document ready event?
  • Hvad er forskellen mellem == og ===?
  • Forklar, hvordan du ville få en query string parameter fra browservinduets URL.
  • Forklare den samme oprindelse politik med hensyn til JavaScript.
  • Forklare event delegation.
  • Beskrive arv mønstre(inheritance patterns) i JavaScript.
  • Få det til at virke:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Beskrive en strategi for memoization (undgå beregning gentagelser) i JavaScript.
  • Hvorfor hedder det en Ternary erklæring, hvad betyder ordet “Ternary”?
  • Hvad er arity af en funktion?
  • Hvad er "use strict";? hvad er fordelene og ulemperne ved at bruge det?

JS-kode eksempler:

~~3.14

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: 3

"i'm a lasagna hog".split("").reverse().join("");

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Spørgsmål: Hvad er værdien af window.foo?
Svar: "bar"
Hvis window.foo er falsk ellers vil det bevare sin værdi.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Spørgsmål: Hvad er resultatet af de to ovennævnte alerts?
** Svar: “Hello World” & ReferenceError: bar er ikke defineret **

var foo = [];
foo.push(1);
foo.push(2);

Spørgsmål: Hvad er værdien af foo.length?
**Svar: 2

var foo = {};
foo.bar = 'hello';

Spørgsmål: Hvad er værdien af foo.length?
**Svar: undefined

foo = foo||bar

Spørgsmål: Hvad betyder?
**Svar: if(!foo) foo = bar

foo>>1

Spørgsmål: Hvad betyder?
**Svar: Math.floor(foo/2)

foo|0
foo+.5|0

Spørgsmål: Hvad betyder?
**Svar: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Spørgsmål: Hvordan får man antallet af parametre?
**Svar: foo.length //dette eksempel er 3

jQuery-specifikke spørgsmål:

  • Forklar “kæde”(chaining).
  • Forklar “deferreds”.
  • Nævn nogle jQuery specifikke optimeringer du kan implementere?
  • Hvad betyder .end() gøre?
  • Hvordan og hvorfor, ville du namespace en bundet event handler?
  • Navn 4 forskellige værdier, du kan give en jQuery metoden.
    • Selector (string), HTML (string), Callback (funktion), HTMLElement, objekt, array, element array, jQuery objekt osv.
  • Hvad er effects (eller fx) queue?
  • Hvad er forskellen mellem .get(), [], og .eq()?
  • Hvad er forskellen mellem .bind(), .live(), og .delegate()?
  • Hvad er forskellen mellem $ og $.fn? Eller hvad er $.fn.
  • Optimer denne selector:
$(".foo div#bar:eq(0)")
  • Forskel mellem delegate() og live()?

CSS-specifikke spørgsmål:

  • Beskriv hvad en “reset” CSS-fil laver, og hvordan den nyttigt.
  • Beskrive Floats og hvordan de virker.
  • Hvilken clearing teknikker findes der og hvilke er passende for hvilken sammenhæng?
  • Forklar CSS sprites, og hvordan du vil indføre dem på en side eller et websted.
  • Hvad er din yndlings billed udskiftning(image replacement) teknik og som bruger du?
  • CSS property hacks, konditionel inkluderet. css filer, eller … noget andet?
  • Hvordan serverer du dine sider for funktionen begrænset browsere?
    • Hvilke teknikker/processer bruger du?
  • Hvilke forskellige måder findes der for at visuelt skjule indhold (og gør det kun tilgængelig for skærmlæsere)?
  • Har du nogensinde brugt et grid system, og hvis ja, hvad foretrækker du?
  • Har du brugt eller implementeret media queries eller mobile specifikke layouts/CSS?
  • Noget kendskab til styling af SVG?
  • Hvordan optimerer du dine websider til tryk?
  • Hvad skal der til for at skrive effektiv CSS?
  • Bruger du CSS præprocessorer? (SASS, Compass, Stylus, LESS)
    • Hvis ja, beskriv, hvad du kan lide og ikke lide ved CSS præprocessorer som du har brugt.
  • Hvordan vil du implementere en web-design, der ikke bruger standard skrifttyper?
    • Webfonts (skrifttype tjenester som: Google Webfonts, Typekit osv.)
  • Forklare hvordan en browser afgør, hvilke elementer matcher en CSS selector?

Valgfri sjove spørgsmål:

  • Hvad er den fedeste ting, du nogensinde har kodet, hvad er du mest stolt af?
  • Kender du HTML5 bandetegn?
  • Er du nu, eller har du nogensinde været på en båd.
  • Hvad er dine foretrukne dele om de udviklere værktøjer som du bruger?
  • Har du nogen hygge projekter? Hvilken slags?
  • Forklare betydningen af ​​"cornify".
  • På et stykke papir, skriv ned bogstaverne A B C D E lodret. Nu sæt dem i faldende rækkefølge uden at skrive én linje kode.
    • Vent og se, om de vender papiret på hovedet
  • Pirate eller Ninja?
    • Bonus hvis det er en kombination og en god grund blev givet (+2 for zombie abe pirat ninjas)
  • Hvad ville du gøre, hvis ikke Webudvikling?
  • Hvor i verden er Carmen Sandiego?
  • Where in the world is Carmen Sandiego?
    • Tip: deres svar er altid forkert
  • Hvad er dit foretrukne funktion i Internet Explorer?
  • Færdiggør denne sætning: Brendan Eich og Doug Crockford er __________ af javascript.
  • JQuery: et godt bibliotek eller den bedste bibliotek? Diskuter.
  • http://www.w3schools.com/ eller http://w3fools.com/
\ No newline at end of file +Front-end Job Interview Spørgsmål ★ Front-end Job Interview Questions

Front-end Job Interview Spørgsmål

Front-end Job Interview Spørgsmål

@version 1.0

Bemærk: Dette arkiv indeholder et udvalg af spørgsmål, der kan bruges til samtale til stillingen som front-end udvikler. Det kan på ingen måde anbefales at bruge hver eneste spørgsmål på samme kandidat da det ville tage flere timer.

Husk på, at mange af disse spørgsmål er åbne og kan føre til interessante diskussioner, der fortæller dig mere om personens evner end et klart svar ville.

####Originale bidragydere

Bemærk: Størstedelen af spørgsmålene blev plukket fra en tråd skabt og bidraget af følgende personer:

Generelle spørgsmål:

  • Er du på Twitter?
    • Hvis ja, hvem følger du?
  • Er du på GitHub?
    • Hvis ja, hvilke repoer følger du?
  • Hvilke blogs følger du?
  • Hvilke version kontrolsystemer har du brugt (Git, SVN osv.)?
  • Hvad er dit foretrukne udviklingsmiljø? (OS, Editor, Browsere, Tools osv.)
  • Kan du beskrive din arbejdsgang, når du bygger en webside?
  • Kan du beskrive forskellen mellem ‘progressive enhancement’ og ‘graceful degradation’?
    • Bonuspoint beskrive ‘feature detection’
  • Forklar hvad “Semantisk HTML” betyder.
  • Hvilken browser udvikler du primært i og hvad hvilke udviklingsværktøjer bruger du?
  • Hvordan vil du optimere et websites ressourcer?
    • Du leder efter en række løsninger, som kan omfatte:
      • Fil sammenkædning (File concatenation)
      • Fil minification
      • CDN Hosted
      • Caching
      • Osv.
  • Hvorfor er det bedre at have flere domæner som man serverer sit website fra?
    • Hvor mange ressourcer vil en browser hente ad gangen fra et givent domæne?
  • Navn 3 måder at mindske et websites belastning. (formodet eller faktisk lade tid)
  • Hvis du hoppede på et projekt, og de brugte tabulering og du brugte mellemrum, hvad ville du gøre?
    • Foreslå projektet at benytte noget lignende EditorConfig (http://editorconfig.org)
    • Følge konventioner (være consistent)
    • ‘Indføre :retab! kommandoen’
  • Skriv et simpelt billed slideshow side
    • Bonuspoint, hvis det ikke bruger JS.
  • Hvilke værktøjer bruger du til at teste din kode effektivitet?
  • Hvis du kunne mestre en teknologi i år, hvad ville det så være?
  • Forklare vigtigheden af standarder.
  • Hvad er FOUC? Hvordan undgår man FOUC?

HTML-specifikke spørgsmål:

  • Hvad er et doctype gøre, og hvor mange kan du nævne?
  • Hvad er forskellen mellem standards mode og quirks mode?
  • Hvilke Begrænsninger er der med XHTML-sider?
    • Er der nogen problemer med at serverer sider som application/xhtml+xml?
  • Hvordan du serverer man en side med indhold på flere sprog?
    • Hvilken slags ting skal du være opmærksom på, når der skal designes eller udviklings til flersprogede sites?
  • Kan du bruge XHTML syntaks i HTML5?
  • Hvordan bruger du XML i HTML5?
  • Hvad er data- attributter godt for?
  • Hvad er indholds modeller i HTML4 og er de anderledes i HTML5?
  • Tænk på HTML5 som en åben web-platform. Hvad er byggestenene i HTML5?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Beskriv forskellen mellem cookies, sessionStorage og localStorage.

JS-specifikke spørgsmål

  • Hvilke JavaScript-biblioteker har du brugt?
  • Har du nogensinde kigget på kildekoden til bibliotekerne eller frameworks som du bruger?
  • Hvordan er JavaScript forskellig fra Java?
  • Hvad er en Hashtable?
  • Hvad er undefined og undeclared variabler?
  • Hvad er en closure, og hvordan/hvorfor ville du bruge en?
    • Din yndlings mønster bruges til at skabe dem? argyle (Gælder kun for IIFEs)
  • En typisk eksempel på brug af anonyme funktioner?
  • Forklare “JavaScript module pattern”, og hvornår du skal bruge det.
    • Bonuspoint for at nævne ren namespacing.
    • Hvad hvis dine moduler er uden namespace?
  • Hvordan tilrettelægger du din kode? (module pattern, classical inheritance?)
  • Hvad er forskellen mellem ‘host objects’ og ‘native objects’?
  • Forskel mellem:
function Person(){} var person = Person() var person = new Person()
  • Hvad er forskellen mellem .call og .apply?
  • Forklare Function.prototype.bind?
  • Hvornår skal du optimere din kode?
  • Kan du forklare, hvordan arv(inheritance) virker i JavaScript?
  • Hvornår vil du bruge document.write()?
    • De fleste annoncer stadig genereres ved brug af document.write() selvom dets anvendelse er ildeset.
  • Hvad er forskellen mellem feature detection, feature inference, og brug af UA string
  • Forklar AJAX så udførligt som muligt.
  • Forklare hvordan JSONP virker (og hvordan det egentlig ikke er AJAX)
  • Har du nogensinde brugt JavaScript templating?
    • Hvis ja, hvilke biblioteker har du brugt (Mustache.js, Handlebars osv.)
  • Forklare “hoisting”.
  • Forklare “event bubbling”.
  • Hvad er forskellen mellem en “attribute” og en “property”?
  • Hvorfor er det ikke en god idé Udvide indbygget JavaScript-objekter?
  • Hvorfor er Udvidelse af ins en god idé?
  • Forskel mellem document load event og document ready event?
  • Hvad er forskellen mellem == og ===?
  • Forklar, hvordan du ville få en query string parameter fra browservinduets URL.
  • Forklare den samme oprindelse politik med hensyn til JavaScript.
  • Forklare event delegation.
  • Beskrive arv mønstre(inheritance patterns) i JavaScript.
  • Få det til at virke:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Beskrive en strategi for memoization (undgå beregning gentagelser) i JavaScript.
  • Hvorfor hedder det en Ternary erklæring, hvad betyder ordet “Ternary”?
  • Hvad er arity af en funktion?
  • Hvad er "use strict";? hvad er fordelene og ulemperne ved at bruge det?

JS-kode eksempler:

~~3.14

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: 3

"i'm a lasagna hog".split("").reverse().join("");

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Spørgsmål: Hvad er værdien af window.foo?
Svar: "bar"
Hvis window.foo er falsk ellers vil det bevare sin værdi.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Spørgsmål: Hvad er resultatet af de to ovennævnte alerts?
** Svar: “Hello World” & ReferenceError: bar er ikke defineret **

var foo = [];
foo.push(1);
foo.push(2);

Spørgsmål: Hvad er værdien af foo.length?
**Svar: 2

var foo = {};
foo.bar = 'hello';

Spørgsmål: Hvad er værdien af foo.length?
**Svar: undefined

foo = foo||bar

Spørgsmål: Hvad betyder?
**Svar: if(!foo) foo = bar

foo>>1

Spørgsmål: Hvad betyder?
**Svar: Math.floor(foo/2)

foo|0
foo+.5|0

Spørgsmål: Hvad betyder?
**Svar: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Spørgsmål: Hvordan får man antallet af parametre?
**Svar: foo.length //dette eksempel er 3

jQuery-specifikke spørgsmål:

  • Forklar “kæde”(chaining).
  • Forklar “deferreds”.
  • Nævn nogle jQuery specifikke optimeringer du kan implementere?
  • Hvad betyder .end() gøre?
  • Hvordan og hvorfor, ville du namespace en bundet event handler?
  • Navn 4 forskellige værdier, du kan give en jQuery metoden.
    • Selector (string), HTML (string), Callback (funktion), HTMLElement, objekt, array, element array, jQuery objekt osv.
  • Hvad er effects (eller fx) queue?
  • Hvad er forskellen mellem .get(), [], og .eq()?
  • Hvad er forskellen mellem .bind(), .live(), og .delegate()?
  • Hvad er forskellen mellem $ og $.fn? Eller hvad er $.fn.
  • Optimer denne selector:
$(".foo div#bar:eq(0)")
  • Forskel mellem delegate() og live()?

CSS-specifikke spørgsmål:

  • Beskriv hvad en “reset” CSS-fil laver, og hvordan den nyttigt.
  • Beskrive Floats og hvordan de virker.
  • Hvilken clearing teknikker findes der og hvilke er passende for hvilken sammenhæng?
  • Forklar CSS sprites, og hvordan du vil indføre dem på en side eller et websted.
  • Hvad er din yndlings billed udskiftning(image replacement) teknik og som bruger du?
  • CSS property hacks, konditionel inkluderet. css filer, eller … noget andet?
  • Hvordan serverer du dine sider for funktionen begrænset browsere?
    • Hvilke teknikker/processer bruger du?
  • Hvilke forskellige måder findes der for at visuelt skjule indhold (og gør det kun tilgængelig for skærmlæsere)?
  • Har du nogensinde brugt et grid system, og hvis ja, hvad foretrækker du?
  • Har du brugt eller implementeret media queries eller mobile specifikke layouts/CSS?
  • Noget kendskab til styling af SVG?
  • Hvordan optimerer du dine websider til tryk?
  • Hvad skal der til for at skrive effektiv CSS?
  • Bruger du CSS præprocessorer? (SASS, Compass, Stylus, LESS)
    • Hvis ja, beskriv, hvad du kan lide og ikke lide ved CSS præprocessorer som du har brugt.
  • Hvordan vil du implementere en web-design, der ikke bruger standard skrifttyper?
    • Webfonts (skrifttype tjenester som: Google Webfonts, Typekit osv.)
  • Forklare hvordan en browser afgør, hvilke elementer matcher en CSS selector?

Valgfri sjove spørgsmål:

  • Hvad er den fedeste ting, du nogensinde har kodet, hvad er du mest stolt af?
  • Kender du HTML5 bandetegn?
  • Er du nu, eller har du nogensinde været på en båd.
  • Hvad er dine foretrukne dele om de udviklere værktøjer som du bruger?
  • Har du nogen hygge projekter? Hvilken slags?
  • Forklare betydningen af ​​"cornify".
  • På et stykke papir, skriv ned bogstaverne A B C D E lodret. Nu sæt dem i faldende rækkefølge uden at skrive én linje kode.
    • Vent og se, om de vender papiret på hovedet
  • Pirate eller Ninja?
    • Bonus hvis det er en kombination og en god grund blev givet (+2 for zombie abe pirat ninjas)
  • Hvad ville du gøre, hvis ikke Webudvikling?
  • Hvor i verden er Carmen Sandiego?
  • Where in the world is Carmen Sandiego?
    • Tip: deres svar er altid forkert
  • Hvad er dit foretrukne funktion i Internet Explorer?
  • Færdiggør denne sætning: Brendan Eich og Doug Crockford er __________ af javascript.
  • JQuery: et godt bibliotek eller den bedste bibliotek? Diskuter.
  • http://www.w3schools.com/ eller http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/dutch/index.html b/_site/translations/dutch/index.html index 1d42eafd8..64e2a2816 100644 --- a/_site/translations/dutch/index.html +++ b/_site/translations/dutch/index.html @@ -1 +1 @@ -Front-end interview vragen ★ Front-end Job Interview Questions

Front-end interview vragen

Front-end interview vragen

@version 2.0.0

Deze repo bevat een aantal front-end interview vragen die je kunnen helpen om ervaren kandidaten te vinden. Het is uiteraard niet aangeraden om elke vraag aan een sollicitant te stellen (dat zou ook uren in beslag nemen). Maar als je er een paar gebruikt is het mogelijk om het gewenste skillniveau te vinden dat je zoekt.

Rebecca Murphey’s Baseline For Front-End Developers is ook een geweldige bron om je in te lezen voordat je aan een interview begint.

Let op: Houd er rekening mee dat deze vragen meestal een open einde hebben en dat zou kunnen leiden tot interessante discussies die je meer over de persoon zelf kan vertellen dan een standaard antwoord.

####Originele Bijdragers

De meerderheid van deze vragen is geplukt uit een oksoclap thread origineel gemaakt door Paul Irish (@paul_irish) en aan bijgedragen door de volgende individuen:

Algemene Vragen:

  • Praat over je favoriete ontwikkelomgeving. (OS, Editor, Browsers, Tools etc.)
  • Kan je jouw workflow beschrijven als je een nieuwe web pagina maakt?
  • Kan je het verschil beschrijven tussen progressieve verbeteringen en gracieuse degradatie?
    • Bonus punten voor het beschrijven van feature detection
  • Leg uit wat “Semantische HTML” betekent.
  • Hoe zou je website assets/resources optimaliseren?
    • Kijk naar een aantal oplossingen zoals:
      • Bestands concatenatie
      • Betands minificatie
      • Content Delivery Network
      • Caching
      • etc.
  • Waarom is het beter om website resources van meerdere domeinen te laden?
    • Hoeveel resources kan een browser tegelijkertijd downloaden van een domein?
  • Noem 3 manieren om pagina laadtijd te verminderen. (waargenomen of gemeten tijd)
  • Als je op een project kwam te werken waar ze tabs gebruiken en jij gebruikt spaties, wat zou je doen?
    • Suggereren dat het project misschien iets als [EditorConfig] (http://editorconfig.org) kan gebruiken.
    • Je aanpassen aan de conventie (consistent blijven)
    • issue :retab! command
  • Schrijf een simpele slideshow pagina
    • Bonus punten als het geen JS gebruikt.
  • Welke tools gebruik je om je je code performance te testen?
    • Profiler, JSPerf, Dromaeo
  • Als je dit jaar één techniek zou willen beheersen, wat zou het zijn?
  • Kan je de verschillen tussen Long-Polling, Websockets en SSE benoemen?
  • Leg het belang uit van standaards en standaards organisaties.
  • Wat is FOUC? Hoe voorkom je FOUC?

HTML-Specifieke Vragen:

  • Wat doet een doctype?
  • Wat is het verschil tussen standaard modus en quirks modus?
  • Wat zijn de beperkingen als je XHTML pagina’s serveert?
    • Zijn er problemen als je ze serveert als application/xhtml+xml?
  • Hoe serveer je een pagina met content in meerdere talen?
    • Wat voor dingen moet je voor op passen als je designt of ontwikkelt voor meertalige sites?
  • Waar zijn data- attributen goed voor?
  • Stel je HTML5 voor als een open web platform. Wat zijn dan de bouwstenen van HTML5?
  • Beschrijf het verschil tussen cookies, sessionStorage en localStorage.

JS-Specifieke Vragen:

  • Beschrijf event delegatie
  • Leg uit hoe this werkt in JavaScript
  • Leg uit prototypal inheritance werkt
  • Hoe kan je je JavaScript testen?
  • AMD vs. CommonJS?
  • Wat is een hashtable?
  • Wat zijn undefined en undeclared variabelen?
  • Wat is een closure, en hoe/waarom zou je het gebruiken?
    • Je favoriete pattern om deze te gebruiken? argyle (Alleen toepasbaar bij IIFEs)
  • Wat is een typische use case voor anonieme functies?
  • Leg de “JavaScript module pattern” uit wanneer je het zou gebruiken.
    • Bonus punten voor het noemen van clean namespacing.
    • Wat als je modules namespace-loos zijn?
  • Hoe organiseer je je code? (module pattern, classical inheritance?)
  • Wat is het verschild tussen host objects en native objects?
  • Verschil tussen:
function Person(){} var person = Person() var person = new Person()
  • Wat is het verschil tussen .call en .apply?
  • Leg uit Function.prototype.bind?
  • Wanneer optimaliseer je je code?
  • Kan je uitleggen hoe overerving werkt in JavaScript?
  • Wanneer zou je document.write() gebruiken?
    • Veel ads gebruiken nog steeds document.write() ookal wordt dit meestal afgekeurd
  • Wat is het verschil tussen feature detection, feature inference en het gebruiken van een UA string
  • Leg AJAX zo gedetailleerd mogelijk uit
  • Leg uit hoe JSONP werkt (en hoe het niet echt AJAX is)
  • Heb je ooit JavaScript templating gebruikt?
    • Zo ja, welke libraries heb je gebruikt? (Mustache.js, Handlebars etc.)
  • Leg “hoisting” uit.
  • Beschrijf event bubbling.
  • Wat is het verschil tussen een “attribuut” en een “property”?
  • Waarom is het uitbreiden van built-in JavaScript objects geen goed idee?
  • Waarom is het uitbreiden van built ins een goed idee?
  • Wat is het verschil tussen document load en document ready?
  • Wat is het verschil tussen == en ===?
  • Leg uit hoe je een query string parameter uit een browsers window URL kan halen.
  • Leg de same-origin policy met betrekking tot JavaScript uit.
  • Beschrijf overerving patronen in JavaScript.
  • Maak dit werkend:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschrijf een strategie voor memoization (ontwijken van berekening repetitie) in JavaScript.
  • Waarom heet het een Ternary expression, waar doelt het woord “Ternary” op?
  • Wat is de ariteit van een functie?
  • Wat is "use strict";? Wat zijn de voor- en nadelen om dit te gebruiken?

JS-Code Voorbeelden:

~~3.14

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: 3

"ik hou van lasagna".split("").reverse().join("");

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: "angasal nav uoh ki"

( window.foo || ( window.foo = "bar" ) );

Vraag: What is the value of window.foo?
Antwoord: "bar"
Alleen als window.foo falsy was, anders leverde het zijn waarde op.

var foo = "Hallo"; (function() { var bar = " Wereld"; alert(foo + bar); })(); alert(foo + bar);

Vraag: Wat is de uitkomst van de twee alerts?
Antwoord: “Hallo Wereld” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vraag: Wat is de waarde van foo.length?
**Antwoord: 2

var foo = {};
foo.bar = 'hello';

Vraag: Wat is de waarde van foo.length?
**Antwoord: undefined

jQuery-Specifieke Vragen:

  • Leg “chaining” uit.
  • Leg “deferreds” uit.
  • Wat zijn een paar jQuery specifieke optimalisaties die jij kan implementeren?
  • Wat doet .end()?
  • Hoe en waarom zou je een bound event handler namespacen?
  • Noem 4 verschillende waardes die je aan een jQuery methode kan geven.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Wat is de effecten (fx) queue?
  • Wat is het verschil tussen .get(), [], en .eq()?
  • Wat is het verschil tussen .bind(), .live(), en .delegate()?
  • Wat is het verschil tussen $ en $.fn? Of sowieso, wat is $.fn.
  • Optimaliseer deze selector:
$(".foo div#bar:eq(0)")
  • Wat is het verschil tussen ‘delegate()’ en ‘live()’?

CSS-Specifieke Vragen:

  • Beschrijf wat een “reset” CSS bestand doet en hoe dit bruikbaar is.
  • Beschrijf Floats en hoe ze werken.
  • Wat zijn de verschillende clearing technieken en welke is toepasselijk voor welke context?
  • Leg CSS sprites uit en hoe je ze kan implementeren op een pagina.
  • Wat zijn jouw favoriete image replacement technieken en welke gebruik je wanneer?
  • CSS property hacks, conditionele ingeladen .css files, of… iets anders?
  • Hoe serveer je je pagina’s voor feature-constrained browsers?
    • Welke technieken/processen gebruik je?
  • Wat zijn de verschillende manieren om content visueel te verbergen (en het alleen zichtbaar te houden voor screenreaders)?
  • Heb je ooit een grid-systeem gebruikt en zo ja, wat is je voorkeur?
  • Heb je ooit media queries of mobiel specifieke layouts/CSS gebruikt of geïmplementeerd?
  • Ben je bekend met SVG styling?
  • Hoe optimaliseer je je pagina’s voor printen?
  • Wat zijn sommige van de “gotchas” voor het schrijven van efficiënte CSS?
  • Wat zijn de voor- en nadelen van CSS preprocessors? (SASS, Compass, Stylus, LESS)
    • Wat vind je wel en niet fijn aan diegene die jij hebt gebruikt.
  • Hoe zou je een website design implementeren dat gebruik maakt van non-standard fonts?
    • Webfonts (font services zoals: Google Webfonts, Typekit etc.)
  • Leg uit hoe een browser beslists welke elementen hij moet matchen met een CSS selector?

Optionele Losse Vragen:

  • Wat is het coolste dat je ooit gemaakt hebt. Waar ben je trots op?
  • Wat zijn de favoriete dingen van de ontwikkeltools die je gebruikt?
  • Heb je hobbyprojecten? Zo ja, wat voor?
  • Wat is je favoriete feature van Internet Explorer?
\ No newline at end of file +Front-end interview vragen ★ Front-end Job Interview Questions

Front-end interview vragen

Front-end interview vragen

@version 2.0.0

Deze repo bevat een aantal front-end interview vragen die je kunnen helpen om ervaren kandidaten te vinden. Het is uiteraard niet aangeraden om elke vraag aan een sollicitant te stellen (dat zou ook uren in beslag nemen). Maar als je er een paar gebruikt is het mogelijk om het gewenste skillniveau te vinden dat je zoekt.

Rebecca Murphey’s Baseline For Front-End Developers is ook een geweldige bron om je in te lezen voordat je aan een interview begint.

Let op: Houd er rekening mee dat deze vragen meestal een open einde hebben en dat zou kunnen leiden tot interessante discussies die je meer over de persoon zelf kan vertellen dan een standaard antwoord.

####Originele Bijdragers

De meerderheid van deze vragen is geplukt uit een oksoclap thread origineel gemaakt door Paul Irish (@paul_irish) en aan bijgedragen door de volgende individuen:

Algemene Vragen:

  • Praat over je favoriete ontwikkelomgeving. (OS, Editor, Browsers, Tools etc.)
  • Kan je jouw workflow beschrijven als je een nieuwe web pagina maakt?
  • Kan je het verschil beschrijven tussen progressieve verbeteringen en gracieuse degradatie?
    • Bonus punten voor het beschrijven van feature detection
  • Leg uit wat “Semantische HTML” betekent.
  • Hoe zou je website assets/resources optimaliseren?
    • Kijk naar een aantal oplossingen zoals:
      • Bestands concatenatie
      • Betands minificatie
      • Content Delivery Network
      • Caching
      • etc.
  • Waarom is het beter om website resources van meerdere domeinen te laden?
    • Hoeveel resources kan een browser tegelijkertijd downloaden van een domein?
  • Noem 3 manieren om pagina laadtijd te verminderen. (waargenomen of gemeten tijd)
  • Als je op een project kwam te werken waar ze tabs gebruiken en jij gebruikt spaties, wat zou je doen?
    • Suggereren dat het project misschien iets als [EditorConfig] (http://editorconfig.org) kan gebruiken.
    • Je aanpassen aan de conventie (consistent blijven)
    • issue :retab! command
  • Schrijf een simpele slideshow pagina
    • Bonus punten als het geen JS gebruikt.
  • Welke tools gebruik je om je je code performance te testen?
    • Profiler, JSPerf, Dromaeo
  • Als je dit jaar één techniek zou willen beheersen, wat zou het zijn?
  • Kan je de verschillen tussen Long-Polling, Websockets en SSE benoemen?
  • Leg het belang uit van standaards en standaards organisaties.
  • Wat is FOUC? Hoe voorkom je FOUC?

HTML-Specifieke Vragen:

  • Wat doet een doctype?
  • Wat is het verschil tussen standaard modus en quirks modus?
  • Wat zijn de beperkingen als je XHTML pagina’s serveert?
    • Zijn er problemen als je ze serveert als application/xhtml+xml?
  • Hoe serveer je een pagina met content in meerdere talen?
    • Wat voor dingen moet je voor op passen als je designt of ontwikkelt voor meertalige sites?
  • Waar zijn data- attributen goed voor?
  • Stel je HTML5 voor als een open web platform. Wat zijn dan de bouwstenen van HTML5?
  • Beschrijf het verschil tussen cookies, sessionStorage en localStorage.

JS-Specifieke Vragen:

  • Beschrijf event delegatie
  • Leg uit hoe this werkt in JavaScript
  • Leg uit prototypal inheritance werkt
  • Hoe kan je je JavaScript testen?
  • AMD vs. CommonJS?
  • Wat is een hashtable?
  • Wat zijn undefined en undeclared variabelen?
  • Wat is een closure, en hoe/waarom zou je het gebruiken?
    • Je favoriete pattern om deze te gebruiken? argyle (Alleen toepasbaar bij IIFEs)
  • Wat is een typische use case voor anonieme functies?
  • Leg de “JavaScript module pattern” uit wanneer je het zou gebruiken.
    • Bonus punten voor het noemen van clean namespacing.
    • Wat als je modules namespace-loos zijn?
  • Hoe organiseer je je code? (module pattern, classical inheritance?)
  • Wat is het verschild tussen host objects en native objects?
  • Verschil tussen:
function Person(){} var person = Person() var person = new Person()
  • Wat is het verschil tussen .call en .apply?
  • Leg uit Function.prototype.bind?
  • Wanneer optimaliseer je je code?
  • Kan je uitleggen hoe overerving werkt in JavaScript?
  • Wanneer zou je document.write() gebruiken?
    • Veel ads gebruiken nog steeds document.write() ookal wordt dit meestal afgekeurd
  • Wat is het verschil tussen feature detection, feature inference en het gebruiken van een UA string
  • Leg AJAX zo gedetailleerd mogelijk uit
  • Leg uit hoe JSONP werkt (en hoe het niet echt AJAX is)
  • Heb je ooit JavaScript templating gebruikt?
    • Zo ja, welke libraries heb je gebruikt? (Mustache.js, Handlebars etc.)
  • Leg “hoisting” uit.
  • Beschrijf event bubbling.
  • Wat is het verschil tussen een “attribuut” en een “property”?
  • Waarom is het uitbreiden van built-in JavaScript objects geen goed idee?
  • Waarom is het uitbreiden van built ins een goed idee?
  • Wat is het verschil tussen document load en document ready?
  • Wat is het verschil tussen == en ===?
  • Leg uit hoe je een query string parameter uit een browsers window URL kan halen.
  • Leg de same-origin policy met betrekking tot JavaScript uit.
  • Beschrijf overerving patronen in JavaScript.
  • Maak dit werkend:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschrijf een strategie voor memoization (ontwijken van berekening repetitie) in JavaScript.
  • Waarom heet het een Ternary expression, waar doelt het woord “Ternary” op?
  • Wat is de ariteit van een functie?
  • Wat is "use strict";? Wat zijn de voor- en nadelen om dit te gebruiken?

JS-Code Voorbeelden:

~~3.14

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: 3

"ik hou van lasagna".split("").reverse().join("");

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: "angasal nav uoh ki"

( window.foo || ( window.foo = "bar" ) );

Vraag: What is the value of window.foo?
Antwoord: "bar"
Alleen als window.foo falsy was, anders leverde het zijn waarde op.

var foo = "Hallo"; (function() { var bar = " Wereld"; alert(foo + bar); })(); alert(foo + bar);

Vraag: Wat is de uitkomst van de twee alerts?
Antwoord: “Hallo Wereld” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vraag: Wat is de waarde van foo.length?
**Antwoord: 2

var foo = {};
foo.bar = 'hello';

Vraag: Wat is de waarde van foo.length?
**Antwoord: undefined

jQuery-Specifieke Vragen:

  • Leg “chaining” uit.
  • Leg “deferreds” uit.
  • Wat zijn een paar jQuery specifieke optimalisaties die jij kan implementeren?
  • Wat doet .end()?
  • Hoe en waarom zou je een bound event handler namespacen?
  • Noem 4 verschillende waardes die je aan een jQuery methode kan geven.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Wat is de effecten (fx) queue?
  • Wat is het verschil tussen .get(), [], en .eq()?
  • Wat is het verschil tussen .bind(), .live(), en .delegate()?
  • Wat is het verschil tussen $ en $.fn? Of sowieso, wat is $.fn.
  • Optimaliseer deze selector:
$(".foo div#bar:eq(0)")
  • Wat is het verschil tussen ‘delegate()’ en ‘live()’?

CSS-Specifieke Vragen:

  • Beschrijf wat een “reset” CSS bestand doet en hoe dit bruikbaar is.
  • Beschrijf Floats en hoe ze werken.
  • Wat zijn de verschillende clearing technieken en welke is toepasselijk voor welke context?
  • Leg CSS sprites uit en hoe je ze kan implementeren op een pagina.
  • Wat zijn jouw favoriete image replacement technieken en welke gebruik je wanneer?
  • CSS property hacks, conditionele ingeladen .css files, of… iets anders?
  • Hoe serveer je je pagina’s voor feature-constrained browsers?
    • Welke technieken/processen gebruik je?
  • Wat zijn de verschillende manieren om content visueel te verbergen (en het alleen zichtbaar te houden voor screenreaders)?
  • Heb je ooit een grid-systeem gebruikt en zo ja, wat is je voorkeur?
  • Heb je ooit media queries of mobiel specifieke layouts/CSS gebruikt of geïmplementeerd?
  • Ben je bekend met SVG styling?
  • Hoe optimaliseer je je pagina’s voor printen?
  • Wat zijn sommige van de “gotchas” voor het schrijven van efficiënte CSS?
  • Wat zijn de voor- en nadelen van CSS preprocessors? (SASS, Compass, Stylus, LESS)
    • Wat vind je wel en niet fijn aan diegene die jij hebt gebruikt.
  • Hoe zou je een website design implementeren dat gebruik maakt van non-standard fonts?
    • Webfonts (font services zoals: Google Webfonts, Typekit etc.)
  • Leg uit hoe een browser beslists welke elementen hij moet matchen met een CSS selector?

Optionele Losse Vragen:

  • Wat is het coolste dat je ooit gemaakt hebt. Waar ben je trots op?
  • Wat zijn de favoriete dingen van de ontwikkeltools die je gebruikt?
  • Heb je hobbyprojecten? Zo ja, wat voor?
  • Wat is je favoriete feature van Internet Explorer?
\ No newline at end of file diff --git a/_site/translations/farsi/index.html b/_site/translations/farsi/index.html index f72a62ee6..13ff8a9f9 100644 --- a/_site/translations/farsi/index.html +++ b/_site/translations/farsi/index.html @@ -1 +1 @@ -سوالات مصاحبه‌ی کاری فرانت‌-اند ★ Front-end Job Interview Questions

سوالات مصاحبه‌ی کاری فرانت‌-اند

سوالات مصاحبه‌ی کاری فرانت‌-اند

این فایل شامل چندین سوال مربوط به مصاحبه‌ی فرانت-اند هست که ازشون میشه در زمان بررسی داوطلب‌های بالقوه استفاده کرد. به هیچ وجه پیشنهاد نمیشه که تمام سوالات اینجا رو از یک داوطلب بپرسین (چون چند ساعت طول می‌کشه). انتخاب چند مورد از این لیست باید بهتون در بررسی توانایی‌هایی که نیاز دارید کمک کنه.

توجه: در نظر داشته باشید که ته خیلی از این سوالات باز هستن و ممکنه به یک بحث جذاب ختم بشن که بیشتر از یک جواب ساده به شما در مورد توانایی‌های شخص مورد نظر اطلاعات میده.

فهرست

  1. سوال‌های عمومی
  2. سوال‌های اچ‌تی‌ام‌ال
  3. سوال‌های سی‌اس‌اس
  4. سوال‌های جی‌اس
  5. سوال‌های تستینگ
  6. سوال‌های پرفورمنس
  7. سوال‌های شبکه
  8. سوال‌های کدینگ
  9. سوال‌های فان

درگیر شدن

  1. مشارکت کنندگان
  2. چطور مشارکت کنید
  3. مجوز

سوال‌های عمومی:

  • این هفته/امروز چه چیزی یاد گرفتی؟
  • چه چیزی توی کد زدن برات جذابه یا به هیجان میارتت؟
  • یه چالش فنی که جدیدا باهاش روبرو شدی چی بود و چطوری حلش کردی؟
  • وقتی میخوایی یه سایت یا یه وب اپلیکیشن بسازی، به چه چیزهای رابط کاربری، امنیتی، کارایی، سئو، نگه‌داری یا تکونولوژی توجه میکنی؟
  • در مورد محیط توسعه‌ی مورد علاقه‌ات بگو.
  • با کدوم سیستم کنترل ورژن آشنا هستی؟
  • میتونی گردش کارت رو برای وقتی که داری یه صفحه وب میسازی توضیح بدی؟
  • اگه ۵ تا استایل‌شیت مختلف داشته باشی، چطوری اون‌ها رو به نحو احسنت با هم توی سایت ادغام میکنی؟
  • میتونی تفاوت بین بهبود تصاعدی و افت شدید رو توضیح بدی؟
  • چطوری اَسِت‌ها/منابع یک وبسایت رو بهینه میکنی؟
  • یک مرورگر در هر لحظه از یک دامنه چنتا منابع دانلود میکنه؟
    • استثناها چیا هستن؟
  • سه روش بگو که بشه لود صفحه رو کم کرد (لود دیداری یا زمان لود واقعی)
  • اگه یهو وارد یه پروژه بشی و ببینی که از تَب استفاده کردن و تو از اسپس استفاده کردی، چیکار میکنی؟
  • توضیح بده که چطوری یه صفحه‌ی اسلایدشوی ساده می‌سازی.
  • اگه میتونستی یک تکنولوژی رو امسال استاد بشی، دنبال چی می‌رفتی؟
  • اهمیت استاندارد‌ها و سازمان‌های مشخص کردن استاندارد رو توضیح بده.
  • فلش محتوی بدون استایل (FOUC) چیه؟ چطوری میشه ازش پرهیز کرد؟
  • توضیح بده که AIRA و صفحه‌خوان‌ها چین و چطوری میشه یک وبسایت رو در دسترس قرار داد؟
  • مزایا و معایب انیمیشن‌های سی‌اس‌اس در مقایسه با جاوااسکریپت رو توضیح بده.
  • CORS مخفف چیه و به چه مسئله‌ای اشاره داره؟

سوال‌های اچ‌تی‌ام‌ال:

  • doctype چیکار میکنه؟
  • فرق بین حالت‌های کاملا استاندارد، تقریبا استاندارد و قدیمی (quirks) چیه؟
  • تفاوت بین اچ‌تی‌ام‌ال و اکس‌اچ‌تی‌ام‌ال چیه؟
  • مشکلی برای سرو کردن صفحه‌ای به صورت application/xhtml+xml هست؟
  • چطور یه صفحه‌ای رو با محتوای چندزبانه سرو میکنی؟
  • وقتی که داری سایت چندزبانه طراحی میکنی یا توسعه میدی، به چه چیزهایی باید حواست باشه؟
  • اتریبیوت‌های data- به چه دردی میخورن؟
  • اچ‌تی‌ام‌ال۵ رو یک پلتفرم وب آزاد در نظر بگیر. بلوک‌های سازنده‌ی اچ‌تی‌ام‌ال۵ چیا هستن؟
  • فرق بین یک <script>، <script async> و <script defer> رو شرح بده.
  • چرا به طور کلی فکر خوبیه که <link>های سی‌اس‌اس رو داخل <head></head> و <script>های جی‌اس رو قبل از </body> قرار داد؟ هیچ استثنایی میشناسی؟
  • رندر شدن تصاعدی چیه؟
  • قبلا زبان‌های تمپلیت‌سازی اچ‌تی‌ام‌ال استفاده کردی؟

سوال‌های سی‌اس‌اس:

  • توی سی‌اس‌اس فرق بین کلاس و آی‌دی چیه؟
  • توی سی‌اس‌اس فرق بین «normalizing» و «resetting» چیه؟ خودت کدومشون رو انتخاب میکردی، و چرا؟
  • فلوت رو توضیح بده و بگو چطوری کار میکنن.
  • زد-ایندکس رو توضیح بده و بگو روی هم چینی زمینه چطوری ایجاد میشه.
  • BFC‌ (Block Formatting Context) چیه و چطوری کار میکنه؟
  • روش‌های مختلف برای پاک کردن چیه و هر کدوم به درد چه موقعیتی می‌خوره؟
  • اسپریت‌های سی‌اس‌اس رو توضیح بده و بگو چطوری اون‌ها رو روی صفحه یا سایت پیاده‌سازی می‌کنی؟
  • روش‌های جایگزینی تصویر مورد علاقه‌ات چیا هستن و از هر کدوم کی استفاده می‌کنی؟
  • برای حل کردن مشکلات استایل‌های مختص به مرورگر، چطوری عمل می‌کنی؟
    • از چه تکنیک/پروسه‌ای استفاده می‌کنی؟
  • راه‌های مختلف برای مخفی کردن بصری محتوی (و قابل خوندن کردنشون فقط برای صفحه‌خوان‌ها) چیا هستن؟
  • تا حالا از یک گرید سیستم استفاده کردی، اگه آره، کدومشون رو ترجیح میدی؟
  • تاحالا از مدیا کوئری‌ها یا لی‌اوت/سی‌اس‌اس مخصوص موبایل استفاده یا پیاده‌سازی کردی؟
  • با استایل دادن به SVG آشنا هستی؟
  • یک صفحه‌ی وب رو چطوری برای چاپ بهینه می‌کنی؟
  • چنتا از «مچ‌گیری»‌های لازم برای نوشتن سی‌اس‌اس کارآمد چیا هستن؟
  • مزایا و معایب استفاده از پیش‌پردازنده‌های سی‌اس‌اس چیا هستن؟
    • توضیح بده چه چیزایی از پیش‌پردازنده‌های سی‌اس‌اس که قبلا استفاده کردی رو دوست داشتی و دوست نداشتی.
  • یه دیزاین کلی که فونت‌های غیراستاندارد داره رو چطوری پیاده سازی می‌کنی؟
  • توضیح بده که یک مرورگر چطوری مشخص میکنه کدوم المنت با کدوم سلکتور سی‌اس‌اس مچ میشه.
  • سودو المنت‌ها رو توصیف کن و بحث کن که برای چی ازشون استفاده می‌کنن.
  • چیزی رو که از باکس مدل فهمیدی توضیح بده و بگو چطوری توی سی‌اس‌اس به مرورگر میفهمونی تا لی‌اوتت رو توی باکس مدل‌های متفاوتی رندر کنه.
  • * { box-sizing: border-box; } چیکار میکنه؟ فوایدش چیه؟
  • هر چی مقدار برای پراپرتی دیسپلی یادت میاد رو لیست کن.
  • فرق بین اینلاین و اینلاین-بلاک چیه؟
  • فرق بین یک المنت با پوزیشن ریلیتیو، فیکسد، ابسولوت و استایتک چیه؟
  • «C» داخل سی‌اس‌اس برای Casacading یا آبشاری هست. اولویت توی اختصاص استایل چطوری مشخص می‌شه (چنتا مثال)؟
  • از چه فریم‌ورک‌های سی‌اس‌اس به صورت لوکال یا توی پروداکشن استفاده کردی؟
  • تا حالا با فلکس‌باک یا ویژگی‌های جدید گرید توی سی‌اس‌اس بازی بازی کردی؟
  • طراحی ریسپانسیو با طراحی آداپتیو چه تفاوتی داره؟
  • تاحالا با گرافیک رتینا کار کردی؟ اگه آره، کی و از چه تکنیک‌هایی استفاده کردی؟
  • دلیل هست که از translate() به جای جاگذاری ابسولوت یا برعکس استفاده کنی؟ و چرا؟

سوال‌های جی‌اس:

  • ایونت دلیگیشن رو توضیح بده.
  • توضیح بده this توی جاوااسکریپت چطوری کار میکنه.
  • توضیح بده ارث‌بری پروتوتایپی چطوری کار میکنه.
  • نظرت در مورد AMD در برابر CommonJS چیه؟
  • توضیح بده چرا قطعه‌ی روبرو به عنوان یک IIFE کار نمیکنه: function foo(){ }();.
    • چه چیزی احتیاج داره تا به شیوه‌ی صحیح IIFE بشه؟
  • فرق بین یک متغییر که null، undefined یا اعلام نشده هست چیه؟
    • چطوری وضعیت هر کدوم از این‌ها رو چک می‌کنی؟
  • کلوژر چیه و چطور/چرا ازش استفاده می‌کنی؟
  • استفاده‌ی معمول از فانکشن‌های انانیموس چیه؟
  • چطوری کدهات رو مرتب میکنی؟ (ماژول پترن، ارث‌بری کلاسیک)
  • فرق بین آبجکت‌های هاست و آبجکت‌های نیتیو چیه؟
  • فرق بین: function Person(){}، var person = Person()، و var person = new Person()؟
  • فرق بین .call و .apply چیه؟
  • Function.prototype.bind رو توضیح بده.
  • چه موقع از document.write() استفاده میکنی؟
  • فرق بین تشخیص ویژگی، استنتاج ویژگی و استفاده از استرینگ UA چیه؟
  • ایجکس رو تا تمام جزئیاتی که می‌تونی توضیح بده.
  • مزایا و معایب استفاده از ایجکس چیا هستن؟
  • توضیح بده که JSONP چطوری کار میکنه (و چطوری واقعا ایجکس نیست؟)
  • تاحالا از تمپلیت‌سازی جاوااسکریپتی استفاده کردی؟
    • اگه آره، از چه کتابخونه‌هایی استفاده کردی؟
  • «هویستینگ» رو توضیح بده.
  • ایونت بابلینگ رو توضیح بده.
  • فرق بین یک «اتریبیوت» و یک «پراپرتی» چیه؟
  • چرا اکستند کردن یه آبجکت جاوااسکریپتی بیلت-این فکر خوبی نیست؟
  • فرق بین ایونت load داکیومنت و DOMContentLoaded چیه؟
  • فرق بین == و === چیه؟
  • سیاستگذاری سیم-اوریجین رو از دید جاوااسکریپت توضیح بده.
  • کاری کن این کار کنه:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • چرا میگن اکسپرشن Ternary، کلمه‌ی «Ternary» چه چیزی رو میگه؟
  • "use strict"; چیه؟ مزایا و معایب استفاده ازش چیه؟
  • یه حلقه بساز که تا 100 تکرار بشه در حالی که برای مضارب 3 "fizz"، برای مضارب 5 "buzz" و برای مضارب 3 و 5 "fizzbuzz" رو خروجی بده.
  • چرا به طور کلی، فکر خوبیه تا اسکوپ جنرال یک وبسایت رو همینطوری که هست بزاریم بمونه و هیچوقت بهش دست نزنیم؟
  • چرا از چیزهایی مثل ایونت load استفاده میکنی؟ این ایونت معایبی هم داره؟ جایگزینی میشناسی، و چرا از اونها استفاده میکنی؟
  • توضیح بده که یک اپ سینگل پیج چیه و چطوری میشه سئوی یکیشون رو درست کرد؟
  • نهایت تجربه‌ات توی کار کردن ب پرامیس‌ها و/یا پروفیل‌هاش چیه؟
  • مزایا و معایب استفاده از پرامیس‌ها به جای کال‌بک‌ها چیه؟
  • چنتا از مزایا/معایب نوشتن کدهای جاوااسکریپت به زبانی که به جاوااسکریپت کامپایل میشه چیا هست؟
  • از چه ابزارها و تکنیک‌هایی برای دیباگ کردن کدهای جاوااسکریپت استفاده می‌کنی؟
  • از چه ساختار زبانی برای طی کردن پراپرتی‌های یک آبجکت یا آیتم‌های آرایه استفاده میکنی؟
  • تفاوت بین آبجکت‌های تغییرپذیر و تغییرناپذیر رو توی جاوااسکریپت توضیح بده.
    • یه مثال از آبجکت تغییرناپذیر توی جاوااسکریپت بزن.
    • مزایا و معایب تغییرناپذیری چیه؟
    • چطوری میتونی توی کدهای خودت به تغییرناپذیری رو اجرا کنی؟
  • فرق بین فانکشن‌های همگام و غیرهمگام رو توضیح بده.
  • ایونت لوپ چیه؟
    • فرق بین استک کال و صف تسک چیه؟
  • فرق بین استفاده از foo توی function foo() {} و var foo = function() {} رو توضیح بده.

سوال‌های تستینگ:

  • مزایا/معایب تست کردن کدهات چیا هستن؟
  • از چه ابزارهایی برای تست کردن فانکشنالیتی کدهات استفاده می‌کنی؟
  • فرق بین تست یونیت و فانکشنال/اینتگریشن تست چیه؟
  • هدف ابزارهای لینت کردن کد چی هست؟

سوال‌های پرفورمنس:

  • از چه ابزاری استفاده میکنی تا یه باگ مربوط به پرفورمنس رو توی کدهات پیدا کنی؟
  • چه راه‌هایی وجود داره تا پرفورمنس اسکرول کردن سایتت بهبود پیدا کنه؟
  • فرق بین لی‌اوت، پینتینگ و کامپوزیتینگ رو توضیح بده.

سوال‌های شبکه:

  • از قدیم، چرا همیشه بهتر بوده تا اَسِت‌های سایت رو از دامین‌های مختلف سرو کرد؟
  • بهترین تعریفی رو که از پردازشی وقتی که یوآرال یک وبسایتی رو تایپ میکنی تا وقتی که لود شدنش روی صفحه‌ی نمایشت تموم بشه انجام میشه، ارائه بده.
  • فرق بین ایونت‌های Long-Polling، Websocketها و Server-Sent چیه؟
  • هدرهای ریکوئست و ریسپانس‌های زیر رو توضیح بده:
    • Diff. between Expires, Date, Age and If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • متدهای اچ‌تی‌تی‌پی چی هستن؟ تمام متدهای اچ‌تی‌تی‌پی که میشناسی لیست کن و توضیحشون بده.

سوال‌های کدینگ:

سوال: مقدار foo چیست؟

var foo = 10 + '20';

سوال: چیکار میکنی تا این کار کنه؟

add(2, 5); // 7
add(2)(5); // 7

سوال: مقدار برگشته از عبارت زیر چیست؟

"i'm a lasagna hog".split("").reverse().join("");

سوال: مقدار window.foo چیست؟

( window.foo || ( window.foo = "bar" ) );

سوال: خروجی دو آلرت زیر چیست؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سوال: مقدار foo.length چیست؟

var foo = [];
foo.push(1);
foo.push(2);

سوال: مقدار foo.x چیست؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سوال: کد زیر چه چیزی رو پرینت می‌کند؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

سوال‌های فان:

  • پروژه‌ی باحالی که جدیدا روش کار کردی چی بود؟
  • از چه چیزهایی از ابزارهای توسعه‌دهنده‌ای که استفاده می‌کنی خوشت میاد؟
  • چه کسی الهام بخش تو توی کامیونیتی فرانت-اند کارها هست؟
  • پروژه‌ی خونگی داری؟ چجور پروژه‌ایه؟
  • فیچر مورد علاقه‌ات توی اینترنت اکسپلورر چیه؟
  • قهوه‌ات رو چطوری دوست داری؟

مشارکت کنندگان:

این نوشته با همکاری @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed و @iansym از سال ۲۰۰۹ آغاز شده است.

از آن موقع تا کنون بیش از ۱۰۰ دولوپر در آن مشارکت کرده‌اند.

این سند توسط @JavidIzadfar به فارسی برگردانده شده است.

\ No newline at end of file +سوالات مصاحبه‌ی کاری فرانت‌-اند ★ Front-end Job Interview Questions

سوالات مصاحبه‌ی کاری فرانت‌-اند

سوالات مصاحبه‌ی کاری فرانت‌-اند

این فایل شامل چندین سوال مربوط به مصاحبه‌ی فرانت-اند هست که ازشون میشه در زمان بررسی داوطلب‌های بالقوه استفاده کرد. به هیچ وجه پیشنهاد نمیشه که تمام سوالات اینجا رو از یک داوطلب بپرسین (چون چند ساعت طول می‌کشه). انتخاب چند مورد از این لیست باید بهتون در بررسی توانایی‌هایی که نیاز دارید کمک کنه.

توجه: در نظر داشته باشید که ته خیلی از این سوالات باز هستن و ممکنه به یک بحث جذاب ختم بشن که بیشتر از یک جواب ساده به شما در مورد توانایی‌های شخص مورد نظر اطلاعات میده.

فهرست

  1. سوال‌های عمومی
  2. سوال‌های اچ‌تی‌ام‌ال
  3. سوال‌های سی‌اس‌اس
  4. سوال‌های جی‌اس
  5. سوال‌های تستینگ
  6. سوال‌های پرفورمنس
  7. سوال‌های شبکه
  8. سوال‌های کدینگ
  9. سوال‌های فان

درگیر شدن

  1. مشارکت کنندگان
  2. چطور مشارکت کنید
  3. مجوز

سوال‌های عمومی:

  • این هفته/امروز چه چیزی یاد گرفتی؟
  • چه چیزی توی کد زدن برات جذابه یا به هیجان میارتت؟
  • یه چالش فنی که جدیدا باهاش روبرو شدی چی بود و چطوری حلش کردی؟
  • وقتی میخوایی یه سایت یا یه وب اپلیکیشن بسازی، به چه چیزهای رابط کاربری، امنیتی، کارایی، سئو، نگه‌داری یا تکونولوژی توجه میکنی؟
  • در مورد محیط توسعه‌ی مورد علاقه‌ات بگو.
  • با کدوم سیستم کنترل ورژن آشنا هستی؟
  • میتونی گردش کارت رو برای وقتی که داری یه صفحه وب میسازی توضیح بدی؟
  • اگه ۵ تا استایل‌شیت مختلف داشته باشی، چطوری اون‌ها رو به نحو احسنت با هم توی سایت ادغام میکنی؟
  • میتونی تفاوت بین بهبود تصاعدی و افت شدید رو توضیح بدی؟
  • چطوری اَسِت‌ها/منابع یک وبسایت رو بهینه میکنی؟
  • یک مرورگر در هر لحظه از یک دامنه چنتا منابع دانلود میکنه؟
    • استثناها چیا هستن؟
  • سه روش بگو که بشه لود صفحه رو کم کرد (لود دیداری یا زمان لود واقعی)
  • اگه یهو وارد یه پروژه بشی و ببینی که از تَب استفاده کردن و تو از اسپس استفاده کردی، چیکار میکنی؟
  • توضیح بده که چطوری یه صفحه‌ی اسلایدشوی ساده می‌سازی.
  • اگه میتونستی یک تکنولوژی رو امسال استاد بشی، دنبال چی می‌رفتی؟
  • اهمیت استاندارد‌ها و سازمان‌های مشخص کردن استاندارد رو توضیح بده.
  • فلش محتوی بدون استایل (FOUC) چیه؟ چطوری میشه ازش پرهیز کرد؟
  • توضیح بده که AIRA و صفحه‌خوان‌ها چین و چطوری میشه یک وبسایت رو در دسترس قرار داد؟
  • مزایا و معایب انیمیشن‌های سی‌اس‌اس در مقایسه با جاوااسکریپت رو توضیح بده.
  • CORS مخفف چیه و به چه مسئله‌ای اشاره داره؟

سوال‌های اچ‌تی‌ام‌ال:

  • doctype چیکار میکنه؟
  • فرق بین حالت‌های کاملا استاندارد، تقریبا استاندارد و قدیمی (quirks) چیه؟
  • تفاوت بین اچ‌تی‌ام‌ال و اکس‌اچ‌تی‌ام‌ال چیه؟
  • مشکلی برای سرو کردن صفحه‌ای به صورت application/xhtml+xml هست؟
  • چطور یه صفحه‌ای رو با محتوای چندزبانه سرو میکنی؟
  • وقتی که داری سایت چندزبانه طراحی میکنی یا توسعه میدی، به چه چیزهایی باید حواست باشه؟
  • اتریبیوت‌های data- به چه دردی میخورن؟
  • اچ‌تی‌ام‌ال۵ رو یک پلتفرم وب آزاد در نظر بگیر. بلوک‌های سازنده‌ی اچ‌تی‌ام‌ال۵ چیا هستن؟
  • فرق بین یک <script>، <script async> و <script defer> رو شرح بده.
  • چرا به طور کلی فکر خوبیه که <link>های سی‌اس‌اس رو داخل <head></head> و <script>های جی‌اس رو قبل از </body> قرار داد؟ هیچ استثنایی میشناسی؟
  • رندر شدن تصاعدی چیه؟
  • قبلا زبان‌های تمپلیت‌سازی اچ‌تی‌ام‌ال استفاده کردی؟

سوال‌های سی‌اس‌اس:

  • توی سی‌اس‌اس فرق بین کلاس و آی‌دی چیه؟
  • توی سی‌اس‌اس فرق بین «normalizing» و «resetting» چیه؟ خودت کدومشون رو انتخاب میکردی، و چرا؟
  • فلوت رو توضیح بده و بگو چطوری کار میکنن.
  • زد-ایندکس رو توضیح بده و بگو روی هم چینی زمینه چطوری ایجاد میشه.
  • BFC‌ (Block Formatting Context) چیه و چطوری کار میکنه؟
  • روش‌های مختلف برای پاک کردن چیه و هر کدوم به درد چه موقعیتی می‌خوره؟
  • اسپریت‌های سی‌اس‌اس رو توضیح بده و بگو چطوری اون‌ها رو روی صفحه یا سایت پیاده‌سازی می‌کنی؟
  • روش‌های جایگزینی تصویر مورد علاقه‌ات چیا هستن و از هر کدوم کی استفاده می‌کنی؟
  • برای حل کردن مشکلات استایل‌های مختص به مرورگر، چطوری عمل می‌کنی؟
    • از چه تکنیک/پروسه‌ای استفاده می‌کنی؟
  • راه‌های مختلف برای مخفی کردن بصری محتوی (و قابل خوندن کردنشون فقط برای صفحه‌خوان‌ها) چیا هستن؟
  • تا حالا از یک گرید سیستم استفاده کردی، اگه آره، کدومشون رو ترجیح میدی؟
  • تاحالا از مدیا کوئری‌ها یا لی‌اوت/سی‌اس‌اس مخصوص موبایل استفاده یا پیاده‌سازی کردی؟
  • با استایل دادن به SVG آشنا هستی؟
  • یک صفحه‌ی وب رو چطوری برای چاپ بهینه می‌کنی؟
  • چنتا از «مچ‌گیری»‌های لازم برای نوشتن سی‌اس‌اس کارآمد چیا هستن؟
  • مزایا و معایب استفاده از پیش‌پردازنده‌های سی‌اس‌اس چیا هستن؟
    • توضیح بده چه چیزایی از پیش‌پردازنده‌های سی‌اس‌اس که قبلا استفاده کردی رو دوست داشتی و دوست نداشتی.
  • یه دیزاین کلی که فونت‌های غیراستاندارد داره رو چطوری پیاده سازی می‌کنی؟
  • توضیح بده که یک مرورگر چطوری مشخص میکنه کدوم المنت با کدوم سلکتور سی‌اس‌اس مچ میشه.
  • سودو المنت‌ها رو توصیف کن و بحث کن که برای چی ازشون استفاده می‌کنن.
  • چیزی رو که از باکس مدل فهمیدی توضیح بده و بگو چطوری توی سی‌اس‌اس به مرورگر میفهمونی تا لی‌اوتت رو توی باکس مدل‌های متفاوتی رندر کنه.
  • * { box-sizing: border-box; } چیکار میکنه؟ فوایدش چیه؟
  • هر چی مقدار برای پراپرتی دیسپلی یادت میاد رو لیست کن.
  • فرق بین اینلاین و اینلاین-بلاک چیه؟
  • فرق بین یک المنت با پوزیشن ریلیتیو، فیکسد، ابسولوت و استایتک چیه؟
  • «C» داخل سی‌اس‌اس برای Casacading یا آبشاری هست. اولویت توی اختصاص استایل چطوری مشخص می‌شه (چنتا مثال)؟
  • از چه فریم‌ورک‌های سی‌اس‌اس به صورت لوکال یا توی پروداکشن استفاده کردی؟
  • تا حالا با فلکس‌باک یا ویژگی‌های جدید گرید توی سی‌اس‌اس بازی بازی کردی؟
  • طراحی ریسپانسیو با طراحی آداپتیو چه تفاوتی داره؟
  • تاحالا با گرافیک رتینا کار کردی؟ اگه آره، کی و از چه تکنیک‌هایی استفاده کردی؟
  • دلیل هست که از translate() به جای جاگذاری ابسولوت یا برعکس استفاده کنی؟ و چرا؟

سوال‌های جی‌اس:

  • ایونت دلیگیشن رو توضیح بده.
  • توضیح بده this توی جاوااسکریپت چطوری کار میکنه.
  • توضیح بده ارث‌بری پروتوتایپی چطوری کار میکنه.
  • نظرت در مورد AMD در برابر CommonJS چیه؟
  • توضیح بده چرا قطعه‌ی روبرو به عنوان یک IIFE کار نمیکنه: function foo(){ }();.
    • چه چیزی احتیاج داره تا به شیوه‌ی صحیح IIFE بشه؟
  • فرق بین یک متغییر که null، undefined یا اعلام نشده هست چیه؟
    • چطوری وضعیت هر کدوم از این‌ها رو چک می‌کنی؟
  • کلوژر چیه و چطور/چرا ازش استفاده می‌کنی؟
  • استفاده‌ی معمول از فانکشن‌های انانیموس چیه؟
  • چطوری کدهات رو مرتب میکنی؟ (ماژول پترن، ارث‌بری کلاسیک)
  • فرق بین آبجکت‌های هاست و آبجکت‌های نیتیو چیه؟
  • فرق بین: function Person(){}، var person = Person()، و var person = new Person()؟
  • فرق بین .call و .apply چیه؟
  • Function.prototype.bind رو توضیح بده.
  • چه موقع از document.write() استفاده میکنی؟
  • فرق بین تشخیص ویژگی، استنتاج ویژگی و استفاده از استرینگ UA چیه؟
  • ایجکس رو تا تمام جزئیاتی که می‌تونی توضیح بده.
  • مزایا و معایب استفاده از ایجکس چیا هستن؟
  • توضیح بده که JSONP چطوری کار میکنه (و چطوری واقعا ایجکس نیست؟)
  • تاحالا از تمپلیت‌سازی جاوااسکریپتی استفاده کردی؟
    • اگه آره، از چه کتابخونه‌هایی استفاده کردی؟
  • «هویستینگ» رو توضیح بده.
  • ایونت بابلینگ رو توضیح بده.
  • فرق بین یک «اتریبیوت» و یک «پراپرتی» چیه؟
  • چرا اکستند کردن یه آبجکت جاوااسکریپتی بیلت-این فکر خوبی نیست؟
  • فرق بین ایونت load داکیومنت و DOMContentLoaded چیه؟
  • فرق بین == و === چیه؟
  • سیاستگذاری سیم-اوریجین رو از دید جاوااسکریپت توضیح بده.
  • کاری کن این کار کنه:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • چرا میگن اکسپرشن Ternary، کلمه‌ی «Ternary» چه چیزی رو میگه؟
  • "use strict"; چیه؟ مزایا و معایب استفاده ازش چیه؟
  • یه حلقه بساز که تا 100 تکرار بشه در حالی که برای مضارب 3 "fizz"، برای مضارب 5 "buzz" و برای مضارب 3 و 5 "fizzbuzz" رو خروجی بده.
  • چرا به طور کلی، فکر خوبیه تا اسکوپ جنرال یک وبسایت رو همینطوری که هست بزاریم بمونه و هیچوقت بهش دست نزنیم؟
  • چرا از چیزهایی مثل ایونت load استفاده میکنی؟ این ایونت معایبی هم داره؟ جایگزینی میشناسی، و چرا از اونها استفاده میکنی؟
  • توضیح بده که یک اپ سینگل پیج چیه و چطوری میشه سئوی یکیشون رو درست کرد؟
  • نهایت تجربه‌ات توی کار کردن ب پرامیس‌ها و/یا پروفیل‌هاش چیه؟
  • مزایا و معایب استفاده از پرامیس‌ها به جای کال‌بک‌ها چیه؟
  • چنتا از مزایا/معایب نوشتن کدهای جاوااسکریپت به زبانی که به جاوااسکریپت کامپایل میشه چیا هست؟
  • از چه ابزارها و تکنیک‌هایی برای دیباگ کردن کدهای جاوااسکریپت استفاده می‌کنی؟
  • از چه ساختار زبانی برای طی کردن پراپرتی‌های یک آبجکت یا آیتم‌های آرایه استفاده میکنی؟
  • تفاوت بین آبجکت‌های تغییرپذیر و تغییرناپذیر رو توی جاوااسکریپت توضیح بده.
    • یه مثال از آبجکت تغییرناپذیر توی جاوااسکریپت بزن.
    • مزایا و معایب تغییرناپذیری چیه؟
    • چطوری میتونی توی کدهای خودت به تغییرناپذیری رو اجرا کنی؟
  • فرق بین فانکشن‌های همگام و غیرهمگام رو توضیح بده.
  • ایونت لوپ چیه؟
    • فرق بین استک کال و صف تسک چیه؟
  • فرق بین استفاده از foo توی function foo() {} و var foo = function() {} رو توضیح بده.

سوال‌های تستینگ:

  • مزایا/معایب تست کردن کدهات چیا هستن؟
  • از چه ابزارهایی برای تست کردن فانکشنالیتی کدهات استفاده می‌کنی؟
  • فرق بین تست یونیت و فانکشنال/اینتگریشن تست چیه؟
  • هدف ابزارهای لینت کردن کد چی هست؟

سوال‌های پرفورمنس:

  • از چه ابزاری استفاده میکنی تا یه باگ مربوط به پرفورمنس رو توی کدهات پیدا کنی؟
  • چه راه‌هایی وجود داره تا پرفورمنس اسکرول کردن سایتت بهبود پیدا کنه؟
  • فرق بین لی‌اوت، پینتینگ و کامپوزیتینگ رو توضیح بده.

سوال‌های شبکه:

  • از قدیم، چرا همیشه بهتر بوده تا اَسِت‌های سایت رو از دامین‌های مختلف سرو کرد؟
  • بهترین تعریفی رو که از پردازشی وقتی که یوآرال یک وبسایتی رو تایپ میکنی تا وقتی که لود شدنش روی صفحه‌ی نمایشت تموم بشه انجام میشه، ارائه بده.
  • فرق بین ایونت‌های Long-Polling، Websocketها و Server-Sent چیه؟
  • هدرهای ریکوئست و ریسپانس‌های زیر رو توضیح بده:
    • Diff. between Expires, Date, Age and If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • متدهای اچ‌تی‌تی‌پی چی هستن؟ تمام متدهای اچ‌تی‌تی‌پی که میشناسی لیست کن و توضیحشون بده.

سوال‌های کدینگ:

سوال: مقدار foo چیست؟

var foo = 10 + '20';

سوال: چیکار میکنی تا این کار کنه؟

add(2, 5); // 7
add(2)(5); // 7

سوال: مقدار برگشته از عبارت زیر چیست؟

"i'm a lasagna hog".split("").reverse().join("");

سوال: مقدار window.foo چیست؟

( window.foo || ( window.foo = "bar" ) );

سوال: خروجی دو آلرت زیر چیست؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سوال: مقدار foo.length چیست؟

var foo = [];
foo.push(1);
foo.push(2);

سوال: مقدار foo.x چیست؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سوال: کد زیر چه چیزی رو پرینت می‌کند؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

سوال‌های فان:

  • پروژه‌ی باحالی که جدیدا روش کار کردی چی بود؟
  • از چه چیزهایی از ابزارهای توسعه‌دهنده‌ای که استفاده می‌کنی خوشت میاد؟
  • چه کسی الهام بخش تو توی کامیونیتی فرانت-اند کارها هست؟
  • پروژه‌ی خونگی داری؟ چجور پروژه‌ایه؟
  • فیچر مورد علاقه‌ات توی اینترنت اکسپلورر چیه؟
  • قهوه‌ات رو چطوری دوست داری؟

مشارکت کنندگان:

این نوشته با همکاری @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed و @iansym از سال ۲۰۰۹ آغاز شده است.

از آن موقع تا کنون بیش از ۱۰۰ دولوپر در آن مشارکت کرده‌اند.

این سند توسط @JavidIzadfar به فارسی برگردانده شده است.

\ No newline at end of file diff --git a/_site/translations/french/index.html b/_site/translations/french/index.html index ced106125..14310d23e 100644 --- a/_site/translations/french/index.html +++ b/_site/translations/french/index.html @@ -1 +1 @@ -Questionnaire de recrutement pour développeur front-end ★ Front-end Job Interview Questions

Questionnaire de recrutement pour développeur front-end

Questionnaire de recrutement pour développeur front-end

Cette liste contient un certain nombre de questions que vous pouvez poser lors d’un entretien d’embauche pour un développeur Front-End. Il n’est en aucun cas recommandé de poser toutes ces questions à un candidat (ça prendrait des heures). Choisissez en quelques-unes liées au profil que vous rechercher afin de vérifier les compétences dont vous avez besoin.

Note: Gardez en tête que la plupart de ces questions sont ouvertes et qu’elles peuvent mener à des discussions intéressantes, qui vous en apprendront plus sur les capacités de la personne.

Table des matières

  1. Questions générales
  2. Questions sur HTML
  3. Questions sur CSS
  4. Questions sur JS
  5. Questions sur réseau
  6. Questions sur la programmation
  7. Questions pour le fun

S’impliquer :

  1. Contributeurs
  2. Comment contribuer (en)
  3. Licence

[⬆]

Questions générales:

  • Qu’avez-vous appris cette semaine ?
  • Qu’est ce qui vous motive ou vous intéresse dans le développement ?
  • Quel a été le dernier défi technique que vous avez expérimenté et comment l’avez-vous résolu ?
  • Quelles considérations en terme d’UI, Sécurité, Performance, SEO, Maintenabilité ou Technologie faites-vous lorsque vous concevez une application web ou site ?
  • Parlez-moi de votre environnement de travail préféré.
  • Avec quels logiciels de gestion de versions êtes-vous familier?
  • Pouvez-vous décrire comment vous travaillez (votre workflow) lorsque vous créez une page web ?
  • Si vous aviez 5 feuilles de style différentes, de quelle façon les intégreriez-vous le mieux dans un site ?
  • Pouvez-vous décrire la différence entre amélioration progressive et dégradation gracieuse ?
  • Comment optimisez-vous les performances de vos pages web (assets/ressources) ?
  • Combien de ressources différentes à la fois un navigateur peut-il télécharger à partir d’un même domaine ?
    • Quelles sont les exceptions ?
  • Donnez 3 façons qui permettent de réduire le temps de chargement d’une page (perçu ou réel).
  • Si vous commencez à travailler sur un projet existant, où votre prédécesseur a utilisé des tabulations pour indenter son code et que vous utilisez des espaces, que faites-vous ?
  • Décrivez comment vous développeriez un simple diaporama
  • Quels outils utilisez-vous pour tester la performance de votre code ?
  • Si vous pouviez maîtriser parfaitement une technologie cette année, laquelle serait-elle ?
  • Expliquez l’importance des standards et des organisations les édictant.
  • Qu’est-ce que le FOUC (flash of unstyled content) et comment l’évitez-vous ?
  • Expliquez ce que sont ARIA et les lecteurs d’écrans, et comment rendre votre site internet accessible
  • Expliquez quelques-uns des pour et contre des animations CSS par rapport aux animations JavaScript
  • Que signifie CORS et quel problème aborde-t-il ?

[⬆]

Questions sur HTML :

  • Que fait un doctype ?
  • Quelle est la différence entre les modes standard et quirks ?
  • Quelles sont les différences entre HTML et XHTML ?
  • Y a-t-il des problèmes à envoyer des pages avec le Content-Type application/xhtml+xml ?
  • Comment servez-vous une page avec du contenu multilingue ?
  • À quoi devez-vous faire attention quand vous designez ou développez des pages pour des sites multilingues ?
  • À quoi les attributs data- servent-ils ?
  • Si l’on considère que HTML5 est une API Web ouverte, quelles sont les briques de base de HTML5 ?
  • Décrivez la différence entre cookie, sessionStorage, et localStorage.
  • Décrivez la différence entre <script>, <script async> et <script defer>.
  • Pourquoi est-ce généralement une bonne idée de positionner les <link> à l’intérieur de <head></head> et les <script> juste avant </body>? Connaissez-vous des exceptions ?
  • Qu’est-ce que le rendu progressif ?
  • Pourquoi utiliseriez-vous l’attribut srcset dans une balise image ? Expliquez le processus utilisé par le navigateur lors de l’évaluation du contenu de cet attribut.

[⬆]

Questions sur CSS :

  • Quelle est la différence entre les classes et les IDs en CSS ?
  • Quelle est la différence entre un “reset” et une “normalisation” en CSS ? Lequel choisiriez-vous et pourquoi ?
  • Décrivez le positionnement flottant et son fonctionnement.
  • Décrivez le z-index et comment le contexte d’empilement se forme ?
  • Quelles sont les différentes méthodes de “clearing” des éléments flottants, et laquelle est appropriée pour chaque contexte ?
  • Expliquez ce que sont les “sprites” CSS et comment vous les implémenteriez sur une page ou un site.
  • Quelles sont vos techniques favorites de remplacement d’images, et comment les utilisez-vous ?
  • Quelle approche choisiriez-vous pour réparer des bugs au niveau du CSS spécifique à certains navigateurs ?
  • Comment servez-vous vos pages pour les navigateurs aux fonctionnalités réduites ?
    • Quelles techniques/procédés utilisez-vous ?
  • Quelles sont les différentes manières de masquer du contenu (en le laissant disponible pour les lecteurs d’écran) ?
  • Avez-vous déjà utilisé un système de grille, et si oui, lequel préférez-vous ?
  • Avez-vous déjà implémenté des “media queries”, ou des “layouts CSS” spécifiques aux mobiles ?
  • Avez-vous déjà touché au style d’un SVG ?
  • Comment optimisez-vous vos pages pour l’impression (le print) ?
  • Quelques astuces pour écrire du CSS efficacement ?
  • Quels sont les avantages/désavantages de l’utilisation des préprocesseurs CSS ? (SASS, Compass, Stylus, LESS)
    • Si vous avez un avis, décrivez ce que vous aimez et n’aimez pas des préprocesseurs que vous avez utilisé.
  • Comment implémenteriez-vous un design qui utilise des polices de caractères non standards ?
  • Expliquez comment un navigateur détermine quels éléments correspondent à un sélecteur CSS.
  • Expliquez ce que vous avez compris du modèle de boite (box model) et comment implémenteriez vous une mise en page avec des modèles de boite différents.
  • Qu’est-ce que * { box-sizing: border-box; } fait ? Quels sont ses désavantages ?
  • Listez autant de valeurs que vous pouvez pour la propriété display.
  • Quelle est la différence entre inline et inline-block ?
  • Quelle est la différence entre les éléments ayant relative, fixed, absolute et static comme position ?
  • Le ‘C’ dans CSS veut dire Cascade (Cascading). Comment la priorité est-elle définie lors de l’assignement de styles (exemples) ? Comment pouvez-vous utiliser ce système à votre avantage ?
  • Quels frameworks CSS avez-vous utilisé localement, ou en production ? Comment feriez-vous pour les changer/améliorer ?
  • Avez-vous expérimenté le récent flexbox ?
  • En quoi le “responsive design” est différent du “adaptive design” ?
  • Avez-vous déjà travaillé avec des images “retina” ? Si oui, à quel moment et quelles techniques avez-vous utilisées ?
  • Y a-t-il des raisons particulières pour lesquelles vous voudriez utilser translate() plutôt que position: absolute ou vice-versa ? Et pourquoi ?

[⬆]

Questions sur JS :

  • Expliquez la délégation d’évènement.
  • Expliquez comment fonctionne this en Javascript.
  • Expliquez comment fonctionne l’héritage de prototype.
  • Comment testez-vous votre code Javascript ?
  • Que pensez-vous d’AMD par rapport à CommonJS ?
  • Expliquez pourquoi ce qui suit n’est pas une IIFE (Immediately Invoked Function Expression) : function foo(){ }();.
    • Qu’est-ce qu’il faut changer pour faire une IIFE correcte ?
  • Quelle est la différence entre une variable null, undefined et non déclarée ?
    • Comment feriez-vous pour vérifier chacun de ces états ?
  • Qu’est-ce qu’une “closure” et comment/pourquoi en utiliser une ?
  • Pouvez-vous décrire la principale difference entre la boucle forEach et la boucle .map() et pourquoi choisiriez-vous l’une et pas l’autre ?
  • Quelle est l’utilisation typique d’une fonction anonyme ?
  • Comment organisez-vous votre code ? (pattern modulaire, héritage classique ?)
  • Quelle est la différence entre des objets hôtes et des objets natifs ?
  • Différence entre: function Person() {}, var person = Person() et var person = new Person() ?
  • Quelle est la différence entre .call et .apply ?
  • Expliquez Function.prototype.bind ?
  • Comment optimisez-vous votre code ?
  • Pouvez-vous expliquer comment fonctionne l’héritage en Javascript ?
  • Quand utiliseriez-vous document.write() ?
  • Quelle est la différence entre détection de “feature”, inférence de “feature” et l’utilisation du “User-Agent” ?
  • Expliquez ce qu’est AJAX avec autant de détails que possible.
  • Expliquez comment fonctionne JSONP (et pourquoi ce n’est pas réellement de l’AJAX).
  • Avez-vous déjà utilisé des “templates” en Javascript ?
    • Si oui, quelles librairies avez-vous utilisées ?
  • Expliquez le phénomène de “hoisting”.
  • Décrivez le “event bubbling”.
  • Quelle est la différence entre un “attribut” et une “propriété” ?
  • Pourquoi étendre des objets natifs de Javascript n’est-il pas une bonne idée ?
  • Pourquoi étendre des objets natifs est-il une bonne idée ?
  • Quelle est la différence entre les évènements “document load” et “document ready” ?
  • Quelle est la différence entre == et === ?
  • Expliquez la politique d’origine commune (same-origin policy) et ses implications en JavaScript.
  • Expliquez les patterns d’héritage en JavaScript.
  • Faites fonctionner ceci :
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Qu’est ce que l’opérateur ternaire ? Qu’est-ce que ce mot indique ?
  • Qu’est-ce que "use strict";? Quels sont les avantages et désavantages de son utilisation ?
  • Créez une boucle for qui se répète 100 fois et affichez “fizz” aux multiples de 3, "buzz" aux multiples de 5 et “fizzbuzz” aux multiples de 3 et 5.
  • Pourquoi il est en général préférable de laissez le ‘scope’ global d’un site tel quel et ne jamais y toucher ?
  • Pourquoi utiliseriez-vous quelque chose comme l’événement load ? Est-ce que cet évènement a des avantages ? Connaissez-vous des alternatives, et pourquoi les utiliseriez-vous ?
  • Expliquez ce qu’est une application mono-page (Single Page Application) et comment feriez-vous pour qu’elle soit optimisée pour le référencement (SEO).
  • Quelle est l’étendue de votre expérience avec les “Promises” et/ou leurs “polyfills” ?
  • Quels sont les pour et contre de l’utilisation des “Promises” à la place des “callbacks” ?
  • Quels sont les avantages/inconvénients de l’écriture de code JavaScript dans un language qui compile en JavaScript ?
  • Quels outils et techniques utilisez-vous pour le “debugging” du code javascript ?
  • Quels langages de construction utilisez-vous pour les itérations sur les propriétés d’objet et éléments de tableau.
  • Expliquez la difference entre les objets muables et les objets immuables.
    • Donnez un exemple d’objet immuable en javascript.
    • Quels sont les avantages et inconvénients de l’immuabilité ?
    • Comment pouvez-vous réaliser l’immuabilité dans votre code ?
  • Expliquez la différence entre les fonctions synchrones et asynchrones.
  • Qu’est ce qu’une boucle d’événement ?
    • Quelle est la différence entre la pile d’appels et la file d’attente de tâches?
  • Expliquez les différences dans l’usage de foo entre foo() {} et var foo = function() {}
  • Quelles sont les différences entre les variables crées en utilisant let, var ou const ?

[⬆]

Questions sur les Tests

  • Quels sont les avantages/inconvénients de tester votre code ?
  • Quels outils utiliseriez-vous pour tester les fonctionnalités de votre code.
  • Quel est la difference entre un test unitaire et un test fonctionnel/d’intégration ?
  • Quel est le but d’un outil de lissage de style de code ?

[⬆]

Questions sur la performance

  • Quels outils utiliseriez-vous pour trouver une erreur de performance dans votre code ?
  • Comment pouvez-vous améliorer les performances de défilement de votre site Web ?
  • Expliquez la différence entre la mise en page, la peinture et la composition.

[⬆]

Questions sur le réseau

  • Pourquoi est-il préférable de disposer ses assets sur des domaines différents ?
  • Faites de votre mieux pour décrire le processus à partir du moment où vous tapez l’URL d’un site internet jusqu’au moment où la page a finit de charger.
  • Quelle est la différence entre “Long-Polling”, “Websockets” et les événements “Server-Sent” ?
  • Expliquez les entêtes de requêtes et réponses suivant :
    • Différences entre Expires, Date, Age et If-Modified-
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Quelles sont les différentes actions (verbes) HTTP ? Listez toutes celles que vous connaissez et expliquez-les.

[⬆]

Questions sur la programmation :

Quelle est la valeur de foo ?

var foo = 10 + '20';

Comment feriez-vous marcher ceci ?

add(2, 5); // 7
add(2)(5); // 7

Que retourne ce code ?

"je suis un bouffeur de lasagne".split("").reverse().join("");

Que retourne window.foo ?

( window.foo || ( window.foo = "bar" ) );

Qu’affichent les deux alertes ci-dessous ?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Quelle est la valeur de foo.length ?

var foo = [];
foo.push(1);
foo.push(2);

[⬆]

Questions pour le fun :

  • Quel est le truc le plus cool que vous ayez programmé, de quoi êtes-vous le plus fier ?
  • Quelles sont les parties favorites des outils de développement que vous utilisez ?
  • Qui vous inspire dans la communauté front-end ?
  • Avez-vous des projets chouchous ? Quel genre ?
  • Quelle est votre fonctionnalité favorite dans IE ?
  • Comment voulez-vous votre café ?

[⬆]

Contributeurs :

Ce document a démarré avec la collaboration de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed et @iansym.

Il a depuis reçu des contributions de plus de 100 développeurs.

\ No newline at end of file +Questionnaire de recrutement pour développeur front-end ★ Front-end Job Interview Questions

Questionnaire de recrutement pour développeur front-end

Questionnaire de recrutement pour développeur front-end

Cette liste contient un certain nombre de questions que vous pouvez poser lors d’un entretien d’embauche pour un développeur Front-End. Il n’est en aucun cas recommandé de poser toutes ces questions à un candidat (ça prendrait des heures). Choisissez en quelques-unes liées au profil que vous rechercher afin de vérifier les compétences dont vous avez besoin.

Note: Gardez en tête que la plupart de ces questions sont ouvertes et qu’elles peuvent mener à des discussions intéressantes, qui vous en apprendront plus sur les capacités de la personne.

Table des matières

  1. Questions générales
  2. Questions sur HTML
  3. Questions sur CSS
  4. Questions sur JS
  5. Questions sur réseau
  6. Questions sur la programmation
  7. Questions pour le fun

S’impliquer :

  1. Contributeurs
  2. Comment contribuer (en)
  3. Licence

[⬆]

Questions générales:

  • Qu’avez-vous appris cette semaine ?
  • Qu’est ce qui vous motive ou vous intéresse dans le développement ?
  • Quel a été le dernier défi technique que vous avez expérimenté et comment l’avez-vous résolu ?
  • Quelles considérations en terme d’UI, Sécurité, Performance, SEO, Maintenabilité ou Technologie faites-vous lorsque vous concevez une application web ou site ?
  • Parlez-moi de votre environnement de travail préféré.
  • Avec quels logiciels de gestion de versions êtes-vous familier?
  • Pouvez-vous décrire comment vous travaillez (votre workflow) lorsque vous créez une page web ?
  • Si vous aviez 5 feuilles de style différentes, de quelle façon les intégreriez-vous le mieux dans un site ?
  • Pouvez-vous décrire la différence entre amélioration progressive et dégradation gracieuse ?
  • Comment optimisez-vous les performances de vos pages web (assets/ressources) ?
  • Combien de ressources différentes à la fois un navigateur peut-il télécharger à partir d’un même domaine ?
    • Quelles sont les exceptions ?
  • Donnez 3 façons qui permettent de réduire le temps de chargement d’une page (perçu ou réel).
  • Si vous commencez à travailler sur un projet existant, où votre prédécesseur a utilisé des tabulations pour indenter son code et que vous utilisez des espaces, que faites-vous ?
  • Décrivez comment vous développeriez un simple diaporama
  • Quels outils utilisez-vous pour tester la performance de votre code ?
  • Si vous pouviez maîtriser parfaitement une technologie cette année, laquelle serait-elle ?
  • Expliquez l’importance des standards et des organisations les édictant.
  • Qu’est-ce que le FOUC (flash of unstyled content) et comment l’évitez-vous ?
  • Expliquez ce que sont ARIA et les lecteurs d’écrans, et comment rendre votre site internet accessible
  • Expliquez quelques-uns des pour et contre des animations CSS par rapport aux animations JavaScript
  • Que signifie CORS et quel problème aborde-t-il ?

[⬆]

Questions sur HTML :

  • Que fait un doctype ?
  • Quelle est la différence entre les modes standard et quirks ?
  • Quelles sont les différences entre HTML et XHTML ?
  • Y a-t-il des problèmes à envoyer des pages avec le Content-Type application/xhtml+xml ?
  • Comment servez-vous une page avec du contenu multilingue ?
  • À quoi devez-vous faire attention quand vous designez ou développez des pages pour des sites multilingues ?
  • À quoi les attributs data- servent-ils ?
  • Si l’on considère que HTML5 est une API Web ouverte, quelles sont les briques de base de HTML5 ?
  • Décrivez la différence entre cookie, sessionStorage, et localStorage.
  • Décrivez la différence entre <script>, <script async> et <script defer>.
  • Pourquoi est-ce généralement une bonne idée de positionner les <link> à l’intérieur de <head></head> et les <script> juste avant </body>? Connaissez-vous des exceptions ?
  • Qu’est-ce que le rendu progressif ?
  • Pourquoi utiliseriez-vous l’attribut srcset dans une balise image ? Expliquez le processus utilisé par le navigateur lors de l’évaluation du contenu de cet attribut.

[⬆]

Questions sur CSS :

  • Quelle est la différence entre les classes et les IDs en CSS ?
  • Quelle est la différence entre un “reset” et une “normalisation” en CSS ? Lequel choisiriez-vous et pourquoi ?
  • Décrivez le positionnement flottant et son fonctionnement.
  • Décrivez le z-index et comment le contexte d’empilement se forme ?
  • Quelles sont les différentes méthodes de “clearing” des éléments flottants, et laquelle est appropriée pour chaque contexte ?
  • Expliquez ce que sont les “sprites” CSS et comment vous les implémenteriez sur une page ou un site.
  • Quelles sont vos techniques favorites de remplacement d’images, et comment les utilisez-vous ?
  • Quelle approche choisiriez-vous pour réparer des bugs au niveau du CSS spécifique à certains navigateurs ?
  • Comment servez-vous vos pages pour les navigateurs aux fonctionnalités réduites ?
    • Quelles techniques/procédés utilisez-vous ?
  • Quelles sont les différentes manières de masquer du contenu (en le laissant disponible pour les lecteurs d’écran) ?
  • Avez-vous déjà utilisé un système de grille, et si oui, lequel préférez-vous ?
  • Avez-vous déjà implémenté des “media queries”, ou des “layouts CSS” spécifiques aux mobiles ?
  • Avez-vous déjà touché au style d’un SVG ?
  • Comment optimisez-vous vos pages pour l’impression (le print) ?
  • Quelques astuces pour écrire du CSS efficacement ?
  • Quels sont les avantages/désavantages de l’utilisation des préprocesseurs CSS ? (SASS, Compass, Stylus, LESS)
    • Si vous avez un avis, décrivez ce que vous aimez et n’aimez pas des préprocesseurs que vous avez utilisé.
  • Comment implémenteriez-vous un design qui utilise des polices de caractères non standards ?
  • Expliquez comment un navigateur détermine quels éléments correspondent à un sélecteur CSS.
  • Expliquez ce que vous avez compris du modèle de boite (box model) et comment implémenteriez vous une mise en page avec des modèles de boite différents.
  • Qu’est-ce que * { box-sizing: border-box; } fait ? Quels sont ses désavantages ?
  • Listez autant de valeurs que vous pouvez pour la propriété display.
  • Quelle est la différence entre inline et inline-block ?
  • Quelle est la différence entre les éléments ayant relative, fixed, absolute et static comme position ?
  • Le ‘C’ dans CSS veut dire Cascade (Cascading). Comment la priorité est-elle définie lors de l’assignement de styles (exemples) ? Comment pouvez-vous utiliser ce système à votre avantage ?
  • Quels frameworks CSS avez-vous utilisé localement, ou en production ? Comment feriez-vous pour les changer/améliorer ?
  • Avez-vous expérimenté le récent flexbox ?
  • En quoi le “responsive design” est différent du “adaptive design” ?
  • Avez-vous déjà travaillé avec des images “retina” ? Si oui, à quel moment et quelles techniques avez-vous utilisées ?
  • Y a-t-il des raisons particulières pour lesquelles vous voudriez utilser translate() plutôt que position: absolute ou vice-versa ? Et pourquoi ?

[⬆]

Questions sur JS :

  • Expliquez la délégation d’évènement.
  • Expliquez comment fonctionne this en Javascript.
  • Expliquez comment fonctionne l’héritage de prototype.
  • Comment testez-vous votre code Javascript ?
  • Que pensez-vous d’AMD par rapport à CommonJS ?
  • Expliquez pourquoi ce qui suit n’est pas une IIFE (Immediately Invoked Function Expression) : function foo(){ }();.
    • Qu’est-ce qu’il faut changer pour faire une IIFE correcte ?
  • Quelle est la différence entre une variable null, undefined et non déclarée ?
    • Comment feriez-vous pour vérifier chacun de ces états ?
  • Qu’est-ce qu’une “closure” et comment/pourquoi en utiliser une ?
  • Pouvez-vous décrire la principale difference entre la boucle forEach et la boucle .map() et pourquoi choisiriez-vous l’une et pas l’autre ?
  • Quelle est l’utilisation typique d’une fonction anonyme ?
  • Comment organisez-vous votre code ? (pattern modulaire, héritage classique ?)
  • Quelle est la différence entre des objets hôtes et des objets natifs ?
  • Différence entre: function Person() {}, var person = Person() et var person = new Person() ?
  • Quelle est la différence entre .call et .apply ?
  • Expliquez Function.prototype.bind ?
  • Comment optimisez-vous votre code ?
  • Pouvez-vous expliquer comment fonctionne l’héritage en Javascript ?
  • Quand utiliseriez-vous document.write() ?
  • Quelle est la différence entre détection de “feature”, inférence de “feature” et l’utilisation du “User-Agent” ?
  • Expliquez ce qu’est AJAX avec autant de détails que possible.
  • Expliquez comment fonctionne JSONP (et pourquoi ce n’est pas réellement de l’AJAX).
  • Avez-vous déjà utilisé des “templates” en Javascript ?
    • Si oui, quelles librairies avez-vous utilisées ?
  • Expliquez le phénomène de “hoisting”.
  • Décrivez le “event bubbling”.
  • Quelle est la différence entre un “attribut” et une “propriété” ?
  • Pourquoi étendre des objets natifs de Javascript n’est-il pas une bonne idée ?
  • Pourquoi étendre des objets natifs est-il une bonne idée ?
  • Quelle est la différence entre les évènements “document load” et “document ready” ?
  • Quelle est la différence entre == et === ?
  • Expliquez la politique d’origine commune (same-origin policy) et ses implications en JavaScript.
  • Expliquez les patterns d’héritage en JavaScript.
  • Faites fonctionner ceci :
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Qu’est ce que l’opérateur ternaire ? Qu’est-ce que ce mot indique ?
  • Qu’est-ce que "use strict";? Quels sont les avantages et désavantages de son utilisation ?
  • Créez une boucle for qui se répète 100 fois et affichez “fizz” aux multiples de 3, "buzz" aux multiples de 5 et “fizzbuzz” aux multiples de 3 et 5.
  • Pourquoi il est en général préférable de laissez le ‘scope’ global d’un site tel quel et ne jamais y toucher ?
  • Pourquoi utiliseriez-vous quelque chose comme l’événement load ? Est-ce que cet évènement a des avantages ? Connaissez-vous des alternatives, et pourquoi les utiliseriez-vous ?
  • Expliquez ce qu’est une application mono-page (Single Page Application) et comment feriez-vous pour qu’elle soit optimisée pour le référencement (SEO).
  • Quelle est l’étendue de votre expérience avec les “Promises” et/ou leurs “polyfills” ?
  • Quels sont les pour et contre de l’utilisation des “Promises” à la place des “callbacks” ?
  • Quels sont les avantages/inconvénients de l’écriture de code JavaScript dans un language qui compile en JavaScript ?
  • Quels outils et techniques utilisez-vous pour le “debugging” du code javascript ?
  • Quels langages de construction utilisez-vous pour les itérations sur les propriétés d’objet et éléments de tableau.
  • Expliquez la difference entre les objets muables et les objets immuables.
    • Donnez un exemple d’objet immuable en javascript.
    • Quels sont les avantages et inconvénients de l’immuabilité ?
    • Comment pouvez-vous réaliser l’immuabilité dans votre code ?
  • Expliquez la différence entre les fonctions synchrones et asynchrones.
  • Qu’est ce qu’une boucle d’événement ?
    • Quelle est la différence entre la pile d’appels et la file d’attente de tâches?
  • Expliquez les différences dans l’usage de foo entre foo() {} et var foo = function() {}
  • Quelles sont les différences entre les variables crées en utilisant let, var ou const ?

[⬆]

Questions sur les Tests

  • Quels sont les avantages/inconvénients de tester votre code ?
  • Quels outils utiliseriez-vous pour tester les fonctionnalités de votre code.
  • Quel est la difference entre un test unitaire et un test fonctionnel/d’intégration ?
  • Quel est le but d’un outil de lissage de style de code ?

[⬆]

Questions sur la performance

  • Quels outils utiliseriez-vous pour trouver une erreur de performance dans votre code ?
  • Comment pouvez-vous améliorer les performances de défilement de votre site Web ?
  • Expliquez la différence entre la mise en page, la peinture et la composition.

[⬆]

Questions sur le réseau

  • Pourquoi est-il préférable de disposer ses assets sur des domaines différents ?
  • Faites de votre mieux pour décrire le processus à partir du moment où vous tapez l’URL d’un site internet jusqu’au moment où la page a finit de charger.
  • Quelle est la différence entre “Long-Polling”, “Websockets” et les événements “Server-Sent” ?
  • Expliquez les entêtes de requêtes et réponses suivant :
    • Différences entre Expires, Date, Age et If-Modified-
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Quelles sont les différentes actions (verbes) HTTP ? Listez toutes celles que vous connaissez et expliquez-les.

[⬆]

Questions sur la programmation :

Quelle est la valeur de foo ?

var foo = 10 + '20';

Comment feriez-vous marcher ceci ?

add(2, 5); // 7
add(2)(5); // 7

Que retourne ce code ?

"je suis un bouffeur de lasagne".split("").reverse().join("");

Que retourne window.foo ?

( window.foo || ( window.foo = "bar" ) );

Qu’affichent les deux alertes ci-dessous ?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Quelle est la valeur de foo.length ?

var foo = [];
foo.push(1);
foo.push(2);

[⬆]

Questions pour le fun :

  • Quel est le truc le plus cool que vous ayez programmé, de quoi êtes-vous le plus fier ?
  • Quelles sont les parties favorites des outils de développement que vous utilisez ?
  • Qui vous inspire dans la communauté front-end ?
  • Avez-vous des projets chouchous ? Quel genre ?
  • Quelle est votre fonctionnalité favorite dans IE ?
  • Comment voulez-vous votre café ?

[⬆]

Contributeurs :

Ce document a démarré avec la collaboration de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed et @iansym.

Il a depuis reçu des contributions de plus de 100 développeurs.

\ No newline at end of file diff --git a/_site/translations/german/index.html b/_site/translations/german/index.html index 541603a3e..174ef5aca 100644 --- a/_site/translations/german/index.html +++ b/_site/translations/german/index.html @@ -1 +1 @@ -Fragen im Bewerbungsgespräch für Frontend-Entwickler ★ Front-end Job Interview Questions

Fragen im Bewerbungsgespräch für Frontend-Entwickler

Fragen im Bewerbungsgespräch für Frontend-Entwickler

@version 2.0.0

Dieses Repo enthält einige Fragen, die zur Einschätzung von geeigneten Frontend-Entwicklern innerhalb eines Bewerbungsgesprächs verwendet werden können. Es ist auf keinen Fall ratsam, einem Bewerber jede einzelne Frage zu stellen (das würde Stunden dauern). Es mag hilfreich sein, eine handvoll passender Fragen aus dieser Liste auszuwählen, um die Fähigkeiten abzuklopfen, die für den Job wichtig sind.

Rebecca Murphey’s Baseline For Front-End Developers (Englisch) ist ebenso eine nützliche Quelle zur Vorbereitung auf ein Bewerbungsgespräch.

Anmerkung: Beachte bitte, dass viele dieser Fragen so offen gehalten sind, dass sie interessante Diskussionen auslösen können, in deren Verlauf du viel mehr über die Fähigkeiten eines Bewerbers erfahren kannst, als in kurzen, direkten Antworten.

Initiatoren und Mitwirkende

Ein Großteil der Fragen wurden aus einer Diskussion bei oksoclap entnommen, die von Paul Irish (@paul_irish) angestoßen wurde, und an der später folgende Personen beteiligt waren:

Allgemeine Fragen:

  • Welche Versionsverwaltung hast du bisher verwendet (Git, SVN, etc.)?
  • Wie sieht deine bevorzugte Entwicklungsumgebung aus? (Betriebssystem, Editor, Browser, Werkzeuge, etc.)
  • Beschreibe bitte deinen Arbeitsablauf, wenn du eine Website entwickelst.
  • Kannst du den Unterschied zwischen Progressive Enhancement und Graceful Degradation beschreiben?
    • Extra-Punkte für die Beschreibung von Feature Detection
  • Beschreibe bitte, was »Semantisches HTML« bedeutet.
  • In welchem Browser entwickelst du vornehmlich und welche Entwicklerwerkzeuge verwendest du dabei?
  • Wie würdest du die Ressourcen einer Website im Hinblick auf Performance optimieren?
    • Verschiedene Lösungsansätze könnten sein:
      • Zusammenfassen von Dateien
      • Minifizierung
      • Nutzung von CDN
      • Caching
      • etc.
  • Warum ist es sinnvoll, Ressourcen über mehr als eine Domain abzufragen?
    • Wie viele Quellen kann ein Browser von einer Domain parallel empfangen?
  • Benenne drei Umstände, die das Laden einer Seite verlangsamen können (hinsichtlich der Wahrnehmung oder der tatsächlichen Ladezeit).
  • Wie verhältst du dich, wenn du in ein neues Projekt kommst, in dem Tabs verwendet werden und du aber Leerzeichen verwendest?
    • Vorschlagen, dass für das Projekt sowas wie EditorConfig (http://editorconfig.org) verwendet werden soll.
    • Sich an die Vorgaben des Projekts halten.
    • issue :retab! command
  • Entwickle eine simple Slideshow-Seite.
    • Bonuspunkte, wenn sie kein JS verwendet.
  • Welche Werkzeuge nutzt du zum Testen der Performance deines Codes?
  • Wenn du eine Technologie in diesem Jahr meistern könntest, welche wäre das?
  • Erkläre die Bedeutung von Standards und Standardisierungsorganisationen?
  • Was ist FOUC? Wie vermeidest du FOUC?

HTML-spezifische Fragen:

  • Was tut ein doctype und wie viele von ihnen kannst du benennen?
  • Was ist der Unterschied zwischen Standards-Modus und Quirks-Modus?
  • Welche Einschränkungen gibt es beim Ausliefern von XHTML-Seiten?
    • Gibt es Probleme, wenn Seiten als application/xhtml+xml ausgeliefert werden?
  • Wie lieferst du eine Seite mit Inhalten in verschiedenen Sprachen aus?
    • Vor welchen Dingen solltest du dich hüten, wenn du mehrsprachige Websites designst oder entwickelst?
  • Darf man XHTML-Syntax in HTML5 verwenden?
  • Wie verwendet man XML in HTML5?
  • Wofür sind data--Attribute nützlich?
  • Was sind die Inhaltsmodelle in HTML4 und sind sie unterschiedlich in HTML5?
  • Stelle dir HTML5 als eine offene Internetplattform vor. Was sind die Basiskomponenten von HTML5?
  • Beschreibe die Unterschiede zwischen Cookies, sessionStorage und localStorage.

JS-spezifische Fragen:

  • Erkläre Event Delegation
  • Erkläre, wie this in JavaScript funktioniert.
  • Erkläre, wie prototypische Vererbung funktioniert.
  • Wie gehst du vor beim Testen von JavaScript?
  • AMD vs. CommonJS?
  • Welche JavaScript-Bibliotheken hast du bisher benutzt?
  • Hast du jemals den Sourcecode von Bibliotheken/Frameworks angeschaut, die du benutzt?
  • Was ist ein hashtable?
  • Was sind undefined und undeclared Variablen?
  • Was ist eine Closure und wie/warum würdest du eine verwenden?
    • Dein bevorzugtes Pattern, um sie zu generieren? Argyle (Nur geeignet für IIFEs).
  • Was ist ein typischer Anwendungsfall für anonymous functions?
  • Erkläre das »JavaScript Module Pattern« und wann du es verwenden würdest.
    • Bonuspunkte, wenn sauberes Namespacing genannt wird.
    • Und wenn deine Module ohne Namespace sind?
  • Wie organisierst du deinen Code? (Module Pattern, klassische Vererbung?)
  • Was ist der Unterschied zwischen host objects und native objects?
  • Unterschied zwischen:
function Person(){} var person = Person() var person = new Person()
  • Worin unterscheiden sich .call und .apply?
  • Erkläre Function.prototype.bind.
  • Wann optimierst du deinen Code?
  • Kannst du erklären, wie Vererbung in JavaScript funktioniert?
  • Wann verwendet man document.write()?
    • Die meisten Werbebanner verwenden noch document.write(), obwohl es verpönt ist.
  • Was sind die Unterschiede zwischen Feature Detection, Feature Inference und Verwendung des UA-Strings?
  • Erkläre AJAX so detailiert wie möglich.
  • Erkläre wie JSONP funktioniert (und warum es nicht wirklich AJAX ist).
  • Hast du schonmal JavaScript-Templating verwendet?
    • Wenn ja, welche Bibliotheken hast du verwendet (Mustache, Handlebars, etc.)?
  • Erkläre »Hoisting«.
  • Erkläre Event Bubbling.
  • Was ist der Unterschied zwischen einem »Attribut« und einer »Property«?
  • Warum ist es nicht sinnvoll, JavaScript-eigene Objekte zu erweitern?
  • Warum ist es sinnvoll, Kernfunktionen zu erweitern?
  • Unterschied zwischen document load event und document ready event?
  • Was ist der Unterschied zwischen == und ===?
  • Erkläre, wie du einen Query-String-Parameter aus der URL des Browserfensters abfragst.
  • Erkläre die same-origin policy und in welcher Form sie JavaScript betrifft.
  • Erkläre Vererbungsmuster in JavaScript.
  • Bringe dies zum Laufen:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschreibe eine Strategie für Memoization (Vermeidung von Berechnungsschleifen) in JavaScript.
  • Warum heißt es »Ternary expression« und worauf deutet das Wort »Ternary« hin?
  • Was ist die Stelligkeit (Arity) einer Funktion?
  • Was ist "use strict";? Was sind die Vor- und Nachteile bei der Verwendung?

JS-Codebeispiele:

~~3.14

Frage: Welcher Wert wird zurückgegeben?
Antwort: 3

"Draußen nur Kännchen".split("").reverse().join("");

Frage: Welcher Wert wird zurückgegeben?
Antwort: "nehcnnäK run neßuarD"

( window.foo || ( window.foo = "bar" ) );

Frage: Welchen Wert hat window.foo?
Antwort: "bar"
nur wenn window.foo false war, andernfalls behält es seinen Wert.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Frage: Was ist das Ergebnis der beiden alerts oben?
Antwort: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Frage: Welchen Wert hat foo.length?
**Antwort: 2

var foo = {};
foo.bar = 'hello';

Frage: Welchen Wert hat foo.length?
**Antwort: undefined

jQuery-spezifische Fragen:

  • Erkläre »Chaining«.
  • Erkläre »Deferreds«.
  • Was sind ein paar jQuery-spezifische Optimierungen, die man vornehmen kann?
  • Was macht .end()?
  • Wie und warum würdest du einen Namespace für einen gebundenen Event handler verwenden?
  • Benenne 4 verschiedene Werte, die man einer jQuery-Methode übergeben kann.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Was ist die effects (oder fx) queue?
  • Was ist der Unterschied zwischen .get(), [] und .eq()?
  • Was ist der Unterschied zwischen .bind(), .live(), und .delegate()?
  • Was ist der Unterschied zwischen $ und $.fn? Was ist überhaupt $.fn?
  • Optimiere diesen Selektor:
$(".foo div#bar:eq(0)")
  • Unterschied zwischen ‘delegate()’ und ‘live()’?

CSS-spezifische Fragen:

  • Erkläre was ein »Reset«-CSS macht und wofür es nützlich ist.
  • Beschreibe Floats und wie sie funktionieren.
  • Was sind die verschiedenen Clear-Methoden und welche ist geeignet für welchen Kontext?
  • Erkläre CSS-Sprites und wie du sie auf einer Seite oder Website implementieren würdest.
  • Was sind deine bevorzugten Image-Replacement-Techniken und wann benutzt du welche davon?
  • CSS-Hacks, per conditional eingebundene .css-Ressourcen oder… was sonst?
  • Wie lieferst du Seiten für funktional beschränkte Browser aus?
    • Welche Techniken/Prozesse verwendest du dafür?
  • Was sind die verschiedenen Möglichkeiten, um Inhalte visuell auszublenden (und für Screenreader zugänglich zu machen)?
  • Hast du schonmal ein Grid-System verwendet, und wenn ja, welches bevorzugst du?
  • Hast du media queries oder mobile-spezifische Layouts/CSS verwendet/entwickelt?
  • Bist du mit dem Styling von SVG vertraut?
  • Wie optimierst du Websites für den Druck?
  • Was sind ein paar Kniffe, um effizientes CSS zu schreiben?
  • Verwendest du CSS-Präprozessoren (Sass, Compass, Stylus, LESS)?
    • Wenn ja, beschreibe bitte, was du an den verwendeten magst oder nicht magst.
  • Wie würdest du ein Webdesign umsetzen, das Nicht-Standard-Schriften verwendet?
    • Webfonts (Dienste wie Google Webfonts, Typekit, etc.)
  • Erkläre wie ein Browser entscheidet, welche Elemente von einem CSS-Selektor erfasst werden.

Optionale Spaßfragen:

  • Was ist das großartigste, was du je entwickelt hast, und worauf bist du am meisten stolz?
  • Kennst du das Zeichen der HTML5-Gang?
  • Bist du gerade oder warst du jemals auf einem Boot?
  • Was sind die besten Eigenschaften der Entwicklerwerkzeuge, die du benutzt?
  • Hast du irgendwelche Freizeitprojekte? Welcher Art?
  • Erkläre die Bedeutung von »cornify«.
  • Schreibe auf einen Zettel die Buchstaben A B C D E von oben nach unten. Jetzt sortiere diese in umgekehrter Abfolge, ohne eine Zeile Code zu schreiben.
    • Warte einen Moment und schaue, ob sie den Zettel umdrehen.
  • Pirat oder Ninja?
    • Bonuspunkt, wenn es eine Kombi ist und begründet werden kann (+2 für Zombieaffenpiratenninja).
  • Wenn nicht Web-Entwicklung, was würdest du dann tun?
  • Wo ist Carmen Sandiego?
    • Tipp: Die Antwort ist immer falsch.
  • Was ist deine Lieblingsfunktion des Internet Explorers?
  • Ergänze diesen Satz: Brendan Eich und Doug Crockford sind die __________ von JavaScript.
  • jQuery: Eine großartige Bibliothek oder die großartigste Bibliothek von allen? Diskutiere.
  • http://www.w3schools.com/ oder http://w3fools.com/
\ No newline at end of file +Fragen im Bewerbungsgespräch für Frontend-Entwickler ★ Front-end Job Interview Questions

Fragen im Bewerbungsgespräch für Frontend-Entwickler

Fragen im Bewerbungsgespräch für Frontend-Entwickler

@version 2.0.0

Dieses Repo enthält einige Fragen, die zur Einschätzung von geeigneten Frontend-Entwicklern innerhalb eines Bewerbungsgesprächs verwendet werden können. Es ist auf keinen Fall ratsam, einem Bewerber jede einzelne Frage zu stellen (das würde Stunden dauern). Es mag hilfreich sein, eine handvoll passender Fragen aus dieser Liste auszuwählen, um die Fähigkeiten abzuklopfen, die für den Job wichtig sind.

Rebecca Murphey’s Baseline For Front-End Developers (Englisch) ist ebenso eine nützliche Quelle zur Vorbereitung auf ein Bewerbungsgespräch.

Anmerkung: Beachte bitte, dass viele dieser Fragen so offen gehalten sind, dass sie interessante Diskussionen auslösen können, in deren Verlauf du viel mehr über die Fähigkeiten eines Bewerbers erfahren kannst, als in kurzen, direkten Antworten.

Initiatoren und Mitwirkende

Ein Großteil der Fragen wurden aus einer Diskussion bei oksoclap entnommen, die von Paul Irish (@paul_irish) angestoßen wurde, und an der später folgende Personen beteiligt waren:

Allgemeine Fragen:

  • Welche Versionsverwaltung hast du bisher verwendet (Git, SVN, etc.)?
  • Wie sieht deine bevorzugte Entwicklungsumgebung aus? (Betriebssystem, Editor, Browser, Werkzeuge, etc.)
  • Beschreibe bitte deinen Arbeitsablauf, wenn du eine Website entwickelst.
  • Kannst du den Unterschied zwischen Progressive Enhancement und Graceful Degradation beschreiben?
    • Extra-Punkte für die Beschreibung von Feature Detection
  • Beschreibe bitte, was »Semantisches HTML« bedeutet.
  • In welchem Browser entwickelst du vornehmlich und welche Entwicklerwerkzeuge verwendest du dabei?
  • Wie würdest du die Ressourcen einer Website im Hinblick auf Performance optimieren?
    • Verschiedene Lösungsansätze könnten sein:
      • Zusammenfassen von Dateien
      • Minifizierung
      • Nutzung von CDN
      • Caching
      • etc.
  • Warum ist es sinnvoll, Ressourcen über mehr als eine Domain abzufragen?
    • Wie viele Quellen kann ein Browser von einer Domain parallel empfangen?
  • Benenne drei Umstände, die das Laden einer Seite verlangsamen können (hinsichtlich der Wahrnehmung oder der tatsächlichen Ladezeit).
  • Wie verhältst du dich, wenn du in ein neues Projekt kommst, in dem Tabs verwendet werden und du aber Leerzeichen verwendest?
    • Vorschlagen, dass für das Projekt sowas wie EditorConfig (http://editorconfig.org) verwendet werden soll.
    • Sich an die Vorgaben des Projekts halten.
    • issue :retab! command
  • Entwickle eine simple Slideshow-Seite.
    • Bonuspunkte, wenn sie kein JS verwendet.
  • Welche Werkzeuge nutzt du zum Testen der Performance deines Codes?
  • Wenn du eine Technologie in diesem Jahr meistern könntest, welche wäre das?
  • Erkläre die Bedeutung von Standards und Standardisierungsorganisationen?
  • Was ist FOUC? Wie vermeidest du FOUC?

HTML-spezifische Fragen:

  • Was tut ein doctype und wie viele von ihnen kannst du benennen?
  • Was ist der Unterschied zwischen Standards-Modus und Quirks-Modus?
  • Welche Einschränkungen gibt es beim Ausliefern von XHTML-Seiten?
    • Gibt es Probleme, wenn Seiten als application/xhtml+xml ausgeliefert werden?
  • Wie lieferst du eine Seite mit Inhalten in verschiedenen Sprachen aus?
    • Vor welchen Dingen solltest du dich hüten, wenn du mehrsprachige Websites designst oder entwickelst?
  • Darf man XHTML-Syntax in HTML5 verwenden?
  • Wie verwendet man XML in HTML5?
  • Wofür sind data--Attribute nützlich?
  • Was sind die Inhaltsmodelle in HTML4 und sind sie unterschiedlich in HTML5?
  • Stelle dir HTML5 als eine offene Internetplattform vor. Was sind die Basiskomponenten von HTML5?
  • Beschreibe die Unterschiede zwischen Cookies, sessionStorage und localStorage.

JS-spezifische Fragen:

  • Erkläre Event Delegation
  • Erkläre, wie this in JavaScript funktioniert.
  • Erkläre, wie prototypische Vererbung funktioniert.
  • Wie gehst du vor beim Testen von JavaScript?
  • AMD vs. CommonJS?
  • Welche JavaScript-Bibliotheken hast du bisher benutzt?
  • Hast du jemals den Sourcecode von Bibliotheken/Frameworks angeschaut, die du benutzt?
  • Was ist ein hashtable?
  • Was sind undefined und undeclared Variablen?
  • Was ist eine Closure und wie/warum würdest du eine verwenden?
    • Dein bevorzugtes Pattern, um sie zu generieren? Argyle (Nur geeignet für IIFEs).
  • Was ist ein typischer Anwendungsfall für anonymous functions?
  • Erkläre das »JavaScript Module Pattern« und wann du es verwenden würdest.
    • Bonuspunkte, wenn sauberes Namespacing genannt wird.
    • Und wenn deine Module ohne Namespace sind?
  • Wie organisierst du deinen Code? (Module Pattern, klassische Vererbung?)
  • Was ist der Unterschied zwischen host objects und native objects?
  • Unterschied zwischen:
function Person(){} var person = Person() var person = new Person()
  • Worin unterscheiden sich .call und .apply?
  • Erkläre Function.prototype.bind.
  • Wann optimierst du deinen Code?
  • Kannst du erklären, wie Vererbung in JavaScript funktioniert?
  • Wann verwendet man document.write()?
    • Die meisten Werbebanner verwenden noch document.write(), obwohl es verpönt ist.
  • Was sind die Unterschiede zwischen Feature Detection, Feature Inference und Verwendung des UA-Strings?
  • Erkläre AJAX so detailiert wie möglich.
  • Erkläre wie JSONP funktioniert (und warum es nicht wirklich AJAX ist).
  • Hast du schonmal JavaScript-Templating verwendet?
    • Wenn ja, welche Bibliotheken hast du verwendet (Mustache, Handlebars, etc.)?
  • Erkläre »Hoisting«.
  • Erkläre Event Bubbling.
  • Was ist der Unterschied zwischen einem »Attribut« und einer »Property«?
  • Warum ist es nicht sinnvoll, JavaScript-eigene Objekte zu erweitern?
  • Warum ist es sinnvoll, Kernfunktionen zu erweitern?
  • Unterschied zwischen document load event und document ready event?
  • Was ist der Unterschied zwischen == und ===?
  • Erkläre, wie du einen Query-String-Parameter aus der URL des Browserfensters abfragst.
  • Erkläre die same-origin policy und in welcher Form sie JavaScript betrifft.
  • Erkläre Vererbungsmuster in JavaScript.
  • Bringe dies zum Laufen:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschreibe eine Strategie für Memoization (Vermeidung von Berechnungsschleifen) in JavaScript.
  • Warum heißt es »Ternary expression« und worauf deutet das Wort »Ternary« hin?
  • Was ist die Stelligkeit (Arity) einer Funktion?
  • Was ist "use strict";? Was sind die Vor- und Nachteile bei der Verwendung?

JS-Codebeispiele:

~~3.14

Frage: Welcher Wert wird zurückgegeben?
Antwort: 3

"Draußen nur Kännchen".split("").reverse().join("");

Frage: Welcher Wert wird zurückgegeben?
Antwort: "nehcnnäK run neßuarD"

( window.foo || ( window.foo = "bar" ) );

Frage: Welchen Wert hat window.foo?
Antwort: "bar"
nur wenn window.foo false war, andernfalls behält es seinen Wert.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Frage: Was ist das Ergebnis der beiden alerts oben?
Antwort: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Frage: Welchen Wert hat foo.length?
**Antwort: 2

var foo = {};
foo.bar = 'hello';

Frage: Welchen Wert hat foo.length?
**Antwort: undefined

jQuery-spezifische Fragen:

  • Erkläre »Chaining«.
  • Erkläre »Deferreds«.
  • Was sind ein paar jQuery-spezifische Optimierungen, die man vornehmen kann?
  • Was macht .end()?
  • Wie und warum würdest du einen Namespace für einen gebundenen Event handler verwenden?
  • Benenne 4 verschiedene Werte, die man einer jQuery-Methode übergeben kann.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Was ist die effects (oder fx) queue?
  • Was ist der Unterschied zwischen .get(), [] und .eq()?
  • Was ist der Unterschied zwischen .bind(), .live(), und .delegate()?
  • Was ist der Unterschied zwischen $ und $.fn? Was ist überhaupt $.fn?
  • Optimiere diesen Selektor:
$(".foo div#bar:eq(0)")
  • Unterschied zwischen ‘delegate()’ und ‘live()’?

CSS-spezifische Fragen:

  • Erkläre was ein »Reset«-CSS macht und wofür es nützlich ist.
  • Beschreibe Floats und wie sie funktionieren.
  • Was sind die verschiedenen Clear-Methoden und welche ist geeignet für welchen Kontext?
  • Erkläre CSS-Sprites und wie du sie auf einer Seite oder Website implementieren würdest.
  • Was sind deine bevorzugten Image-Replacement-Techniken und wann benutzt du welche davon?
  • CSS-Hacks, per conditional eingebundene .css-Ressourcen oder… was sonst?
  • Wie lieferst du Seiten für funktional beschränkte Browser aus?
    • Welche Techniken/Prozesse verwendest du dafür?
  • Was sind die verschiedenen Möglichkeiten, um Inhalte visuell auszublenden (und für Screenreader zugänglich zu machen)?
  • Hast du schonmal ein Grid-System verwendet, und wenn ja, welches bevorzugst du?
  • Hast du media queries oder mobile-spezifische Layouts/CSS verwendet/entwickelt?
  • Bist du mit dem Styling von SVG vertraut?
  • Wie optimierst du Websites für den Druck?
  • Was sind ein paar Kniffe, um effizientes CSS zu schreiben?
  • Verwendest du CSS-Präprozessoren (Sass, Compass, Stylus, LESS)?
    • Wenn ja, beschreibe bitte, was du an den verwendeten magst oder nicht magst.
  • Wie würdest du ein Webdesign umsetzen, das Nicht-Standard-Schriften verwendet?
    • Webfonts (Dienste wie Google Webfonts, Typekit, etc.)
  • Erkläre wie ein Browser entscheidet, welche Elemente von einem CSS-Selektor erfasst werden.

Optionale Spaßfragen:

  • Was ist das großartigste, was du je entwickelt hast, und worauf bist du am meisten stolz?
  • Kennst du das Zeichen der HTML5-Gang?
  • Bist du gerade oder warst du jemals auf einem Boot?
  • Was sind die besten Eigenschaften der Entwicklerwerkzeuge, die du benutzt?
  • Hast du irgendwelche Freizeitprojekte? Welcher Art?
  • Erkläre die Bedeutung von »cornify«.
  • Schreibe auf einen Zettel die Buchstaben A B C D E von oben nach unten. Jetzt sortiere diese in umgekehrter Abfolge, ohne eine Zeile Code zu schreiben.
    • Warte einen Moment und schaue, ob sie den Zettel umdrehen.
  • Pirat oder Ninja?
    • Bonuspunkt, wenn es eine Kombi ist und begründet werden kann (+2 für Zombieaffenpiratenninja).
  • Wenn nicht Web-Entwicklung, was würdest du dann tun?
  • Wo ist Carmen Sandiego?
    • Tipp: Die Antwort ist immer falsch.
  • Was ist deine Lieblingsfunktion des Internet Explorers?
  • Ergänze diesen Satz: Brendan Eich und Doug Crockford sind die __________ von JavaScript.
  • jQuery: Eine großartige Bibliothek oder die großartigste Bibliothek von allen? Diskutiere.
  • http://www.w3schools.com/ oder http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/greek/index.html b/_site/translations/greek/index.html index ba94cc48f..bd178cd43 100644 --- a/_site/translations/greek/index.html +++ b/_site/translations/greek/index.html @@ -1 +1 @@ -Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers ★ Front-end Job Interview Questions

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Αυτό το αποθετήριο (repo) περιέχει μια σειρά από front-end ερωτήσεις συνέντευξης που μπορούν να χρησιμοποιηθούν κατά την εξέταση πιθανών υποψηφίων. Σε καμία περίπτωση δεν προτείνεται να θέσετε όλα τα ερωτήματα που βρίσκονται εδώ στον ίδιο υποψήφιο (αυτό θα έπαιρνε ώρες). Επιλέγοντας όμως μερικές από αυτές, θα μπορέσετε να επιλέξετε τον υποψήφιο με τις κατάλληλες για σας δεξιότητες.

Επίσης, πριν προχωρήσετε στις συνεντεύξεις, θα ήταν εξαιρετικά χρήσιμο να διαβάσετε το άρθρο της Rebecca Murphey “Baseline For Front-End Developers”.

Σημείωση: Λάβετε υπόψη ότι πολλές από αυτές τις ερωτήσεις είναι ελευθέρου θέματος και μπορεί να οδηγήσουν σε ενδιαφέρουσες συζητήσεις που θα σας πουν πολλά περισσότερα πράγματα σχετικά με τις δυνατότητες του υποψήφιου από μια απλή απάντηση.

Περιεχόμενα

  1. Αρχικοί Συντελεστές
  2. Γενικές Ερωτήσεις
  3. HTML Ερωτήσεις
  4. CSS Ερωτήσεις
  5. JS Ερωτήσεις
  6. jQuery Ερωτήσεις
  7. Coding Ερωτήσεις
  8. Διασκεδαστικές Ερωτήσεις
  9. Άλλες Εξαιρετικές Πηγές

[⬆] Αρχικοί Συντελεστές:

Οι περισσότερες ερωτήσεις προέκυψαν από ένα oksoclap thread που δημιουργήθηκε αρχικά από τον Paul Irish (@paul_irish) και στο οποίο συνείσφεραν τα παρακάτω άτομα:

[⬆] Γενικές Ερωτήσεις:

  • Τι μάθατε χτές/αυτή την εβδομάδα;
  • Τι σε ενθουσιάζει ή σας ενδιαφέρει σχετικά με τον προγραμματισμό;
  • Τι σκέφτεστε σχετικά με το UI, Ασφάλεια, Απόδοση, SEO, Συντηρησιμότητα και Τεχνολογία, ενώ υλοποιείτε μια web εφαρμογή ή ιστοσελίδα;
  • Μιλήστε σχετικά με το προτιμώμενο περιβάλλον ανάπτυξής σας. (OS, Editor, Φυλλομετρητές, εργαλεία κ.λπ.)
  • Με ποια έκδοση version control συστήματος είστε εξοικειωμένος;
  • Μπορείτε να περιγράψετε τη ροή της εργασίας σας κατά την διάρκεια δημιουργίας μιας ιστοσελίδας;
  • Μπορείτε να περιγράψετε τη διαφορά μεταξύ progressive enhancement και graceful degradation;
    • Επιπλέον βαθμοί για την περιγραφή feature detection
  • Εξηγήστε τι σημαίνει “Semantic HTML”.
  • Πώς μπορείτε να κάνετε optimize τα στοιχεία/πόρους των ιστοσελίδων σας;
    • Ψάχνοντας για μια σειρά από λύσεις που μπορεί να περιλαμβάνουν:
      • File concatenation
      • File minification
      • CDN Hosted
      • Caching
      • etc.
  • Γιατί είναι καλύτερα να σερβίρετε τα στοιχεία της ιστοσελίδας σας από πολλά domains;
    • Πόσα resources τη φορά μπορεί να κατεβάσει ένας φυλλομετρητής από κάθε domain;
  • Ονομάστε 3 τρόπους μείωσης του page load. (θεωρητικός ή πραγματικός χρόνος φόρτωσης)
  • Αν μπείτε σε κάποιο έργο στο οποίο χρησιμοποιούν tabs και εσείς έχετε συνηθίσει spaces, τι θα κάνατε;
    • Προτείνετε να χρησιμοποιηθεί στο έργο κάτι σαν το EditorConfig (http://editorconfig.org)
    • Συμμορφωθείτε με τις συμβάσεις (μείνετε συνεπής)
    • issue :retab! command
  • Δημιουργήστε μια απλή slideshow σελίδα
    • Επιπλέον βαθμοί αν δεν χρησιμοποιηθεί καθόλου JS.
  • Ποια εργαλεία χρησιμοποιείτε για να ελέγξετε την απόδοση του κώδικά σας;
    • Profiler, JSPerf, Dromaeo
  • Αν θα μπορούσατε να κατέχετε μια τεχνολογία φέτος, ποια θα ήταν αυτή;
  • Ποιες είναι οι διαφορές μεταξύ Long-Polling, WebSockets και SSE;
  • Εξηγήστε τη σημασία των standards και των οργανισμών τους.
  • Τι είναι FOUC; Πώς μπορείτε να αποφύγετε το FOUC;
  • Περιγράψτε όσο καλύτερα γίνεται τη διαδικασία από τη στιγμή που θα πληκτρολογείτε το URL ενός ιστότοπου μέχρι το τελείωμα του loading στην οθόνη σας.

[⬆] HTML Ερωτήσεις:

  • Τι κάνει το doctype?
  • Ποια είναι η διαφορά μεταξύ standards mode και quirks mode;
  • Ποιοι είναι περιορισμοί όταν “σερβίρετε” XHTML σελίδες;
    • Υπάρχουν προβλήματα όταν “σερβίρετε” σελίδες ως application/xhtml+xml;
  • Πώς σερβίρετε μια σελίδα με περιεχόμενο σε πολλές γλώσσες;
    • Σε τι είδους πράγματα πρέπει να είστε προσεκτικοί κατά τον σχεδιασμό ή την ανάπτυξη για πολυγλωσσικά sites;
  • Σε τι είναι χρήσιμα τα data- attributes;
  • Εξετάστε την HTML5 ως μια ανοιχτή web πλατφόρμα. Ποια είναι τα δομικά στοιχεία της;
  • Περιγράψτε τη διαφορά μεταξύ των cookies, sessionStorage και localStorage.
  • Μπορείτε να εξηγήσετε τη διαφορά μεταξύ GET και POST;

[⬆] CSS Ερωτήσεις:

  • Περιγράψτε τι κάνει ένα “reset” CSS αρχείο και γιατί είναι χρήσιμο.
  • Περιγράψτε τι είναι τα “Floats” και πώς λειτουργούν.
  • Περιγράψτε το z-index και πως λειτουργεί ο τρόπο στοίβαξης.
  • Ποιες είναι οι διάφορες τεχνικές “clearing” και ποια είναι η κατάλληλη για κάθε περίπτωση;
  • Εξηγήστε τί είναι τα CSS sprites, και πώς θα τα υλοποιούσατε σε μια σελίδα ή site.
  • Ποιες είναι οι αγαπημένες σας image replacement τεχνικές και ποιες χρησιμοποιείτε;
  • CSS property hacks, conditionally included .css αρχεία, ή… κάτι άλλο;
  • Πώς σερβίρεται τις σελίδες σας για feature-constrained browsers;
    • Ποιες τεχνικές/εργασίες χρησιμοποιείτε;
  • Ποιοι είναι οι διαφορετικοί τρόποι για αποκρύψετε οπτικά (visually hide) περιεχόμενο (και να είναι διαθέσιμo μόνο για screen readers);
  • Έχετε χρησιμοποιήσει ποτέ κάποιο grid system, και αν ναι, ποιο προτιμάτε;
  • Έχετε χρησιμοποιήσει ή υλοποιήσει media queries ή mobile specific layouts/CSS;
  • Κάποια εξοικείωση σε styling SVG;
  • Πώς θα βελτιστοποιήσετε τις ιστοσελίδες σας για εκτύπωση;
  • Ποια είναι μερικά από τα “gotchas” για συγγραφή αποτελεσματικής CSS;
  • Ποια είναι τα πλεονεκτήματα/μειονεκτήματα κατά την χρήση CSS preprocessors; (SASS, Compass, Stylus, LESS)
    • Εάν έχετε χρησιμοποιήσει CSS preprocessors, περιγράψτε τι σας αρέσει και τι όχι.
  • Πώς θα υλοποιούσατε ένα web design δείγμα που χρησιμοποιεί μη-standard γραμματοσειρές;
    • Webfonts (υπηρεσίες γραμματοσειρών όπως: Google Webfonts, Typekit etc.)
  • Εξηγήστε πώς ένας browser καθορίζει ποια στοιχεία ταιριάζουν με έναν CSS selector;
  • Εξηγήστε το “box model” και πως θα πείτε στον browser μέσω CSS να ρεντάρει (render) το layout σε διαφορετικά box models.
  • Τι κάνει το * { box-sizing: border-box; }? Ποια είναι τα πλεονεκτήματά του;
  • Αναφέρετε όσες τιμές (values) μπορείτε να θυμηθείτε για το display property.
  • Ποια είναι η διαφορά μεταξύ inline και inline-block;
  • Ποια είναι η διαφορά μεταξύ relative, fixed, absolute και statically τοποθετυμένου element;
  • Τι υπάρχοντα CSS frameworks έχετε χρησιμοποιήσει τοπικά, ή σε παραγωγή; (Bootstrap, PureCSS, Foundation κτλ.)
    • Αν ναι, ποια από αυτά; Αν μπορούσατε, πώς θα τα αλλάζατε/βελτιώνατε;
  • Έχετε παίξει με τις νέες CSS Flexbox ή Grid προδιαγραφές;
    • Αν ναι, τι γνώμη έχετε για την επίδοση τους?

[⬆] JS Ερωτήσεις:

  • Εξηγήστε το “event delegation”
  • Εξηγήστε πως λειτουργεί το this στην JavaScript
  • Εξηγήστε πως λειτουργεί η prototypal κληρονομικότητα
  • Πως κάνετε τεστ στη JavaScript;
  • AMD vs. CommonJS;
  • Τι είναι το hashtable;
  • Εξηγήστε γιατί το παρακάτω δεν λειτουργεί σαν IIFE: function foo(){ }();.
    • Τι χρειάζεται να αλάξει έτσι ώστε να λειτουργήσει σαν IIFE;
  • Ποια είναι η διαφορά ανάμεσα σε μια μεταβλητή που είναι: null, undefined και undeclared;
    • Πώς θα ελέγξετε οποιαδήποτε από τις παραπάνω καταστάσεις;
  • Τί είναι closure, και πως/γιατί να το χρησιμοποιήσετε;
  • Ποια είναι η πιο χαρακτηριστική χρήση των anonymous functions;
  • Εξηγήστε την “JavaScript module pattern” και πότε θα την χρησιμοποιούσατε.
    • Επιπλέον βαθμοί για την αναφορά καθαρού namespacing.
    • Τι γίνεται αν τα modules είναι namespace-less;
  • Πώς οργανώνετε τον κωδικό σας; (module pattern, classical inheritance;)
  • Ποια είναι η διαφορά μεταξύ host objects και native objects;
  • Διαφορά μεταξύ: function Person(){}, var person = Person(), και var person = new Person();
  • Ποια είναι η διαφορά μεταξύ .call and .apply;
  • Εξηγήστε τι είναι Function.prototype.bind;
  • Πότε βελτιστοποιείτε τον κώδικα σας;
  • Μπορείτε να μας εξηγήσετε πώς λειτουργεί η κληρονομικότητα (inheritance) στην JavaScript;
  • Πότε θα χρησιμοποιήσετε document.write();
    • Οι περισσότερες διαφημίσεις που δημιουργούνται χρησιμοποιούν ακόμα document.write () αν και η χρήση του είναι παρακινδυνευμένη
  • Ποια είναι η διαφορά μεταξύ feature detection, feature inference, και χρησιμοποιώντας το UA string
  • Εξηγήστε το AJAX με όσες περισσότερες λεπτομέρειες μπορείτε
  • Εξηγήστε πώς λειτουργεί το JSONP (και πως δεν είναι στην πραγματικότητα AJAX)
  • Έχετε χρησιμοποιήσει ποτέ JavaScript templating?
    • Αν ναι, ποιες libraries έχετε χρησιμοποιήσει; (Mustache.js, Handlebars κτλ.)
  • Εξηγήστε τι είναι το “hoisting”.
  • Περιγράψτε το event bubbling.
  • Ποια είναι η διαφορά μεταξύ “attribute” και “property”;
  • Γιατί η επέκταση (extending) των built in JavaScript objects δεν είναι καλή ιδέα;
  • Γιατί η επέκταση (extending) των built ins είναι καλή ιδέα;
  • Ποια είναι η διαφορά μεταξύ document load event και document ready event;
  • Ποια είναι η διαφορά μεταξύ == and ===;
  • Εξηγήστε πώς θα πάρετε μια παράμετρο query string από το URL του παράθυρου (window) του browser.
  • Εξηγήστε την πολιτική same-origin σε σχέση με την JavaScript.
  • Περιγράψτε τις inheritance patterns της JavaScript.
  • Κάνε το παρακάτω να δουλέψει:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Περιγράψτε μια στρατηγική για memoization (αποφεύγοντας τον υπολογισμό επανάληψης) σε JavaScript.
  • Γιατί ονομάζεται Ternary expression, τι υποδεικνύει η λέξη “Ternary”;
  • Τι είναι η arity μιας συνάρτησης (function);
  • Τι σημαίνει "use strict";; Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα στην χρήση του;

[⬆] jQuery Ερωτήσεις:

  • Εξηγήστε το “chaining”.
  • Εξηγήστε το “deferreds”.
  • Ποιές jQuery βελτιστοποιήσεις μπορείτε να υλοποιήσετε;
  • Τι κάνει το .end();
  • Πώς, και γιατί, να χρησιμοποιήσεις namespace σε έναν bound event handler;
  • Ονόμασε 4 διαφορετικές τιμές που μπορείς να περάσεις στην jQuery method.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object κτλ.
  • Τι είναι η effects (ή fx) queue;
  • Ποια είναι η διαφορά μεταξύ .get(), [], και .eq();
  • Ποια είναι η διαφορά μεταξύ .bind(), .live(), και .delegate()?
  • Ποια είναι η διαφορά μεταξύ $ and $.fn; Η απλά τι είναι $.fn.
  • Βελτιστοποιήστε τον παρακάτω selector:
$(".foo div#bar:eq(0)")

[⬆] Code Ερωτήσεις:

modulo(12, 5) // 2

Ερώτηση: Υλοποιήστε μια modulo function που ικανοποιεί το παραπάνω

"i'm a lasagna hog".split("").reverse().join("");

Ερώτηση: Τι τιμή επιστρέφει από την παραπάνω δήλωση;

Απάντηση: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Ερώτηση: Ποια είναι η τιμή του window.foo?

Απάντηση: “bar” (μόνο αν το window.foo ήταν falsey αλλιώς θα διατηρούσε την τιμή)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Ερώτηση: Ποιο είναι το αποτέλεσμα των δύο παραπάνω alerts?

Απάντηση: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Ερώτηση: Ποια είναι η τιμή του foo.length?

Απάντηση: 2

[⬆] Διασκεδαστικές Ερωτήσεις:

  • Ποιο είναι το πιο σημαντικό πράγμα που έχετε υπολοιήση, ποιο είναι αυτό για το οποίο αισθάνεστε πραγματικά περήφανος;
  • Ποια είναι τα αγαπημένα σας εργαλεία στα developer tools που χρησιμοποιείτε;
  • Έχετε κάποια pet projects; Τι ακριβώς;
  • Ποιο είναι το αγαπημένο σας χαρακτηριστικό στον Internet Explorer?

[⬆] Άλλες Εξαιρετικές Πηγές:

\ No newline at end of file +Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers ★ Front-end Job Interview Questions

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Αυτό το αποθετήριο (repo) περιέχει μια σειρά από front-end ερωτήσεις συνέντευξης που μπορούν να χρησιμοποιηθούν κατά την εξέταση πιθανών υποψηφίων. Σε καμία περίπτωση δεν προτείνεται να θέσετε όλα τα ερωτήματα που βρίσκονται εδώ στον ίδιο υποψήφιο (αυτό θα έπαιρνε ώρες). Επιλέγοντας όμως μερικές από αυτές, θα μπορέσετε να επιλέξετε τον υποψήφιο με τις κατάλληλες για σας δεξιότητες.

Επίσης, πριν προχωρήσετε στις συνεντεύξεις, θα ήταν εξαιρετικά χρήσιμο να διαβάσετε το άρθρο της Rebecca Murphey “Baseline For Front-End Developers”.

Σημείωση: Λάβετε υπόψη ότι πολλές από αυτές τις ερωτήσεις είναι ελευθέρου θέματος και μπορεί να οδηγήσουν σε ενδιαφέρουσες συζητήσεις που θα σας πουν πολλά περισσότερα πράγματα σχετικά με τις δυνατότητες του υποψήφιου από μια απλή απάντηση.

Περιεχόμενα

  1. Αρχικοί Συντελεστές
  2. Γενικές Ερωτήσεις
  3. HTML Ερωτήσεις
  4. CSS Ερωτήσεις
  5. JS Ερωτήσεις
  6. jQuery Ερωτήσεις
  7. Coding Ερωτήσεις
  8. Διασκεδαστικές Ερωτήσεις
  9. Άλλες Εξαιρετικές Πηγές

[⬆] Αρχικοί Συντελεστές:

Οι περισσότερες ερωτήσεις προέκυψαν από ένα oksoclap thread που δημιουργήθηκε αρχικά από τον Paul Irish (@paul_irish) και στο οποίο συνείσφεραν τα παρακάτω άτομα:

[⬆] Γενικές Ερωτήσεις:

  • Τι μάθατε χτές/αυτή την εβδομάδα;
  • Τι σε ενθουσιάζει ή σας ενδιαφέρει σχετικά με τον προγραμματισμό;
  • Τι σκέφτεστε σχετικά με το UI, Ασφάλεια, Απόδοση, SEO, Συντηρησιμότητα και Τεχνολογία, ενώ υλοποιείτε μια web εφαρμογή ή ιστοσελίδα;
  • Μιλήστε σχετικά με το προτιμώμενο περιβάλλον ανάπτυξής σας. (OS, Editor, Φυλλομετρητές, εργαλεία κ.λπ.)
  • Με ποια έκδοση version control συστήματος είστε εξοικειωμένος;
  • Μπορείτε να περιγράψετε τη ροή της εργασίας σας κατά την διάρκεια δημιουργίας μιας ιστοσελίδας;
  • Μπορείτε να περιγράψετε τη διαφορά μεταξύ progressive enhancement και graceful degradation;
    • Επιπλέον βαθμοί για την περιγραφή feature detection
  • Εξηγήστε τι σημαίνει “Semantic HTML”.
  • Πώς μπορείτε να κάνετε optimize τα στοιχεία/πόρους των ιστοσελίδων σας;
    • Ψάχνοντας για μια σειρά από λύσεις που μπορεί να περιλαμβάνουν:
      • File concatenation
      • File minification
      • CDN Hosted
      • Caching
      • etc.
  • Γιατί είναι καλύτερα να σερβίρετε τα στοιχεία της ιστοσελίδας σας από πολλά domains;
    • Πόσα resources τη φορά μπορεί να κατεβάσει ένας φυλλομετρητής από κάθε domain;
  • Ονομάστε 3 τρόπους μείωσης του page load. (θεωρητικός ή πραγματικός χρόνος φόρτωσης)
  • Αν μπείτε σε κάποιο έργο στο οποίο χρησιμοποιούν tabs και εσείς έχετε συνηθίσει spaces, τι θα κάνατε;
    • Προτείνετε να χρησιμοποιηθεί στο έργο κάτι σαν το EditorConfig (http://editorconfig.org)
    • Συμμορφωθείτε με τις συμβάσεις (μείνετε συνεπής)
    • issue :retab! command
  • Δημιουργήστε μια απλή slideshow σελίδα
    • Επιπλέον βαθμοί αν δεν χρησιμοποιηθεί καθόλου JS.
  • Ποια εργαλεία χρησιμοποιείτε για να ελέγξετε την απόδοση του κώδικά σας;
    • Profiler, JSPerf, Dromaeo
  • Αν θα μπορούσατε να κατέχετε μια τεχνολογία φέτος, ποια θα ήταν αυτή;
  • Ποιες είναι οι διαφορές μεταξύ Long-Polling, WebSockets και SSE;
  • Εξηγήστε τη σημασία των standards και των οργανισμών τους.
  • Τι είναι FOUC; Πώς μπορείτε να αποφύγετε το FOUC;
  • Περιγράψτε όσο καλύτερα γίνεται τη διαδικασία από τη στιγμή που θα πληκτρολογείτε το URL ενός ιστότοπου μέχρι το τελείωμα του loading στην οθόνη σας.

[⬆] HTML Ερωτήσεις:

  • Τι κάνει το doctype?
  • Ποια είναι η διαφορά μεταξύ standards mode και quirks mode;
  • Ποιοι είναι περιορισμοί όταν “σερβίρετε” XHTML σελίδες;
    • Υπάρχουν προβλήματα όταν “σερβίρετε” σελίδες ως application/xhtml+xml;
  • Πώς σερβίρετε μια σελίδα με περιεχόμενο σε πολλές γλώσσες;
    • Σε τι είδους πράγματα πρέπει να είστε προσεκτικοί κατά τον σχεδιασμό ή την ανάπτυξη για πολυγλωσσικά sites;
  • Σε τι είναι χρήσιμα τα data- attributes;
  • Εξετάστε την HTML5 ως μια ανοιχτή web πλατφόρμα. Ποια είναι τα δομικά στοιχεία της;
  • Περιγράψτε τη διαφορά μεταξύ των cookies, sessionStorage και localStorage.
  • Μπορείτε να εξηγήσετε τη διαφορά μεταξύ GET και POST;

[⬆] CSS Ερωτήσεις:

  • Περιγράψτε τι κάνει ένα “reset” CSS αρχείο και γιατί είναι χρήσιμο.
  • Περιγράψτε τι είναι τα “Floats” και πώς λειτουργούν.
  • Περιγράψτε το z-index και πως λειτουργεί ο τρόπο στοίβαξης.
  • Ποιες είναι οι διάφορες τεχνικές “clearing” και ποια είναι η κατάλληλη για κάθε περίπτωση;
  • Εξηγήστε τί είναι τα CSS sprites, και πώς θα τα υλοποιούσατε σε μια σελίδα ή site.
  • Ποιες είναι οι αγαπημένες σας image replacement τεχνικές και ποιες χρησιμοποιείτε;
  • CSS property hacks, conditionally included .css αρχεία, ή… κάτι άλλο;
  • Πώς σερβίρεται τις σελίδες σας για feature-constrained browsers;
    • Ποιες τεχνικές/εργασίες χρησιμοποιείτε;
  • Ποιοι είναι οι διαφορετικοί τρόποι για αποκρύψετε οπτικά (visually hide) περιεχόμενο (και να είναι διαθέσιμo μόνο για screen readers);
  • Έχετε χρησιμοποιήσει ποτέ κάποιο grid system, και αν ναι, ποιο προτιμάτε;
  • Έχετε χρησιμοποιήσει ή υλοποιήσει media queries ή mobile specific layouts/CSS;
  • Κάποια εξοικείωση σε styling SVG;
  • Πώς θα βελτιστοποιήσετε τις ιστοσελίδες σας για εκτύπωση;
  • Ποια είναι μερικά από τα “gotchas” για συγγραφή αποτελεσματικής CSS;
  • Ποια είναι τα πλεονεκτήματα/μειονεκτήματα κατά την χρήση CSS preprocessors; (SASS, Compass, Stylus, LESS)
    • Εάν έχετε χρησιμοποιήσει CSS preprocessors, περιγράψτε τι σας αρέσει και τι όχι.
  • Πώς θα υλοποιούσατε ένα web design δείγμα που χρησιμοποιεί μη-standard γραμματοσειρές;
    • Webfonts (υπηρεσίες γραμματοσειρών όπως: Google Webfonts, Typekit etc.)
  • Εξηγήστε πώς ένας browser καθορίζει ποια στοιχεία ταιριάζουν με έναν CSS selector;
  • Εξηγήστε το “box model” και πως θα πείτε στον browser μέσω CSS να ρεντάρει (render) το layout σε διαφορετικά box models.
  • Τι κάνει το * { box-sizing: border-box; }? Ποια είναι τα πλεονεκτήματά του;
  • Αναφέρετε όσες τιμές (values) μπορείτε να θυμηθείτε για το display property.
  • Ποια είναι η διαφορά μεταξύ inline και inline-block;
  • Ποια είναι η διαφορά μεταξύ relative, fixed, absolute και statically τοποθετυμένου element;
  • Τι υπάρχοντα CSS frameworks έχετε χρησιμοποιήσει τοπικά, ή σε παραγωγή; (Bootstrap, PureCSS, Foundation κτλ.)
    • Αν ναι, ποια από αυτά; Αν μπορούσατε, πώς θα τα αλλάζατε/βελτιώνατε;
  • Έχετε παίξει με τις νέες CSS Flexbox ή Grid προδιαγραφές;
    • Αν ναι, τι γνώμη έχετε για την επίδοση τους?

[⬆] JS Ερωτήσεις:

  • Εξηγήστε το “event delegation”
  • Εξηγήστε πως λειτουργεί το this στην JavaScript
  • Εξηγήστε πως λειτουργεί η prototypal κληρονομικότητα
  • Πως κάνετε τεστ στη JavaScript;
  • AMD vs. CommonJS;
  • Τι είναι το hashtable;
  • Εξηγήστε γιατί το παρακάτω δεν λειτουργεί σαν IIFE: function foo(){ }();.
    • Τι χρειάζεται να αλάξει έτσι ώστε να λειτουργήσει σαν IIFE;
  • Ποια είναι η διαφορά ανάμεσα σε μια μεταβλητή που είναι: null, undefined και undeclared;
    • Πώς θα ελέγξετε οποιαδήποτε από τις παραπάνω καταστάσεις;
  • Τί είναι closure, και πως/γιατί να το χρησιμοποιήσετε;
  • Ποια είναι η πιο χαρακτηριστική χρήση των anonymous functions;
  • Εξηγήστε την “JavaScript module pattern” και πότε θα την χρησιμοποιούσατε.
    • Επιπλέον βαθμοί για την αναφορά καθαρού namespacing.
    • Τι γίνεται αν τα modules είναι namespace-less;
  • Πώς οργανώνετε τον κωδικό σας; (module pattern, classical inheritance;)
  • Ποια είναι η διαφορά μεταξύ host objects και native objects;
  • Διαφορά μεταξύ: function Person(){}, var person = Person(), και var person = new Person();
  • Ποια είναι η διαφορά μεταξύ .call and .apply;
  • Εξηγήστε τι είναι Function.prototype.bind;
  • Πότε βελτιστοποιείτε τον κώδικα σας;
  • Μπορείτε να μας εξηγήσετε πώς λειτουργεί η κληρονομικότητα (inheritance) στην JavaScript;
  • Πότε θα χρησιμοποιήσετε document.write();
    • Οι περισσότερες διαφημίσεις που δημιουργούνται χρησιμοποιούν ακόμα document.write () αν και η χρήση του είναι παρακινδυνευμένη
  • Ποια είναι η διαφορά μεταξύ feature detection, feature inference, και χρησιμοποιώντας το UA string
  • Εξηγήστε το AJAX με όσες περισσότερες λεπτομέρειες μπορείτε
  • Εξηγήστε πώς λειτουργεί το JSONP (και πως δεν είναι στην πραγματικότητα AJAX)
  • Έχετε χρησιμοποιήσει ποτέ JavaScript templating?
    • Αν ναι, ποιες libraries έχετε χρησιμοποιήσει; (Mustache.js, Handlebars κτλ.)
  • Εξηγήστε τι είναι το “hoisting”.
  • Περιγράψτε το event bubbling.
  • Ποια είναι η διαφορά μεταξύ “attribute” και “property”;
  • Γιατί η επέκταση (extending) των built in JavaScript objects δεν είναι καλή ιδέα;
  • Γιατί η επέκταση (extending) των built ins είναι καλή ιδέα;
  • Ποια είναι η διαφορά μεταξύ document load event και document ready event;
  • Ποια είναι η διαφορά μεταξύ == and ===;
  • Εξηγήστε πώς θα πάρετε μια παράμετρο query string από το URL του παράθυρου (window) του browser.
  • Εξηγήστε την πολιτική same-origin σε σχέση με την JavaScript.
  • Περιγράψτε τις inheritance patterns της JavaScript.
  • Κάνε το παρακάτω να δουλέψει:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Περιγράψτε μια στρατηγική για memoization (αποφεύγοντας τον υπολογισμό επανάληψης) σε JavaScript.
  • Γιατί ονομάζεται Ternary expression, τι υποδεικνύει η λέξη “Ternary”;
  • Τι είναι η arity μιας συνάρτησης (function);
  • Τι σημαίνει "use strict";; Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα στην χρήση του;

[⬆] jQuery Ερωτήσεις:

  • Εξηγήστε το “chaining”.
  • Εξηγήστε το “deferreds”.
  • Ποιές jQuery βελτιστοποιήσεις μπορείτε να υλοποιήσετε;
  • Τι κάνει το .end();
  • Πώς, και γιατί, να χρησιμοποιήσεις namespace σε έναν bound event handler;
  • Ονόμασε 4 διαφορετικές τιμές που μπορείς να περάσεις στην jQuery method.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object κτλ.
  • Τι είναι η effects (ή fx) queue;
  • Ποια είναι η διαφορά μεταξύ .get(), [], και .eq();
  • Ποια είναι η διαφορά μεταξύ .bind(), .live(), και .delegate()?
  • Ποια είναι η διαφορά μεταξύ $ and $.fn; Η απλά τι είναι $.fn.
  • Βελτιστοποιήστε τον παρακάτω selector:
$(".foo div#bar:eq(0)")

[⬆] Code Ερωτήσεις:

modulo(12, 5) // 2

Ερώτηση: Υλοποιήστε μια modulo function που ικανοποιεί το παραπάνω

"i'm a lasagna hog".split("").reverse().join("");

Ερώτηση: Τι τιμή επιστρέφει από την παραπάνω δήλωση;

Απάντηση: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Ερώτηση: Ποια είναι η τιμή του window.foo?

Απάντηση: “bar” (μόνο αν το window.foo ήταν falsey αλλιώς θα διατηρούσε την τιμή)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Ερώτηση: Ποιο είναι το αποτέλεσμα των δύο παραπάνω alerts?

Απάντηση: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Ερώτηση: Ποια είναι η τιμή του foo.length?

Απάντηση: 2

[⬆] Διασκεδαστικές Ερωτήσεις:

  • Ποιο είναι το πιο σημαντικό πράγμα που έχετε υπολοιήση, ποιο είναι αυτό για το οποίο αισθάνεστε πραγματικά περήφανος;
  • Ποια είναι τα αγαπημένα σας εργαλεία στα developer tools που χρησιμοποιείτε;
  • Έχετε κάποια pet projects; Τι ακριβώς;
  • Ποιο είναι το αγαπημένο σας χαρακτηριστικό στον Internet Explorer?

[⬆] Άλλες Εξαιρετικές Πηγές:

\ No newline at end of file diff --git a/_site/translations/hebrew/index.html b/_site/translations/hebrew/index.html index 4c0ad4125..a3c106b1a 100644 --- a/_site/translations/hebrew/index.html +++ b/_site/translations/hebrew/index.html @@ -1,4 +1,4 @@ -שאלות לראיונות עבודה בנושא פיתוח - צד לקוח ★ Front-end Job Interview Questions

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

המסמך כולל מספר שאלות המופיעות בראיונות עבודה בנושא צד-לקוח היכולות לסייע להעריך את הידע של מועמדים פוטנציאליים. אין צורך להשתמש בכל אחת מהשאלות הנ״ל על מועמד אחד מסוים (הדבר יימשך שעות). בחירת מספר שאלות מסוימות מהרשימה יאפשר למראיין להעריך את הכישורים הנדרשים מהמועמד.


שימו לב כי שאלות רבות ברשימה הן פתוחות, ועשויות להוביל לדיון מעניין בנושא התשובה או הגישה של המועמד, וכתוצאה מכך ללמד את המראיין הרבה יותר לגבי כישורי המועמד מאשר שאלות סגורות.

תוכן העניינים:

  1. שאלות כלליות
  2. שאלות בנושא HTML
  3. שאלות בנושא CSS
  4. שאלות בנושא JavaScript
  5. שאלות בנושא נגישות (קישור לאתר חיצוני)
  6. שאלות בנושא בדיקות (Testing)
  7. שאלות בנושא ביצועים (Performance)
  8. שאלות בנושא רשתות (Networks)
  9. שאלות תכנות
  10. שאלות כיפיות

כיצד לסייע לפרויקט

  1. רשימת המשתתפים
  2. כיצד לתרום לפרויקט
  3. רשיונות

שאלות כלליות:

  • מה למדת אתמול/ בשבוע האחרון?
  • מה הדבר שמרגש אותך בנוגע לתכנות?
  • ספר/י על אתגר טכני שחווית לאחרונה, וכיצד פתרת אותו?
  • באילו שיטות השתמשת כדי לשפר ביצועים בתהליך הבנייה או התחזוקה של אתר?
  • ספר/י על עקרונות SEO שבהם השתמשת לאחרונה.
  • האם יש לך דוגמאות לטכניקות נפוצות שבהן השתמשת כדי להתמודד עם אתגרי האבטחה בפיתוח צד-לקוח?
  • באילו פעולות נקטת בפרויקטים שלך כדי לשפר את יכולת הניהול והתחזוקה של הקוד שלך?
  • ספר/י על סביבת הפיתוח המועדפת עליך/עלייך.
  • באיזו מערכת/מערכות ניהול גרסאות (Version Contro System) אתה נוהג להשתמש?
  • תאר/י את תהליך העבודה שלך כאשר את/ה בונה אתר.
  • אם יש לך 5 גיליונות סגנונות (stylesheets) שונים, מהי הדרך הטובה ביותר להטמיע אותם באתר?
  • מה ההבדל בין "Progressive Enhancement" לבין "Graceful Degradation"?
  • כיצד תבצע/י אופטימיזציה לרשימת המשאבים (assets/ resources) של האתר?
  • כמה משאבים (resources) יוריד הדפדפן מדומיין נתון בכל פעם? מהם המקרים יוצאי הדופן?
  • מנה/מני 3 דרכים להפחתת זמן טעינת הדף (זמן ממשי או הזמן כפי שהוא נתפס ע״י המשתמש).
  • הצטרפת לפרויקט, והצוות משתמש בטאבים בעוד שאת/ה משתמש/ת ברווחים. מה תעשה/י?
  • תאר/י כיצד תיצור/תצרי דף מצגת פשוט.
  • לו היית יכול/ה ללמוד באופן יסודי טכנולוגיה אחת במהלך השנה הקרובה - איזו טכנולוגיה זו היתה?
  • הסבר/ הסבירי את החשיבות של standards ושל standards bodies.
  • מהו "Flash" או תוכן בלתי מעוצב, וכיצד תימנע/י מ-FOUC?
  • מהם "ARIA" וקוראי מסך, וכיצד תיצור/תצרי אתר נגיש?
  • מנה כמה נקודות בעד ונגד אנימציית CSS ואנימציית JavaScript.
  • מהן ראשי התיבות "CORS" ובאיזה תחום הן עוסקות?

שאלות בנושא HTML:

  • מה עושה doctype?
  • כיצד תספק/י דף/אתר במספר שפות?
  • לאילו דברים חשוב להיזהר או לשים לב כשבונים אתרים במספר שפות?
  • מה התועלת של התואר (attribute) בשם "-data"?
  • מהן אבני היסוד של HTML5?
  • תאר את ההבדלים בין "cookie", "sessionStorage", ו"localStorage".
  • תאר את ההבדלים בין <script>, <script async>, ו"<script defer>".
  • מדוע זה בדרך כלל רעיון טוב למקם את תגיד ה-CSS מסוג <link> בין תגיות <head></head> וקוד JS בדיוק לפני התגית <body/>? האם ישנם מקרים יוצאי דופן?
  • מהו progressive rendering?
  • לשם מה משתמשים בתכונה (attribute) בשם srcset בתגית image? הסבר/הסבירי את התהליך שהדפדפן משתמש בו על מנת להעריך את התכונה.
  • האם השתמשת ב-HTML templating languages אחרות בעבר?

שאלות בנושא CSS

  • מהי selector specificity וכיצד זה עובד?
  • מה ההבדל בין resetting לבין normalizing הגדרות CSS? באילו מהשניים תבחר/י ומדוע?
  • תאר/י מהם Floats וכיצד הם עובדים.
  • תאר/י מהו z-index וכיצד stacking context נוצר.
  • תאר/י מהו BFC או Block Formatting Context, וכיצד הוא עובד.
  • מהן צורות ה-clearing השונות, ובאילו מהן כדאי להשתמש ולשם מה?
  • כיצד תטפל/י בבעיות עיצוב המאפיינות דפדפן מסוים?
  • כיצד תתאים/י את האתר שלך לדפדפנים בעלי מגבלת מאפיינים (feature-constrained)? באילו טכניקות/ תהליכים תשתמש/י?
  • מהן הדרכים השונות להסתיר תוכן ולאפשר תצוגה שלו באמצעות קוראי מסך?
  • האם השתמשת בעבר בשיטת העיצוב grid? במידה וכן - איזו שיטה את/ה מעדיפ/ה?
  • האם השתמשת ב-media queries או בעיצוב מיוחד למובייל?
  • האם את/ה מכיר/ה את המונח styling SVG?
  • האם תוכל לתת דוגמה לסוג נוסף של '@media' פרט ל-'screen'?
  • מהם כמה עקרונות של כתיבת CSS אפקטיבי?
  • מה היתרונות/ חסרונות בשימוש במעבדי CSS? תאר מה אהבת/ אהבת פחות במעבדי CSS שבהם השתמשת בעבר.
  • כיצד תטמיע עיצוב לווב שמשתמש בפונטים לא סטנדרטיים?
  • הסבר/י כיצד הדפדפן קובע אילו אלמנטים מתאימים לאיזה סלקטור?
  • הסבר/י מהם pseudo-elements ולמה הם משמשים?
  • הסבר/י את הבנתך בנושא box model, וכיצד תאמר/י לדפדפן לרנדר את העיצוב במודל box model אחר?
  • מה עושה { ;box-sizing: border-box } *? מה יתרונותיו?
  • על מה אחראי התואר display? תנ/י דוגמה למספר שימושים שלו.
  • מה ההבדל בין inline לבין inline-block?
  • מה ההבדל בין relative, fixed, absolute ו-statically positioned?
  • באילו CSS frameworks השתמשת באופן מקומי, או בפרודקשן? כיצד תשנה/ תשפר אותם?
  • האם יצא לך להתנסות ב-CSS Flexbox או Grid specs?
  • הסבר/י את ההבדל בין לבנות אתר ריספונסיבי לבין לבנות אתר בגישת mobile first.
  • האם עבדת עם גרפיקת רטינה? במידה וכן, מתי ובאילו טכניקות השתמשת?
  • האם ישנה סיבה שבה תשתמש/י ב-()translate במקום absolute positioning, ולהיפך? מדוע?

שאלות בנושא JavaScript

  • הסבר/י את המונח event delegation.
  • הסבר/י כיצד this עובד בג׳אווהסקריפט.
  • הסבר/י כיצד prototypal inheritance עובדת.
  • מה דעתך על AMD לעומת CommonJS?
  • הסבר/י מדוע הקוד הבא לא יעבוד כ-IIFE:
    function foo(){ }();

    מה יש לשנות על מנת שהקוד יעבוד?
  • מה ההבדל בין null, undefined, ומשתנה שלא הוגדר? כיצד תבדוק/י את מצבם של משתנים מסוג זה?
  • מהו closure וכיצד תשתמש/י בו?
  • הסבר/י את ההבדל בין לולאת forEach לבין לולאת .map(), ומה הסיבה לבחור אחד על פני האחר?
  • לשם מה משתמשים על פי רוב בפונקציה אנונימית?
  • כיצד את/ה מארגן/ת את הקוד שלך (תבנית מודולים, תורשת קלאסית)?
  • מה ההבדל בין host objects לבין native objects?
  • מה ההבדלים בין שלוש הדוגמאות הבאות:
    +שאלות לראיונות עבודה בנושא פיתוח - צד לקוח ★ Front-end Job Interview Questions

    שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

    שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

    המסמך כולל מספר שאלות המופיעות בראיונות עבודה בנושא צד-לקוח היכולות לסייע להעריך את הידע של מועמדים פוטנציאליים. אין צורך להשתמש בכל אחת מהשאלות הנ״ל על מועמד אחד מסוים (הדבר יימשך שעות). בחירת מספר שאלות מסוימות מהרשימה יאפשר למראיין להעריך את הכישורים הנדרשים מהמועמד.


    שימו לב כי שאלות רבות ברשימה הן פתוחות, ועשויות להוביל לדיון מעניין בנושא התשובה או הגישה של המועמד, וכתוצאה מכך ללמד את המראיין הרבה יותר לגבי כישורי המועמד מאשר שאלות סגורות.

    תוכן העניינים:

    1. שאלות כלליות
    2. שאלות בנושא HTML
    3. שאלות בנושא CSS
    4. שאלות בנושא JavaScript
    5. שאלות בנושא נגישות (קישור לאתר חיצוני)
    6. שאלות בנושא בדיקות (Testing)
    7. שאלות בנושא ביצועים (Performance)
    8. שאלות בנושא רשתות (Networks)
    9. שאלות תכנות
    10. שאלות כיפיות

    כיצד לסייע לפרויקט

    1. רשימת המשתתפים
    2. כיצד לתרום לפרויקט
    3. רשיונות

    שאלות כלליות:

    • מה למדת אתמול/ בשבוע האחרון?
    • מה הדבר שמרגש אותך בנוגע לתכנות?
    • ספר/י על אתגר טכני שחווית לאחרונה, וכיצד פתרת אותו?
    • באילו שיטות השתמשת כדי לשפר ביצועים בתהליך הבנייה או התחזוקה של אתר?
    • ספר/י על עקרונות SEO שבהם השתמשת לאחרונה.
    • האם יש לך דוגמאות לטכניקות נפוצות שבהן השתמשת כדי להתמודד עם אתגרי האבטחה בפיתוח צד-לקוח?
    • באילו פעולות נקטת בפרויקטים שלך כדי לשפר את יכולת הניהול והתחזוקה של הקוד שלך?
    • ספר/י על סביבת הפיתוח המועדפת עליך/עלייך.
    • באיזו מערכת/מערכות ניהול גרסאות (Version Contro System) אתה נוהג להשתמש?
    • תאר/י את תהליך העבודה שלך כאשר את/ה בונה אתר.
    • אם יש לך 5 גיליונות סגנונות (stylesheets) שונים, מהי הדרך הטובה ביותר להטמיע אותם באתר?
    • מה ההבדל בין "Progressive Enhancement" לבין "Graceful Degradation"?
    • כיצד תבצע/י אופטימיזציה לרשימת המשאבים (assets/ resources) של האתר?
    • כמה משאבים (resources) יוריד הדפדפן מדומיין נתון בכל פעם? מהם המקרים יוצאי הדופן?
    • מנה/מני 3 דרכים להפחתת זמן טעינת הדף (זמן ממשי או הזמן כפי שהוא נתפס ע״י המשתמש).
    • הצטרפת לפרויקט, והצוות משתמש בטאבים בעוד שאת/ה משתמש/ת ברווחים. מה תעשה/י?
    • תאר/י כיצד תיצור/תצרי דף מצגת פשוט.
    • לו היית יכול/ה ללמוד באופן יסודי טכנולוגיה אחת במהלך השנה הקרובה - איזו טכנולוגיה זו היתה?
    • הסבר/ הסבירי את החשיבות של standards ושל standards bodies.
    • מהו "Flash" או תוכן בלתי מעוצב, וכיצד תימנע/י מ-FOUC?
    • מהם "ARIA" וקוראי מסך, וכיצד תיצור/תצרי אתר נגיש?
    • מנה כמה נקודות בעד ונגד אנימציית CSS ואנימציית JavaScript.
    • מהן ראשי התיבות "CORS" ובאיזה תחום הן עוסקות?

    שאלות בנושא HTML:

    • מה עושה doctype?
    • כיצד תספק/י דף/אתר במספר שפות?
    • לאילו דברים חשוב להיזהר או לשים לב כשבונים אתרים במספר שפות?
    • מה התועלת של התואר (attribute) בשם "-data"?
    • מהן אבני היסוד של HTML5?
    • תאר את ההבדלים בין "cookie", "sessionStorage", ו"localStorage".
    • תאר את ההבדלים בין <script>, <script async>, ו"<script defer>".
    • מדוע זה בדרך כלל רעיון טוב למקם את תגיד ה-CSS מסוג <link> בין תגיות <head></head> וקוד JS בדיוק לפני התגית <body/>? האם ישנם מקרים יוצאי דופן?
    • מהו progressive rendering?
    • לשם מה משתמשים בתכונה (attribute) בשם srcset בתגית image? הסבר/הסבירי את התהליך שהדפדפן משתמש בו על מנת להעריך את התכונה.
    • האם השתמשת ב-HTML templating languages אחרות בעבר?

    שאלות בנושא CSS

    • מהי selector specificity וכיצד זה עובד?
    • מה ההבדל בין resetting לבין normalizing הגדרות CSS? באילו מהשניים תבחר/י ומדוע?
    • תאר/י מהם Floats וכיצד הם עובדים.
    • תאר/י מהו z-index וכיצד stacking context נוצר.
    • תאר/י מהו BFC או Block Formatting Context, וכיצד הוא עובד.
    • מהן צורות ה-clearing השונות, ובאילו מהן כדאי להשתמש ולשם מה?
    • כיצד תטפל/י בבעיות עיצוב המאפיינות דפדפן מסוים?
    • כיצד תתאים/י את האתר שלך לדפדפנים בעלי מגבלת מאפיינים (feature-constrained)? באילו טכניקות/ תהליכים תשתמש/י?
    • מהן הדרכים השונות להסתיר תוכן ולאפשר תצוגה שלו באמצעות קוראי מסך?
    • האם השתמשת בעבר בשיטת העיצוב grid? במידה וכן - איזו שיטה את/ה מעדיפ/ה?
    • האם השתמשת ב-media queries או בעיצוב מיוחד למובייל?
    • האם את/ה מכיר/ה את המונח styling SVG?
    • האם תוכל לתת דוגמה לסוג נוסף של '@media' פרט ל-'screen'?
    • מהם כמה עקרונות של כתיבת CSS אפקטיבי?
    • מה היתרונות/ חסרונות בשימוש במעבדי CSS? תאר מה אהבת/ אהבת פחות במעבדי CSS שבהם השתמשת בעבר.
    • כיצד תטמיע עיצוב לווב שמשתמש בפונטים לא סטנדרטיים?
    • הסבר/י כיצד הדפדפן קובע אילו אלמנטים מתאימים לאיזה סלקטור?
    • הסבר/י מהם pseudo-elements ולמה הם משמשים?
    • הסבר/י את הבנתך בנושא box model, וכיצד תאמר/י לדפדפן לרנדר את העיצוב במודל box model אחר?
    • מה עושה { ;box-sizing: border-box } *? מה יתרונותיו?
    • על מה אחראי התואר display? תנ/י דוגמה למספר שימושים שלו.
    • מה ההבדל בין inline לבין inline-block?
    • מה ההבדל בין relative, fixed, absolute ו-statically positioned?
    • באילו CSS frameworks השתמשת באופן מקומי, או בפרודקשן? כיצד תשנה/ תשפר אותם?
    • האם יצא לך להתנסות ב-CSS Flexbox או Grid specs?
    • הסבר/י את ההבדל בין לבנות אתר ריספונסיבי לבין לבנות אתר בגישת mobile first.
    • האם עבדת עם גרפיקת רטינה? במידה וכן, מתי ובאילו טכניקות השתמשת?
    • האם ישנה סיבה שבה תשתמש/י ב-()translate במקום absolute positioning, ולהיפך? מדוע?

    שאלות בנושא JavaScript

    • הסבר/י את המונח event delegation.
    • הסבר/י כיצד this עובד בג׳אווהסקריפט.
    • הסבר/י כיצד prototypal inheritance עובדת.
    • מה דעתך על AMD לעומת CommonJS?
    • הסבר/י מדוע הקוד הבא לא יעבוד כ-IIFE:
      function foo(){ }();

      מה יש לשנות על מנת שהקוד יעבוד?
    • מה ההבדל בין null, undefined, ומשתנה שלא הוגדר? כיצד תבדוק/י את מצבם של משתנים מסוג זה?
    • מהו closure וכיצד תשתמש/י בו?
    • הסבר/י את ההבדל בין לולאת forEach לבין לולאת .map(), ומה הסיבה לבחור אחד על פני האחר?
    • לשם מה משתמשים על פי רוב בפונקציה אנונימית?
    • כיצד את/ה מארגן/ת את הקוד שלך (תבנית מודולים, תורשת קלאסית)?
    • מה ההבדל בין host objects לבין native objects?
    • מה ההבדלים בין שלוש הדוגמאות הבאות:
             function Person(){}
             var person = Person()
             var person = new Person()
      @@ -49,4 +49,4 @@
       
       doSomething().then(doSomethingElse);
       
      -

שאלות כיפיות:

  • ספר/י על פרויקט מעניין/ מגניב שעליו עבדת לאחרונה.
  • מהם הדברים שאת/ה אוהב/ת בנוגע לתוכנות הפיתוח איתן את/ה עובד/ת?
  • מי מעורר בך השראה בקהילת הפיתוח לווב?
  • האם יש לך פרויקטים אישיים? מאיזה סוג?
  • מה הפיצ׳ר האהוב עליך ב-Internet Explorer?
  • כיצד את/ה שותה את הקפה שלך?

תומכים:

פרויקט זה החל ב-2009 כשיתוף פעולה של @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

הפרויקט פעיל מאז בזכות תמיכתם של אנשים רבים ונהדרים.

\ No newline at end of file +

שאלות כיפיות:

  • ספר/י על פרויקט מעניין/ מגניב שעליו עבדת לאחרונה.
  • מהם הדברים שאת/ה אוהב/ת בנוגע לתוכנות הפיתוח איתן את/ה עובד/ת?
  • מי מעורר בך השראה בקהילת הפיתוח לווב?
  • האם יש לך פרויקטים אישיים? מאיזה סוג?
  • מה הפיצ׳ר האהוב עליך ב-Internet Explorer?
  • כיצד את/ה שותה את הקפה שלך?

תומכים:

פרויקט זה החל ב-2009 כשיתוף פעולה של @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

הפרויקט פעיל מאז בזכות תמיכתם של אנשים רבים ונהדרים.

\ No newline at end of file diff --git a/_site/translations/hungarian/index.html b/_site/translations/hungarian/index.html index 871dd3f64..eaf317979 100644 --- a/_site/translations/hungarian/index.html +++ b/_site/translations/hungarian/index.html @@ -1 +1 @@ -Interjú kérdések front-end fejlesztőknek ★ Front-end Job Interview Questions

Interjú kérdések front-end fejlesztőknek

Interjú kérdések front-end fejlesztőknek

Ebben a gyűjteményben összeválogattuk a legjobb front-end fejlesztő interjú kérdéseket. Ellenben nem tanácsoljuk az összes kérdés egyidejű feltevését, hiszen ez órákat venne igénybe de egy válogatott kérdéssorral megkönnyíthetjük a potenciális jelentkezők szelektálását.

Rebecca Murphey, Baseline For Front-End Developers cikke is hasznos alapja lehet egy interjúnak.

Megjegyzés: Ne feledd, hogy a kérdések többsége érdekes beszélgetésé alakulhat, ami többet elárulhat az emberről mintha csak egyszerű válaszokat adna.

Tartalom

  1. Eredeti közreműködők
  2. Általános kérdések
  3. HTML kérdések:
  4. CSS kérdések
  5. JS kérdések
  6. jQuery kérdések
  7. Példakódok
  8. Választható és vicces kérdések
  9. További referenciák

####[⬆] Eredeti közreműködők:

A kérdések többsége egy oksoclap beszélgetés alapján készült, amit Paul Irish (@paul_irish) kezdeményezett az alábbi közreműködőkkel:

####[⬆] Általános kérdések:

  • Tanultál valami újat a héten/tegnap és ha igen, mit?
  • Mi számodra a legérdekesebb és izgalmasabb a kódolás során?
  • Milyen UI, biztonsági, teljesítménybeli, SEO, karbantarthatósági és technológiai szempontokat tartasz szem elött fejlesztés közben?
  • Mi a számodra legelőnyösebb fejlesztői környezet? (operációs rendszer, szerkesztő, böngésző, fejlesztői eszközök, stb.)
  • Részletezd a munkafolyamatot, hogyan készítesz el egy weboldalt.
  • Mi a különbség a fokozatos javítása és a között, hogy a weboldalt folyamatosan optimalizálod régebbi és egyszerűbb felületekre is?
    • Bónusz pont a funkció működésének tesztelése adott eszközön.
  • Magyarázd el mit jelent a “szemantikus HTML”.
  • Milyen böngészőt és milyen eszközöket használsz a fejlesztéshez?
  • Hogyan optimalizálod egy weboldal forrásait/eszközeit?
    • Keress több megoldást, amik tartalmazzák az alábbiakat:
      • Fájl egyesítés
      • Fájl minimalizálás
      • CDN hoszting
      • Cachelés
      • stb.
  • Miert jobb az eszközöket egyszerre több domainnek is kiszolgálni?
    • Hány lekérdezés futhat a böngészőben egyidejűleg az adott domain irányába?
  • Nevezz meg 3 lehetőséget az oldalletöltés időtartámanak csökkentésére. (előtöltött vagy aktuális töltési idő)
  • Ha beszállsz egy projektbe, és ők tabot használnak te pedig szókozt a kód rendezésénél, mit teszel?
    • Tanácsolod, hogy használjatok valami technológiát, pl. EditorConfig
    • Elfogadod (vagy tartózkodsz)
    • issue :retab! command
  • Készíts egy egyszerű slideshow oldalt.
    • Bónusz pont ha nem szükséges hozzá JavaScript.
  • Milyen eszközökkel teszteled a kódod teljesítményét? ()
  • Ha idén elsajátíthatnál egy technológiát, mi lenne az?
  • Ismertesd a sztandardok fontosságát.
  • Mi a FOUC? Hogyan kerulöd el a FOUC-et?
  • Magyarázt el legjobb tudásod szerint mi történik a böngészőben attól kezdve hogy beírod az oldal url-jét, addig hogy az betöltődött a képernyőn.
  • Magyarázd el mi az ARIA és a képernyőolvasók, és hogy tudsz egy weboldalt hozzáférhetővé tenni hátrányos helyzetben élők számára.

####[⬆] HTML kérdések:

  • Mi a doctype feladata és hány fajtáját tudod megnevezni?
  • Mi a különbség a standard és a quirks módok között?
  • Nevezd meg az XHTML oldalak korlátait?
    • Van bármi akadálya annak, hogy egy oldalt application/xhtml+xml-ként szolgáljon ki?
  • Hogyan készítesz fel egy weboldalt többnyelvű tartalom megjelenítésére?
    • Mikre kell figyelni egy többnyelvű oldal tervezése és fejlesztése során?
  • Mire valók a data- attribútumok?
  • Tegyük fel, hogy a HTML5 egy nyílt webes felület. Mik az építőelemei?
  • Mi a különbség a cookie a sessionStorage és a localStorage között.
  • El tudod mondani mi a különbség a GET és a POST között?
  • Mi a különbség a <script>, <script async> és <script defer> között.

####[⬆] CSS kérdések:

  • Mire való a “reset” CSS fájl és mennyire hasznos?
  • Hogyan működik a CSS float?
  • Milyen clear technikákat ismersz és melyik milyen környezetben a megfelelő?
  • Magyarázd el a CSS sprites működését és, hogy hogyan alkalmazod egy weboldalon?
  • Mi a kedvenc képpel helyettesítő (image replacement) technikád és mit használsz mire?
  • CSS hackek, böngésző függő CSS fájlok, vagy… valami más?
  • Hogyan jelenítesz meg oldalakat korlátozott böngészőkben?
    • Milyen technológiákat/folyamatokat használsz?
  • Milyen módon tudsz tartalmakat vizuálisan elrejteni (és csak screen olvasók számára elérhetővé tenni)?
  • Használtál már “grid system”-et? Ha igen nevezz meg párat.
  • Használtál már “media query”-ket vagy mobil specifikus layoutokat/CSS-eket?
  • Jártas vagy az SVG használatában?
  • Hogyan alakítasz egy weboldalt nyomtatóbaráttá?
  • Mik a legjobb “ötletek” a hatékony CSS kód írásához?
  • Használsz CSS előfeldolgozó technilógiát? (SASS, Compass, Stylus, LESS)
    • Ha igen mit szeretsz és mit nem szeretsz bennük?
  • Hogyan valósítasz meg egy olyan dizájn kompozíciót, ami nem a szabványos betűtípusokat tartalmazza?
  • Miként határozza meg a böngésző a megfelelő CSS szelektort?
  • Hogyan értelmezed a “box model”-t és hogyan alkalmazod a böngészőkben?
  • Mit csinál a * { box-sizing: border-box; }? Mik az előnyei?
  • Sorold fel a display tulajdonság annyi értékét amennyit tudsz.
  • Mi a különbség az inline és az inline-block között?
  • Mi a különbség a relative , fixed, absolute és statikusan pozicionált elemek között?
  • A ‘C’ feloldása a CSS-ben a cascading (lépcsőzetes). Hogy van a prioritás meghatározva a stílusok közt (néhány példával)? Hogy használhatod ezt a rendszert a saját előnyödre?
  • Használtál már CSS keretrendszert? (Bootstrap, PureCSS, Foundation stb.)
  • Ha igen, melyiket? Ha tehetnéd, hogy változtatnád/fejlesztenéd tovább?
  • Foglalkoztál már az új CSS Flexbox és Grid specifikációkkal?
  • Miben más a reszponzív design és az adaptív design?
  • Dolgoztál már retina grafikával? Ha igen, milyen teknikákat használtál?

####[⬆] JS kérdések:

  • Mit jelent az event delegation?
  • Magyarázd el hogyan működik a this a JavaScript-ben.
  • Hogyan működik a protokol öröklés (prototypal inheritance)?
  • Hogyan teszteled a JavaScript kódodat?
  • AMD vs. CommonJS?
  • Mi a hashtábla?
  • Miért nem működik a következő kód IIFE-ként? function foo(){ }();
    • Mit kell megváltoztatni, hogy működjön?
  • Mit jelent az undefined és az undeclared változó?
    • Miként ellenőrzöd ezeket?
  • Mi a “closure”, milyen formáit ismered és hogyan használod azokat?
  • Hogyan néz ki egy anoním funkció?
  • Magyarázd el a JavaScript modul sablont és, hogy mikor használjuk.
    • Bónusz pont, ha említi a tiszta “namespace”-ket.
    • Mi történik akkor, ha a modul “namespace” mentes?
  • Miként rendszerezed a kódodat? (module pattern, classical inheritance)
  • Mi a különbség hoszt objektum és natív objektum között?
  • Mi a különbség az következő kódok között:
    function Person(){}, var person = Person() és var person = new Person()
  • Mi a különbség a .call és az .apply között?
  • Magyarázd el mire jó a Function.prototype.bind?
  • Mikor szoktad optimalizálni a kódodat?
  • Magyarázd el hogyan működik az öröklődés szabálya a JavaScript-ben?
  • Mikor használod a document.write() funkciót?
    • A legtöbb generált hírdetésben még mindig használják annak ellenére, hogy nem ajánlatos.
  • Mi a különbség a “feature” észlelés (detection), “feature” következtetés (inference) és az UA sztring használata között?
  • Magyarázd meg az AJAX működését a lehető legrészletesebben.
  • Magyarázd el, hogyan működik a JSONP (és miért nem AJAX valójában).
  • Használtál már JavaScript template rendszert?
    • Ha igen mit? (Mustache.js, Handlebars, stb.)
  • Mit jelent a “hoisting”?
  • Mit jelent az event bubbling?
  • Mi a különbség az “attribute” és a “property” között?
  • Miért nem jó ötlet kiegészíteni a beépített JavaScript objektumokat?
  • Miért jó ötlet kiegészíteni a bepített funkciókat?
  • Mi a különbség a “document load” és a “document ready” között?
  • Mi a különbség == és === között?
  • Hogyan olvasol be egy paramétert a böngésző ablak URL-ből?
  • Mit jelent a “same-origin” szabály a JavaScript-bet?
  • Ismertesd a JavaScript öröklési mintáját.
  • Javítsd ki az alábbi példát:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • írj le egy memorizáló stratégiát (ismétlődő kalkulációk nélkül) JavaScriptben.
  • Mit nevezünk “Ternary” kifejezésnek? Mire utal a “Ternary” szó?
  • Mennyi attribútumot lehet átadni egy funkciónak?
  • Mi a "use strict";, mik az előnyei és a hátrányai?
  • Készíts egy ciklust ami 100-ig számol, minden 3-al osztható számnál kiírja hogy “fizz”, minden 5-el osztható számnál kiírja hogy “buzz”, és minden 3-al és 5-el is osztható számnál kiírja hogy “fizzbuzz”
  • Általánosságban miért jó ötlet a weboldal global scope-ját érintetlenül hagyni?

####[⬆] jQuery kérdések:

  • Mit jelent a chaining?
  • Mit jelent a deferreds?
  • Milyen jQuery specifikus optimalizálást ismersz?
  • Mire használhatjuk az .end() funkciót?
  • Hogyan neveznél el egy kapcsolt esemény kezelőt (bound event handler) és miért?
  • Nevezz meg 4 különböző értéket, ami átadható egy jQuery folyamatnak.
    • Szelektor (sztring), HTML (sztring), Callback (funkció), HTMLElement, objektum, tömb, elemb tömb, jQuery objektum, stb.
  • Mit jelent az effektek (vagy fx) sorba állítas?
  • Mi a különbség .get(), [], és .eq() között?
  • Mi a különbség .bind(), .live(), és .delegate() között?
  • Mi a különbség $ és $.fn között? Vagy mit jelent a $.fn?
  • Optimalizáld a alábbi szelektort:
$(".foo div#bar:eq(0)")

####[⬆] Példakódok:

modulo(12, 5) // 2

Kérdés: Készítsd el a modulo funkció, hogy a fenti példa eredménye 2 legyen.

"i'm a lasagna hog".split("").reverse().join("");

Kérdés: Milyen értékkel tér vissza a fenti állítás?

Válasz: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Kérdés: Mi az értéke a window.foo-nak?

Válasz: “bar” (de csak ha a window.foo hamis egyébként megtartja az értékét.)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Kérdés: Mi a fenti két alert-nek a kimenete?

Válasz: “Hello World” és ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Kérdés: Mi a foo.length értéke?

Válasz: 2

####[⬆] Választható és vicces kérdések:

  • Mi a legjobb dolog, amit eddig kódoltál? Mire vagy a legbüszkébb?
  • Mi a kedvenced az általad használt fejlesztői eszközökben?
  • Van dédelgetett projekted? Ha igen, milyen?
  • Mit szeretsz a legjobban az Internet Explorerben?

####[⬆] További referenciák:

\ No newline at end of file +Interjú kérdések front-end fejlesztőknek ★ Front-end Job Interview Questions

Interjú kérdések front-end fejlesztőknek

Interjú kérdések front-end fejlesztőknek

Ebben a gyűjteményben összeválogattuk a legjobb front-end fejlesztő interjú kérdéseket. Ellenben nem tanácsoljuk az összes kérdés egyidejű feltevését, hiszen ez órákat venne igénybe de egy válogatott kérdéssorral megkönnyíthetjük a potenciális jelentkezők szelektálását.

Rebecca Murphey, Baseline For Front-End Developers cikke is hasznos alapja lehet egy interjúnak.

Megjegyzés: Ne feledd, hogy a kérdések többsége érdekes beszélgetésé alakulhat, ami többet elárulhat az emberről mintha csak egyszerű válaszokat adna.

Tartalom

  1. Eredeti közreműködők
  2. Általános kérdések
  3. HTML kérdések:
  4. CSS kérdések
  5. JS kérdések
  6. jQuery kérdések
  7. Példakódok
  8. Választható és vicces kérdések
  9. További referenciák

####[⬆] Eredeti közreműködők:

A kérdések többsége egy oksoclap beszélgetés alapján készült, amit Paul Irish (@paul_irish) kezdeményezett az alábbi közreműködőkkel:

####[⬆] Általános kérdések:

  • Tanultál valami újat a héten/tegnap és ha igen, mit?
  • Mi számodra a legérdekesebb és izgalmasabb a kódolás során?
  • Milyen UI, biztonsági, teljesítménybeli, SEO, karbantarthatósági és technológiai szempontokat tartasz szem elött fejlesztés közben?
  • Mi a számodra legelőnyösebb fejlesztői környezet? (operációs rendszer, szerkesztő, böngésző, fejlesztői eszközök, stb.)
  • Részletezd a munkafolyamatot, hogyan készítesz el egy weboldalt.
  • Mi a különbség a fokozatos javítása és a között, hogy a weboldalt folyamatosan optimalizálod régebbi és egyszerűbb felületekre is?
    • Bónusz pont a funkció működésének tesztelése adott eszközön.
  • Magyarázd el mit jelent a “szemantikus HTML”.
  • Milyen böngészőt és milyen eszközöket használsz a fejlesztéshez?
  • Hogyan optimalizálod egy weboldal forrásait/eszközeit?
    • Keress több megoldást, amik tartalmazzák az alábbiakat:
      • Fájl egyesítés
      • Fájl minimalizálás
      • CDN hoszting
      • Cachelés
      • stb.
  • Miert jobb az eszközöket egyszerre több domainnek is kiszolgálni?
    • Hány lekérdezés futhat a böngészőben egyidejűleg az adott domain irányába?
  • Nevezz meg 3 lehetőséget az oldalletöltés időtartámanak csökkentésére. (előtöltött vagy aktuális töltési idő)
  • Ha beszállsz egy projektbe, és ők tabot használnak te pedig szókozt a kód rendezésénél, mit teszel?
    • Tanácsolod, hogy használjatok valami technológiát, pl. EditorConfig
    • Elfogadod (vagy tartózkodsz)
    • issue :retab! command
  • Készíts egy egyszerű slideshow oldalt.
    • Bónusz pont ha nem szükséges hozzá JavaScript.
  • Milyen eszközökkel teszteled a kódod teljesítményét? ()
  • Ha idén elsajátíthatnál egy technológiát, mi lenne az?
  • Ismertesd a sztandardok fontosságát.
  • Mi a FOUC? Hogyan kerulöd el a FOUC-et?
  • Magyarázt el legjobb tudásod szerint mi történik a böngészőben attól kezdve hogy beírod az oldal url-jét, addig hogy az betöltődött a képernyőn.
  • Magyarázd el mi az ARIA és a képernyőolvasók, és hogy tudsz egy weboldalt hozzáférhetővé tenni hátrányos helyzetben élők számára.

####[⬆] HTML kérdések:

  • Mi a doctype feladata és hány fajtáját tudod megnevezni?
  • Mi a különbség a standard és a quirks módok között?
  • Nevezd meg az XHTML oldalak korlátait?
    • Van bármi akadálya annak, hogy egy oldalt application/xhtml+xml-ként szolgáljon ki?
  • Hogyan készítesz fel egy weboldalt többnyelvű tartalom megjelenítésére?
    • Mikre kell figyelni egy többnyelvű oldal tervezése és fejlesztése során?
  • Mire valók a data- attribútumok?
  • Tegyük fel, hogy a HTML5 egy nyílt webes felület. Mik az építőelemei?
  • Mi a különbség a cookie a sessionStorage és a localStorage között.
  • El tudod mondani mi a különbség a GET és a POST között?
  • Mi a különbség a <script>, <script async> és <script defer> között.

####[⬆] CSS kérdések:

  • Mire való a “reset” CSS fájl és mennyire hasznos?
  • Hogyan működik a CSS float?
  • Milyen clear technikákat ismersz és melyik milyen környezetben a megfelelő?
  • Magyarázd el a CSS sprites működését és, hogy hogyan alkalmazod egy weboldalon?
  • Mi a kedvenc képpel helyettesítő (image replacement) technikád és mit használsz mire?
  • CSS hackek, böngésző függő CSS fájlok, vagy… valami más?
  • Hogyan jelenítesz meg oldalakat korlátozott böngészőkben?
    • Milyen technológiákat/folyamatokat használsz?
  • Milyen módon tudsz tartalmakat vizuálisan elrejteni (és csak screen olvasók számára elérhetővé tenni)?
  • Használtál már “grid system”-et? Ha igen nevezz meg párat.
  • Használtál már “media query”-ket vagy mobil specifikus layoutokat/CSS-eket?
  • Jártas vagy az SVG használatában?
  • Hogyan alakítasz egy weboldalt nyomtatóbaráttá?
  • Mik a legjobb “ötletek” a hatékony CSS kód írásához?
  • Használsz CSS előfeldolgozó technilógiát? (SASS, Compass, Stylus, LESS)
    • Ha igen mit szeretsz és mit nem szeretsz bennük?
  • Hogyan valósítasz meg egy olyan dizájn kompozíciót, ami nem a szabványos betűtípusokat tartalmazza?
  • Miként határozza meg a böngésző a megfelelő CSS szelektort?
  • Hogyan értelmezed a “box model”-t és hogyan alkalmazod a böngészőkben?
  • Mit csinál a * { box-sizing: border-box; }? Mik az előnyei?
  • Sorold fel a display tulajdonság annyi értékét amennyit tudsz.
  • Mi a különbség az inline és az inline-block között?
  • Mi a különbség a relative , fixed, absolute és statikusan pozicionált elemek között?
  • A ‘C’ feloldása a CSS-ben a cascading (lépcsőzetes). Hogy van a prioritás meghatározva a stílusok közt (néhány példával)? Hogy használhatod ezt a rendszert a saját előnyödre?
  • Használtál már CSS keretrendszert? (Bootstrap, PureCSS, Foundation stb.)
  • Ha igen, melyiket? Ha tehetnéd, hogy változtatnád/fejlesztenéd tovább?
  • Foglalkoztál már az új CSS Flexbox és Grid specifikációkkal?
  • Miben más a reszponzív design és az adaptív design?
  • Dolgoztál már retina grafikával? Ha igen, milyen teknikákat használtál?

####[⬆] JS kérdések:

  • Mit jelent az event delegation?
  • Magyarázd el hogyan működik a this a JavaScript-ben.
  • Hogyan működik a protokol öröklés (prototypal inheritance)?
  • Hogyan teszteled a JavaScript kódodat?
  • AMD vs. CommonJS?
  • Mi a hashtábla?
  • Miért nem működik a következő kód IIFE-ként? function foo(){ }();
    • Mit kell megváltoztatni, hogy működjön?
  • Mit jelent az undefined és az undeclared változó?
    • Miként ellenőrzöd ezeket?
  • Mi a “closure”, milyen formáit ismered és hogyan használod azokat?
  • Hogyan néz ki egy anoním funkció?
  • Magyarázd el a JavaScript modul sablont és, hogy mikor használjuk.
    • Bónusz pont, ha említi a tiszta “namespace”-ket.
    • Mi történik akkor, ha a modul “namespace” mentes?
  • Miként rendszerezed a kódodat? (module pattern, classical inheritance)
  • Mi a különbség hoszt objektum és natív objektum között?
  • Mi a különbség az következő kódok között:
    function Person(){}, var person = Person() és var person = new Person()
  • Mi a különbség a .call és az .apply között?
  • Magyarázd el mire jó a Function.prototype.bind?
  • Mikor szoktad optimalizálni a kódodat?
  • Magyarázd el hogyan működik az öröklődés szabálya a JavaScript-ben?
  • Mikor használod a document.write() funkciót?
    • A legtöbb generált hírdetésben még mindig használják annak ellenére, hogy nem ajánlatos.
  • Mi a különbség a “feature” észlelés (detection), “feature” következtetés (inference) és az UA sztring használata között?
  • Magyarázd meg az AJAX működését a lehető legrészletesebben.
  • Magyarázd el, hogyan működik a JSONP (és miért nem AJAX valójában).
  • Használtál már JavaScript template rendszert?
    • Ha igen mit? (Mustache.js, Handlebars, stb.)
  • Mit jelent a “hoisting”?
  • Mit jelent az event bubbling?
  • Mi a különbség az “attribute” és a “property” között?
  • Miért nem jó ötlet kiegészíteni a beépített JavaScript objektumokat?
  • Miért jó ötlet kiegészíteni a bepített funkciókat?
  • Mi a különbség a “document load” és a “document ready” között?
  • Mi a különbség == és === között?
  • Hogyan olvasol be egy paramétert a böngésző ablak URL-ből?
  • Mit jelent a “same-origin” szabály a JavaScript-bet?
  • Ismertesd a JavaScript öröklési mintáját.
  • Javítsd ki az alábbi példát:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • írj le egy memorizáló stratégiát (ismétlődő kalkulációk nélkül) JavaScriptben.
  • Mit nevezünk “Ternary” kifejezésnek? Mire utal a “Ternary” szó?
  • Mennyi attribútumot lehet átadni egy funkciónak?
  • Mi a "use strict";, mik az előnyei és a hátrányai?
  • Készíts egy ciklust ami 100-ig számol, minden 3-al osztható számnál kiírja hogy “fizz”, minden 5-el osztható számnál kiírja hogy “buzz”, és minden 3-al és 5-el is osztható számnál kiírja hogy “fizzbuzz”
  • Általánosságban miért jó ötlet a weboldal global scope-ját érintetlenül hagyni?

####[⬆] jQuery kérdések:

  • Mit jelent a chaining?
  • Mit jelent a deferreds?
  • Milyen jQuery specifikus optimalizálást ismersz?
  • Mire használhatjuk az .end() funkciót?
  • Hogyan neveznél el egy kapcsolt esemény kezelőt (bound event handler) és miért?
  • Nevezz meg 4 különböző értéket, ami átadható egy jQuery folyamatnak.
    • Szelektor (sztring), HTML (sztring), Callback (funkció), HTMLElement, objektum, tömb, elemb tömb, jQuery objektum, stb.
  • Mit jelent az effektek (vagy fx) sorba állítas?
  • Mi a különbség .get(), [], és .eq() között?
  • Mi a különbség .bind(), .live(), és .delegate() között?
  • Mi a különbség $ és $.fn között? Vagy mit jelent a $.fn?
  • Optimalizáld a alábbi szelektort:
$(".foo div#bar:eq(0)")

####[⬆] Példakódok:

modulo(12, 5) // 2

Kérdés: Készítsd el a modulo funkció, hogy a fenti példa eredménye 2 legyen.

"i'm a lasagna hog".split("").reverse().join("");

Kérdés: Milyen értékkel tér vissza a fenti állítás?

Válasz: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Kérdés: Mi az értéke a window.foo-nak?

Válasz: “bar” (de csak ha a window.foo hamis egyébként megtartja az értékét.)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Kérdés: Mi a fenti két alert-nek a kimenete?

Válasz: “Hello World” és ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Kérdés: Mi a foo.length értéke?

Válasz: 2

####[⬆] Választható és vicces kérdések:

  • Mi a legjobb dolog, amit eddig kódoltál? Mire vagy a legbüszkébb?
  • Mi a kedvenced az általad használt fejlesztői eszközökben?
  • Van dédelgetett projekted? Ha igen, milyen?
  • Mit szeretsz a legjobban az Internet Explorerben?

####[⬆] További referenciák:

\ No newline at end of file diff --git a/_site/translations/index.html b/_site/translations/index.html index e2fc1e625..d8d04e6ad 100644 --- a/_site/translations/index.html +++ b/_site/translations/index.html @@ -1 +1 @@ -Translations ★ Front-end Job Interview Questions
\ No newline at end of file +Translations ★ Front-end Job Interview Questions
\ No newline at end of file diff --git a/_site/translations/indonesian/index.html b/_site/translations/indonesian/index.html index 136cadeb7..8932ad802 100644 --- a/_site/translations/indonesian/index.html +++ b/_site/translations/indonesian/index.html @@ -1 +1 @@ -Daftar Pertanyaan Wawancara Kerja Front-End ★ Front-end Job Interview Questions

Daftar Pertanyaan Wawancara Kerja Front-End

Daftar Pertanyaan Wawancara Kerja Front-End

File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancarai calon pekerja. Namun, bukan berarti anda dianjurkan untuk bertanya kepada si calon pekerja dengan semua pertanyaan dari daftar di bawah ini (karena itu akan memakan waktu beberapa jam). Dengan cukup memilih beberapa pertanyaan dari daftar ini akan membantu anda mengenal kemampuan yang anda cari dari si calon pekerja.

Catatan: Perlu diingat bahwa kebanyakan pertanyaan-pertanyaan ini bersifat terbuka dan mungkin dapat mengarah menjadi diskusi menarik yang bisa memberikan gambaran lebih lanjut mengenai kemampuan seseorang.

Daftar Isi

  1. Pertanyaan Umum
  2. Pertanyaan HTML
  3. Pertanyaan CSS
  4. Pertanyaan JS
  5. Pertanyaan Pengujian
  6. Pertanyaan Kinerja
  7. Pertanyaan Jaringan
  8. Pertanyaan Koding
  9. Pertanyaan Seru / Sampingan

Cara Partisipasi

  1. Kontributor
  2. Cara Kontribusi
  3. Lisensi

Pertanyaan Umum:

  • Apa yang baru Anda pelajari kemarin / minggu ini?
  • Apa yang membuatmu tertarik dengan coding?
  • Tantangan teknis apa yang baru-baru ini Anda hadapi, dan bagaimana Anda mengatasinya?
  • Pertimbangan-pertimbangan apa yang Anda ambil dari sisi UI, Keamanan, Kinerja, SEO, Maintainability maupun Teknologi saat Anda membangun aplikasi web atau situs?
  • Jelaskan tentang lingkungan coding yang Anda sukai. (OS, Editor atau IDE, Browser, Tools, dll)
  • Sistem kontrol versi apa saja yang Anda kenali?
  • Dapatkah Anda menjelaskan alur kerja Anda ketika Anda membuat sebuah situs?
  • Katakan Anda memiliki 5 stylesheet yang berbeda, bagaimana cara terbaik untuk mengintegrasikannya ke situs Anda?
  • Dapatkah Anda menjelaskan perbedaan antara progressive enhancement dan graceful degradation?
  • Bagaimana Anda mengoptimalkan aset / resource sebuah website?
  • Berapa banyak resource yang didownload oleh browser dari domain pada suatu waktu?
    • Apa saja pengecualiannya?
  • Sebutkan 3 cara untuk mengurangi beban halaman (waktu yang dirasakan maupun waktu loading yang sebenarnya).
  • Jika Anda mendapatkan sebuah proyek, dan dalam proyek ini mereka menggunakan tab dan Anda menggunakan space, apa yang akan Anda lakukan?
  • Jelaskan bagaimana Anda membuat halaman slideshow sederhana.
  • Jika Anda bisa mempelajari satu teknologi tahun ini, apakah itu?
  • Jelaskan pentingnya standar dan badan-badan standar.
  • Apa itu Flash of Unstyled Content alias FOUC? Bagaimana Anda menghindari FOUC?
  • Jelaskan apa itu ARIA dan screenreader, dan bagaimana membuat sebuah website dapat diakses.
  • Jelaskan beberapa pro dan kontra animasi CSS dibandingkan animasi JavaScript.
  • Apa arti CORS dan tujuannya?

Pertanyaan HTML:

  • Apa yang doctype lakukan?
  • Apa perbedaan antara modus standar dan modus quirks?
  • Apa perbedaan antara HTML dan XHTML?
  • Apakah ada masalah dengan melayani halaman sebagai aplikasi/xhtml+xml?
  • Bagaimana Anda melayani halaman dengan konten dalam berbagai bahasa?
  • Apa saja hal yang harus Anda waspadai ketika mendesain atau mengembangkan situs multibahasa?
  • Apa kegunaan atribut data-?
  • Katakan HTML5 adalah platform web terbuka, apa saja yang membentuk HTML5?
  • Jelaskan perbedaan antara cookie, sessionStorage dan localStorage.
  • Jelaskan perbedaan antara <script>, <script async> dan <script defer>.
  • Mengapa meletakkan <link> CSS di antara <head></head> dan meletakkan <script> JS sebelum <body></body> dianggap baik pada umumnya? Apakah ada pengecualiannya?
  • Apa itu progressive rendering?
  • Apakah Anda pernah menggunakan bahasa HTML templating yang berbeda?
  • Jelaskan perbedaan antara GET danPOST.

Pertanyaan CSS:

  • Apa perbedaan antara class dan id dalam CSS?
  • Apa perbedaan antara reset dan normalisasi dalam CSS? Apa yang Anda pilih, dan kenapa?
  • Jelaskan float dan cara kerjanya.
  • Jelaskan z-index dan bagaimana susunan konteks terbentuk.
  • Apa saja teknik-teknik kliring, dan yang mana sesuai untuk konteks apa?
  • Jelaskan sprite CSS, dan bagaimana Anda implementasikan pada suatu halaman atau situs.
  • Apa teknik pengganti gambar favorit Anda? Dan yang mana akan Anda gunakan, lalu kapan digunakan?
  • Bagaimana anda menghadapi masalah styling yang spesifik pada browser?
  • Bagaimana Anda melayani halaman untuk browser dengan fitur terbatas?
    • Teknik / contents apa yang Anda gunakan?
  • Apa saja cara-cara untuk menyembunyikan suatu konten secara visual (dan membuatnya tersedia hanya untuk pembaca layar / screenreader)?
  • Apakah Anda pernah menggunakan sistem grid, dan jika pernah, apa yang lebih Anda sukai?
  • Apakah Anda pernah menggunakan atau menerapkan media query atau layout / CSS khusus untuk mobile?
  • Apakah Anda fasih dengan styling SVG?
  • Bagaimana Anda mengoptimalkan halaman web Anda untuk dicetak?
  • Apa saja yang perlu diwaspadai dalam menulis CSS yang efisien?
  • Apa keuntungan / kerugian dari menggunakan precontentsor CSS? (Sass, Compass, Stylus, LESS)
    • Jelaskan apa yang Anda sukai dan tidak sukai dari precontentsor CSS yang pernah Anda gunakan.
  • Bagaimana Anda akan menerapkan desain web comp yang menggunakan font non-standar?
  • Jelaskan bagaimana browser mencocokan suatu elemen dengan selector CSS.
  • Jelaskan apa itu pesudo-element dan bagaimana penggunaannya.
  • Jelaskan pemahaman Anda tentang model kotak, dan bagaimana Anda memberitahu suatu browser dalam CSS untuk menggunakan layout model kotak yang mana.
  • Apa yang terjadi dengan ini : { box-sizing: border-box; }? Apa keuntungannya?
  • Sebutkan sebanyak mungkin value untuk properti display yang anda ingat.
  • Apa perbedaan antara inline dan inline-block?
  • Apa perbedaan antara elemen yang diposisikan secara relative, fixed, absolute, dan static?
  • Huruf ‘C’ dalam CSS adalah singkatan dari Cascading. Bagaimana cara kerja prioritas dalam menentukan stylenya (berikan beberapa contoh)? Bagaimana Anda bisa menggunakan sistem ini untuk keuntungan Anda?
  • Framework CSS apa yang pernah Anda gunakan secara lokal, maupun dalam produksi? (Bootstrap, PureCSS, Foundation dll). Dan kalau bisa, bagaimana Anda ingin mengubah / memperbaikinya?
  • Apakah Anda pernah mencoba CSS Flexbox yang baru atau Grid specs?
  • Bagaimana desain responsif berbeda dari desain adaptif?
  • Apakah Anda pernah bekerja dengan grafis retina? Jika ya, kapan dan teknik apa yang Anda gunakan?
  • Apakah Anda mempunyai alasan untuk menggunakan translate() dibandingkan posisi absolute, ataupun sebaliknya? Kenapa?

Pertanyaan JS:

  • Jelaskan event delegation.
  • Jelaskan bagaimana cara kerja this dalam JavaScript.
  • Jelaskan cara kerja inheritance prototype.
  • Apa pendapat Anda mengenai AMD dan CommonJS?
  • Jelaskan mengapa berikut ini tidak bekerja sebagai IIFE: function foo () {} ();.
    • Apa yang perlu diubah untuk membuatnya sebagai IIFE?
  • Apa perbedaan antara variabel: null,undefined dan undeclared?
    • Bagaimana Anda menguji status-status variabel ini?
  • Apa itu closure, dan bagaimana / mengapa Anda akan menggunakannya?
  • Bagaimana biasanya fungsi anonim (anonymous function) digunakan?
  • Bagaimana Anda mengatur kode Anda? (pola modul, warisan klasik?)
  • Apa perbedaan antara host object dan native object?
  • Apa perbedaan antara: function Person(){}, var person = Person(), dan var person = new Person()?
  • Apa perbedaan antara .call dan.apply?
  • Jelaskan Function.prototype.bind.
  • Kapan saja document.write () digunakan?
  • Kapan saja Anda mengoptimalkan kode Anda?
  • Apa perbedaan antara fitur deteksi, fitur inferensi, dan penggunaan string UA?
  • Jelaskan AJAX sedetail mungkin.
  • Apa keuntungan dan kerugian menggunakan AJAX?
  • Jelaskan bagaimana cara kerja JSONP (dan bagaimana itu bukan AJAX).
  • Apakah Anda pernah menggunakan JavaScript template?
    • Kalau ya, library apa yang pernah Anda gunakan? (Mustache.js, Handlebars dll.)
  • Jelaskan “hoisting”.
  • Jelaskan event bubbling.
  • Apa perbedaan antara “atribut” dan “properti”?
  • Mengapa tidak baik meng-extend object Javascript built-in?
  • Apa perbedaan antara document load dan document ready?
  • Apa perbedaan antara == dan ===?
  • Jelaskan kebijakan same-origin dalam konteks JavaScript.
  • Kerjakan ini :
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Mengapa disebut ekspresi Ternary, dan apa maksud “Ternary”?
  • Apa itu "use strict";? Apa keuntungan dan kerugian dalam penggunaannya?
  • Buatkan loop yang beriterasi sampai 100, dan print “fizz” pada kelipatan 3, “buzz” pada kelipatan 5 dan “fizzbuzz” pada kelipatan 3 dan 5.
  • Kenapa pada umumnya, lebih baik membiarkan scope global dalam suatu website sebagai apa adanya dan jangan diutak-atik?
  • Kenapa load event digunakan? Apakah event ini mempunyai kerugiannya? Apakah Anda tau cara alternatif lain, dan kenapa Anda menggunakan cara itu?
  • Jelaskan apa itu single page app, dan bagaimana membuatnya ramah SEO?
  • Sejauh apa pengalaman Anda dengan promise dan / atau polyfills?
  • Apakah pro dan kontrak menggunakan promise dibandingkan callback?
  • Apa keuntungan / kerugian menulis kode JavaScript dalam bahasa yang kompile ke JavaScript?
  • Program dan teknik apa yang Anda gunakan dalam mendebug kode Javascript?
  • Konstruksi bahasa apa yang Anda gunakan untuk mengiterasi properti objek dan array?
  • Jelaskan perbedaan antara object mutable dan immutable
    • Apa contoh objek immutable dalam JavaScript?
    • Apa pro dan kontra immutability?
    • Bagaimana Anda mencapai immutability dalam kode Anda?
  • Jelaskan perbedaan antara fungsi synchronous dan asynchronous
  • event loop itu apa?
  • Perbedaan antara call stack dan task queue itu apa?

Pertanyaan Pengujian

  • Apakah keuntungan / kerugian menguji kode Anda?
  • Program apa yang Anda gunakan untuk menguji kinerja kode Anda?
  • Apa saja perbedaan antara tes unit dan tes fungsi/integrasi?
  • Apakah tujuan program lint?

Pertanyaan Kinerja

  • Tool apa yang Anda gunakan untuk mencari masalah kinerja dalam kode Anda?
  • Apa saja cara-cara yang dapat meningkatkan kinerja scrolling dalam website Anda?
  • Jelaskan perbedaan antara layout, painting, dan compositing.

Pertanyaan Jaringan:

  • Secara tradisional, mengapa lebih baik untuk melayani aset situs dari beberapa domain?
  • Jelaskan semampu Anda, bagaimana contents kerja dari saat Anda mengetikkan URL situs web sampai saat halamannya selesai tampil di layar Anda.
  • Apakah perbedaan antara Long-Polling, Websockets dan Server-Sent Events (SSE)?
  • Jelaskan request dan response header berikut ini:
    • Perbedaan antara Expires, Date, Age dan If-Modified-…
    • Do Not Track (DNT)
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • aksi HTTP itu apa? Sebutkan aksi-aksi HTTP yang Anda tahu, dan jelaskan.

Pertanyaan koding:

Pertanyaan: Apakah hasil foo?

var foo = 10 + '20';

Pertanyaan: Bagaimana Anda akan membuat fungsi berikut ini bekerja?

add(2, 5); // 7
add(2)(5); // 7

Pertanyaan: Apakah hasil yang akan dikembalikan dari pernyataan berikut?

"i'm a lasagna hog".split("").reverse().join("");

Pertanyaan: Apakah nilai window.foo?

( window.foo || (window.foo = "bar") );

Pertanyaan: Apakah hasil dari dua alert di bawah ini?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pertanyaan: Apakah hasil foo.length?

var foo = [];
foo.push (1);
foo.push (2);

Pertanyaan: Apakah hasil foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pertanyaan: Apakah hasil yang akan diprint dalam kode berikut ini?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Pertanyaan Seru / Sampingan:

  • Apa saja proyek menarik yang baru-baru ini Anda kerjakan?
  • Apa sajakah hal-hal yang Anda sukai tentang alat pengembang yang Anda gunakan?
  • Apakah Anda mempunyai proyek yang anda sukai? Apa saja?
  • Apa fitur favorit Anda di Internet Explorer?
  • Apa tipe kopi favorit Anda?

Contributors:

Dokumen ini dimulai pada tahun 2009 sebagai kolaborasi dari @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed dan @iansym.

Dari sejak itu, dokumen ini sudah menerima kontribusi lebih dari 100 developers.

\ No newline at end of file +Daftar Pertanyaan Wawancara Kerja Front-End ★ Front-end Job Interview Questions

Daftar Pertanyaan Wawancara Kerja Front-End

Daftar Pertanyaan Wawancara Kerja Front-End

File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancarai calon pekerja. Namun, bukan berarti anda dianjurkan untuk bertanya kepada si calon pekerja dengan semua pertanyaan dari daftar di bawah ini (karena itu akan memakan waktu beberapa jam). Dengan cukup memilih beberapa pertanyaan dari daftar ini akan membantu anda mengenal kemampuan yang anda cari dari si calon pekerja.

Catatan: Perlu diingat bahwa kebanyakan pertanyaan-pertanyaan ini bersifat terbuka dan mungkin dapat mengarah menjadi diskusi menarik yang bisa memberikan gambaran lebih lanjut mengenai kemampuan seseorang.

Daftar Isi

  1. Pertanyaan Umum
  2. Pertanyaan HTML
  3. Pertanyaan CSS
  4. Pertanyaan JS
  5. Pertanyaan Pengujian
  6. Pertanyaan Kinerja
  7. Pertanyaan Jaringan
  8. Pertanyaan Koding
  9. Pertanyaan Seru / Sampingan

Cara Partisipasi

  1. Kontributor
  2. Cara Kontribusi
  3. Lisensi

Pertanyaan Umum:

  • Apa yang baru Anda pelajari kemarin / minggu ini?
  • Apa yang membuatmu tertarik dengan coding?
  • Tantangan teknis apa yang baru-baru ini Anda hadapi, dan bagaimana Anda mengatasinya?
  • Pertimbangan-pertimbangan apa yang Anda ambil dari sisi UI, Keamanan, Kinerja, SEO, Maintainability maupun Teknologi saat Anda membangun aplikasi web atau situs?
  • Jelaskan tentang lingkungan coding yang Anda sukai. (OS, Editor atau IDE, Browser, Tools, dll)
  • Sistem kontrol versi apa saja yang Anda kenali?
  • Dapatkah Anda menjelaskan alur kerja Anda ketika Anda membuat sebuah situs?
  • Katakan Anda memiliki 5 stylesheet yang berbeda, bagaimana cara terbaik untuk mengintegrasikannya ke situs Anda?
  • Dapatkah Anda menjelaskan perbedaan antara progressive enhancement dan graceful degradation?
  • Bagaimana Anda mengoptimalkan aset / resource sebuah website?
  • Berapa banyak resource yang didownload oleh browser dari domain pada suatu waktu?
    • Apa saja pengecualiannya?
  • Sebutkan 3 cara untuk mengurangi beban halaman (waktu yang dirasakan maupun waktu loading yang sebenarnya).
  • Jika Anda mendapatkan sebuah proyek, dan dalam proyek ini mereka menggunakan tab dan Anda menggunakan space, apa yang akan Anda lakukan?
  • Jelaskan bagaimana Anda membuat halaman slideshow sederhana.
  • Jika Anda bisa mempelajari satu teknologi tahun ini, apakah itu?
  • Jelaskan pentingnya standar dan badan-badan standar.
  • Apa itu Flash of Unstyled Content alias FOUC? Bagaimana Anda menghindari FOUC?
  • Jelaskan apa itu ARIA dan screenreader, dan bagaimana membuat sebuah website dapat diakses.
  • Jelaskan beberapa pro dan kontra animasi CSS dibandingkan animasi JavaScript.
  • Apa arti CORS dan tujuannya?

Pertanyaan HTML:

  • Apa yang doctype lakukan?
  • Apa perbedaan antara modus standar dan modus quirks?
  • Apa perbedaan antara HTML dan XHTML?
  • Apakah ada masalah dengan melayani halaman sebagai aplikasi/xhtml+xml?
  • Bagaimana Anda melayani halaman dengan konten dalam berbagai bahasa?
  • Apa saja hal yang harus Anda waspadai ketika mendesain atau mengembangkan situs multibahasa?
  • Apa kegunaan atribut data-?
  • Katakan HTML5 adalah platform web terbuka, apa saja yang membentuk HTML5?
  • Jelaskan perbedaan antara cookie, sessionStorage dan localStorage.
  • Jelaskan perbedaan antara <script>, <script async> dan <script defer>.
  • Mengapa meletakkan <link> CSS di antara <head></head> dan meletakkan <script> JS sebelum <body></body> dianggap baik pada umumnya? Apakah ada pengecualiannya?
  • Apa itu progressive rendering?
  • Apakah Anda pernah menggunakan bahasa HTML templating yang berbeda?
  • Jelaskan perbedaan antara GET danPOST.

Pertanyaan CSS:

  • Apa perbedaan antara class dan id dalam CSS?
  • Apa perbedaan antara reset dan normalisasi dalam CSS? Apa yang Anda pilih, dan kenapa?
  • Jelaskan float dan cara kerjanya.
  • Jelaskan z-index dan bagaimana susunan konteks terbentuk.
  • Apa saja teknik-teknik kliring, dan yang mana sesuai untuk konteks apa?
  • Jelaskan sprite CSS, dan bagaimana Anda implementasikan pada suatu halaman atau situs.
  • Apa teknik pengganti gambar favorit Anda? Dan yang mana akan Anda gunakan, lalu kapan digunakan?
  • Bagaimana anda menghadapi masalah styling yang spesifik pada browser?
  • Bagaimana Anda melayani halaman untuk browser dengan fitur terbatas?
    • Teknik / contents apa yang Anda gunakan?
  • Apa saja cara-cara untuk menyembunyikan suatu konten secara visual (dan membuatnya tersedia hanya untuk pembaca layar / screenreader)?
  • Apakah Anda pernah menggunakan sistem grid, dan jika pernah, apa yang lebih Anda sukai?
  • Apakah Anda pernah menggunakan atau menerapkan media query atau layout / CSS khusus untuk mobile?
  • Apakah Anda fasih dengan styling SVG?
  • Bagaimana Anda mengoptimalkan halaman web Anda untuk dicetak?
  • Apa saja yang perlu diwaspadai dalam menulis CSS yang efisien?
  • Apa keuntungan / kerugian dari menggunakan precontentsor CSS? (Sass, Compass, Stylus, LESS)
    • Jelaskan apa yang Anda sukai dan tidak sukai dari precontentsor CSS yang pernah Anda gunakan.
  • Bagaimana Anda akan menerapkan desain web comp yang menggunakan font non-standar?
  • Jelaskan bagaimana browser mencocokan suatu elemen dengan selector CSS.
  • Jelaskan apa itu pesudo-element dan bagaimana penggunaannya.
  • Jelaskan pemahaman Anda tentang model kotak, dan bagaimana Anda memberitahu suatu browser dalam CSS untuk menggunakan layout model kotak yang mana.
  • Apa yang terjadi dengan ini : { box-sizing: border-box; }? Apa keuntungannya?
  • Sebutkan sebanyak mungkin value untuk properti display yang anda ingat.
  • Apa perbedaan antara inline dan inline-block?
  • Apa perbedaan antara elemen yang diposisikan secara relative, fixed, absolute, dan static?
  • Huruf ‘C’ dalam CSS adalah singkatan dari Cascading. Bagaimana cara kerja prioritas dalam menentukan stylenya (berikan beberapa contoh)? Bagaimana Anda bisa menggunakan sistem ini untuk keuntungan Anda?
  • Framework CSS apa yang pernah Anda gunakan secara lokal, maupun dalam produksi? (Bootstrap, PureCSS, Foundation dll). Dan kalau bisa, bagaimana Anda ingin mengubah / memperbaikinya?
  • Apakah Anda pernah mencoba CSS Flexbox yang baru atau Grid specs?
  • Bagaimana desain responsif berbeda dari desain adaptif?
  • Apakah Anda pernah bekerja dengan grafis retina? Jika ya, kapan dan teknik apa yang Anda gunakan?
  • Apakah Anda mempunyai alasan untuk menggunakan translate() dibandingkan posisi absolute, ataupun sebaliknya? Kenapa?

Pertanyaan JS:

  • Jelaskan event delegation.
  • Jelaskan bagaimana cara kerja this dalam JavaScript.
  • Jelaskan cara kerja inheritance prototype.
  • Apa pendapat Anda mengenai AMD dan CommonJS?
  • Jelaskan mengapa berikut ini tidak bekerja sebagai IIFE: function foo () {} ();.
    • Apa yang perlu diubah untuk membuatnya sebagai IIFE?
  • Apa perbedaan antara variabel: null,undefined dan undeclared?
    • Bagaimana Anda menguji status-status variabel ini?
  • Apa itu closure, dan bagaimana / mengapa Anda akan menggunakannya?
  • Bagaimana biasanya fungsi anonim (anonymous function) digunakan?
  • Bagaimana Anda mengatur kode Anda? (pola modul, warisan klasik?)
  • Apa perbedaan antara host object dan native object?
  • Apa perbedaan antara: function Person(){}, var person = Person(), dan var person = new Person()?
  • Apa perbedaan antara .call dan.apply?
  • Jelaskan Function.prototype.bind.
  • Kapan saja document.write () digunakan?
  • Kapan saja Anda mengoptimalkan kode Anda?
  • Apa perbedaan antara fitur deteksi, fitur inferensi, dan penggunaan string UA?
  • Jelaskan AJAX sedetail mungkin.
  • Apa keuntungan dan kerugian menggunakan AJAX?
  • Jelaskan bagaimana cara kerja JSONP (dan bagaimana itu bukan AJAX).
  • Apakah Anda pernah menggunakan JavaScript template?
    • Kalau ya, library apa yang pernah Anda gunakan? (Mustache.js, Handlebars dll.)
  • Jelaskan “hoisting”.
  • Jelaskan event bubbling.
  • Apa perbedaan antara “atribut” dan “properti”?
  • Mengapa tidak baik meng-extend object Javascript built-in?
  • Apa perbedaan antara document load dan document ready?
  • Apa perbedaan antara == dan ===?
  • Jelaskan kebijakan same-origin dalam konteks JavaScript.
  • Kerjakan ini :
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Mengapa disebut ekspresi Ternary, dan apa maksud “Ternary”?
  • Apa itu "use strict";? Apa keuntungan dan kerugian dalam penggunaannya?
  • Buatkan loop yang beriterasi sampai 100, dan print “fizz” pada kelipatan 3, “buzz” pada kelipatan 5 dan “fizzbuzz” pada kelipatan 3 dan 5.
  • Kenapa pada umumnya, lebih baik membiarkan scope global dalam suatu website sebagai apa adanya dan jangan diutak-atik?
  • Kenapa load event digunakan? Apakah event ini mempunyai kerugiannya? Apakah Anda tau cara alternatif lain, dan kenapa Anda menggunakan cara itu?
  • Jelaskan apa itu single page app, dan bagaimana membuatnya ramah SEO?
  • Sejauh apa pengalaman Anda dengan promise dan / atau polyfills?
  • Apakah pro dan kontrak menggunakan promise dibandingkan callback?
  • Apa keuntungan / kerugian menulis kode JavaScript dalam bahasa yang kompile ke JavaScript?
  • Program dan teknik apa yang Anda gunakan dalam mendebug kode Javascript?
  • Konstruksi bahasa apa yang Anda gunakan untuk mengiterasi properti objek dan array?
  • Jelaskan perbedaan antara object mutable dan immutable
    • Apa contoh objek immutable dalam JavaScript?
    • Apa pro dan kontra immutability?
    • Bagaimana Anda mencapai immutability dalam kode Anda?
  • Jelaskan perbedaan antara fungsi synchronous dan asynchronous
  • event loop itu apa?
  • Perbedaan antara call stack dan task queue itu apa?

Pertanyaan Pengujian

  • Apakah keuntungan / kerugian menguji kode Anda?
  • Program apa yang Anda gunakan untuk menguji kinerja kode Anda?
  • Apa saja perbedaan antara tes unit dan tes fungsi/integrasi?
  • Apakah tujuan program lint?

Pertanyaan Kinerja

  • Tool apa yang Anda gunakan untuk mencari masalah kinerja dalam kode Anda?
  • Apa saja cara-cara yang dapat meningkatkan kinerja scrolling dalam website Anda?
  • Jelaskan perbedaan antara layout, painting, dan compositing.

Pertanyaan Jaringan:

  • Secara tradisional, mengapa lebih baik untuk melayani aset situs dari beberapa domain?
  • Jelaskan semampu Anda, bagaimana contents kerja dari saat Anda mengetikkan URL situs web sampai saat halamannya selesai tampil di layar Anda.
  • Apakah perbedaan antara Long-Polling, Websockets dan Server-Sent Events (SSE)?
  • Jelaskan request dan response header berikut ini:
    • Perbedaan antara Expires, Date, Age dan If-Modified-…
    • Do Not Track (DNT)
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • aksi HTTP itu apa? Sebutkan aksi-aksi HTTP yang Anda tahu, dan jelaskan.

Pertanyaan koding:

Pertanyaan: Apakah hasil foo?

var foo = 10 + '20';

Pertanyaan: Bagaimana Anda akan membuat fungsi berikut ini bekerja?

add(2, 5); // 7
add(2)(5); // 7

Pertanyaan: Apakah hasil yang akan dikembalikan dari pernyataan berikut?

"i'm a lasagna hog".split("").reverse().join("");

Pertanyaan: Apakah nilai window.foo?

( window.foo || (window.foo = "bar") );

Pertanyaan: Apakah hasil dari dua alert di bawah ini?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pertanyaan: Apakah hasil foo.length?

var foo = [];
foo.push (1);
foo.push (2);

Pertanyaan: Apakah hasil foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pertanyaan: Apakah hasil yang akan diprint dalam kode berikut ini?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Pertanyaan Seru / Sampingan:

  • Apa saja proyek menarik yang baru-baru ini Anda kerjakan?
  • Apa sajakah hal-hal yang Anda sukai tentang alat pengembang yang Anda gunakan?
  • Apakah Anda mempunyai proyek yang anda sukai? Apa saja?
  • Apa fitur favorit Anda di Internet Explorer?
  • Apa tipe kopi favorit Anda?

Contributors:

Dokumen ini dimulai pada tahun 2009 sebagai kolaborasi dari @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed dan @iansym.

Dari sejak itu, dokumen ini sudah menerima kontribusi lebih dari 100 developers.

\ No newline at end of file diff --git a/_site/translations/italian/index.html b/_site/translations/italian/index.html index cbfe99f7e..920d6f174 100644 --- a/_site/translations/italian/index.html +++ b/_site/translations/italian/index.html @@ -1 +1 @@ -Domande per il colloquio di lavoro per front-end ★ Front-end Job Interview Questions

Domande per il colloquio di lavoro per front-end

Domande per il colloquio di lavoro per front-end

Questo repository contiene una serie di domande che possono essere usate nei colloqui di lavoro quando si esaminano i potenziali candidati per il ruolo di front-end. Non è affatto consigliato usare ogni singola domanda con lo stesso candidato (richiederebbe ore). Scegliere alcune di queste domande dalla lista dovrebbe aiutarti ad esaminare le skill che richiedi.

L’articolo Baseline For Front-End Developers di Rebecca Murphey è un’ottima risorsa da leggere prima di affrontare un colloquio.

Nota: Tieni presente che molte di queste domande sono a risposta aperta e possono portare a interessanti discussioni che ti possono far capire le capacità di una persona più di quello che farebbe una risposta diretta.

Indice dei Contenuti

  1. Collaboratori Originali
  2. Domande Generali
  3. Domande Specifiche su HTML
  4. Domande Specifiche su CSS
  5. Domande Specifiche su JS
  6. Domande Specifiche su jQuery
  7. Domande con Codice
  8. Domande per Divertimento
  9. Altre Ottime Risorse

####[⬆] Collaboratori Originali:

La maggior parte delle domande sono state prese da una discussione su oksoclap originariamente creata da Paul Irish (@paul_irish) e con il contributo delle seguenti persone:

####[⬆] Domande Generali:

  • Cosa hai imparato ieri/questa settimana?
  • Cosa ti entusiasma o ti interessa della programmazione?
  • Qual è una sfida tecnica che hai incontrato e come l’hai risolta?
  • Quali considerazioni fai riguardo alla UI, alla Sicurezza, alle Prestazioni, al SEO, alla Manutenibilità o alla Tecnologia mentre costruisci una applicazione web o un sito?
  • Parla del tuo ambiente di sviluppo preferito. (Sistema Operativo, Editor di testo, Browser, Strumenti ecc.)
  • Con quali sistemi di controllo di versione [VCS] hai familiarità?
  • Puoi descrivere il tuo metodo di lavoro quando crei una pagina web?
  • Se avessi 5 fogli di stile differenti, come ti comporteresti per integrarli al meglio nel sito?
  • Puoi descrivere la differenza tra miglioramento progressivo [progressive enhancement] e degradazione elegante [graceful degradation]?
  • Come ottimizzeresti le risorse/asset di un sito?
  • Quante risorse scaricherà per volta un browser da uno specifico dominio?
    • Quali sono le eccezioni?
  • Citami 3 modi per diminuire il caricamento della pagina. (percepito o effettivo tempo di caricamento)
  • Se cominci a lavorare su un progetto già iniziato dove vengono usati tab invece di spazi, cosa fai?
  • Descrivi come creeresti una semplice pagina con slideshow.
  • Se avessi la possibilità id diventare esperto in una tecnologia, quale sceglieresti?
  • Spiega l’importanza degli standard e degli enti di normazione.
  • Cosa è il FOUC? Come eviti il FOUC?
  • Spiega cosa sono ARIA e lettori di schermo [screenreaders] e come rendere un sito web accessibile.
  • Spiega alcuni dei pro e contro delle animazioni CSS rispetto alle animazioni Javascript.

####[⬆] Domande su HTML:

  • Cosa fa il doctype?
  • Qual è la differenza tra standard mode e quirks mode?
  • Qual è la differenza tra HTML e XHTML?
  • Ci sono dei problemi a servire le pagine come application/xhtml+xml?
  • Come servi una pagina con il contenuto in più lingue?
  • A cosa devi far attenzione quando progetti o sviluppi siti multilingua?
  • Per cosa sono utili gli attributi data-?
  • Considera HTML5 come una piattaforma web aperta. Quali sono i mattoni di HTML5?
  • Descrivi le differenze tra cookie, sessionStorage e localStorage.
  • Descrivi la differenza tra <script>, <script async> e <script defer>.
  • Perche è generalmente una buona idea posizionare CSS <link> tags all’interno di <head></head> e Javascript <script> tags appena prima di </body>? Conosci eccezioni?
  • Cos’è il rendering progressivo [progressive rendering]?
  • Hai mai utilizzato differeti liguaggi di templating HTML prima?

####[⬆] Domande Specifiche su CSS:

  • Descrivi cosa fa un file CSS “reset” e in cosa è utile.
  • Descrivi i Float e come funzionano.
  • Quali sono le varie tecniche di clearing e quale è appropriata per quale contesto?
  • Spiega gli sprite CSS, e come li implementeresti in una pagina o in un sito.
  • Quali sono le tue tecniche di sostituzione immagini [image replacement] preferite e quale usi quando?
  • Hack delle proprietà CSS, file .css inclusi con condizioni, o… altro?
  • Come servi le tue pagine per i browser con funzionalità limitate?
    • Che tecniche/processi usi?
  • Quali sono i vari modi per nascondere visualmente il contenuto (e renderlo disponibile solo per gli screen reader)?
  • Hai mai usato un sistema di griglie [grid system], e se sì, qual è il tuo preferito?
  • Hai mai usato o implementato media queries o CSS/layout specifici per mobile?
  • Familiarità con lo styling SVG?
  • Come ottimizzi le tue pagine web per la stampa?
  • Quali sono alcuni dei “trucchi” per scrivere CSS efficiente?
  • Quali sono i vantaggi/svantaggi nell’usare i preprocessori CSS? (SASS, Compass, Stylus, LESS)
    • Se sì, descrivi cosa ti piace e cosa non ti piace dei preprocessori CSS che hai usato.
  • Come implementeresti una grafica web che usa font non standard?
    • Webfonts (servizi di font tipo: Google Webfonts, Typekit, ecc…)
  • Spiega come un browser determina quali elementi corrispondono a un selettore CSS.
  • Spiega la tua comprensione del box model e come useresti i CSS per dire al browser di rappresentare il tuo layout nei vari box model.

####[⬆] Domande Specifiche su JS:

  • Spiega l’event delegation.
  • Spiega come funziona this in JavaScript.
  • Spiega come funziona l’ereditarietà prototipale [prototypal inheritance].
  • Come fai a testare il tuo codice JavaScript?
  • AMD contro CommonJS?
  • Cosa è una hashtable?
  • Spiega perché il seguente codice non funziona come UN IIFE: function foo(){ }();.
    • Cosa c’è bisogno di cambiare per renderlo correttamente un IIFE?
  • Quale è la differenza tra una variabile che è: null, undefined or undeclared?
    • Come faresti per controllare questi stati?
  • Cosa è una chiusura [closure], e come/perché ne useresti una?
  • Qual è l’uso tipico di una funzione anonima?
  • Spiega il “JavaScript module pattern” e quando lo useresti.
    • Punti bonus se menziona namespacing pulito.
    • E se i tuoi moduli sono senza namespace?
  • Come organizzi il tuo codice? (module pattern, ereditarietà classica?)
  • Qual è la differenza tra oggetti host e oggetti nativi?
  • Differenza tra: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual è la differenza tra .call e .apply?
  • Spiega Function.prototype.bind?
  • Quando ottimizzi il tuo codice?
  • Puoi spiegare come funziona l’ereditarietà in JavaScript?
  • Quando useresti document.write()?
    • La maggior parte delle pubblicità usa document.write() sebbene il suo utilizzo venga malvisto
  • Qual è la differenza tra il rilevamento di funzionalità [feature detection], la deduzione di funzionalità [feature inference], e l’uso della stringa UA
  • Spiega AJAX nel modo più dettagliato possibile
  • Spiega come funziona JSONP (e come non è veramente AJAX)
  • Hai mai usato il templating JavaScript?
    • Se se sì, quali librerie hai utilizzato? (Mustache.js, Handlebars ecc…)
  • Spiega “hoisting”.
  • Descrivi l’event bubbling.
  • Qual è la differenza tra un “attribute” e una “property”?
  • Perché extending built negli oggetti JavaScript non è una buona idea?
  • Perché extending built è una buona idea?
  • Differenza tra l’evento document load e l’evento document ready?
  • Qual è la differenza tra == e ===?
  • Spiega come prenderesti il parametro query string dall’URL della finestra del browser.
  • Spiega la policy “stessa origine” [same-origin] per quanto riguarda JavaScript.
  • Descrivi i pattern di ereditarietà in JavaScript.
  • Cosa ottieni da:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Descrivi la tecnica della memoizzazione (evitando la ripetizione del calcolo) in JavaScript.
  • Perché è chiamata espressione Ternaria, cosa indica la parola “Ternaria”?
  • Cosa è l’arietà di una funzione?
  • Cosa è "use strict";? Quali sono i vantaggi e gli svantaggi nell’usarlo?

####[⬆] Domande Specifiche su jQuery:

  • Spiega la “concatenazione” [chaining].
  • Spiega “deferreds”.
  • Quali sono alcune ottimizzazioni specifiche per jQuery che puoi implementare?
  • Cosa fa .end()?
  • Come, e perché, assegneresti un namespace al gestore di un evento?
  • Citami 4 differenti valori che puoi passare al metodo jQuery.
    • Selettore [selector] (testo), HTML (testo), Callback (funzione), HTMLElement, oggetti, array, element array, oggetto jQuery, ecc…
  • Cosa è la coda di effetti [fx queue]?
  • Qual è la differenza tra .get(), [], e .eq()?
  • Qual è la differenza tra .bind(), .live(), e .delegate()?
  • Qual è la differenza tra $ e $.fn? O anche solo cosa è $.fn.
  • Ottimizza questo selettore:
$(".foo div#bar:eq(0)")

####[⬆] Domande con Codice:

modulo(12, 5) // 2

Domanda: Implementa la funzione modulo che soddisfi quanto sopra

"i'm a lasagna hog".split("").reverse().join("");

Domanda: Quale valore viene ritornato dalla dichiarazione qui sopra?

Risposta: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Domanda: Qual è il valore di window.foo?

Risposta: “bar” (solo se window.foo era falso altrimenti manterrà il suo valore)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Domanda: Qual è il risultato dei due alert qui sopra?

Risposta: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Domanda: Qual è il valore di foo.length?

Risposta: 2

####[⬆] Domande per Divertimento:

  • Qual è la cosa più bella che hai mai sviluppato, di cosa sei più orgoglioso?
  • Quali sono le tue parti preferite degli strumenti di sviluppo che usi?
  • Hai qualche progetto personale? Di che tipo?
  • Qual è la tua feature preferita di Internet Explorer?

####[⬆] Altre Ottime Risorse:

\ No newline at end of file +Domande per il colloquio di lavoro per front-end ★ Front-end Job Interview Questions

Domande per il colloquio di lavoro per front-end

Domande per il colloquio di lavoro per front-end

Questo repository contiene una serie di domande che possono essere usate nei colloqui di lavoro quando si esaminano i potenziali candidati per il ruolo di front-end. Non è affatto consigliato usare ogni singola domanda con lo stesso candidato (richiederebbe ore). Scegliere alcune di queste domande dalla lista dovrebbe aiutarti ad esaminare le skill che richiedi.

L’articolo Baseline For Front-End Developers di Rebecca Murphey è un’ottima risorsa da leggere prima di affrontare un colloquio.

Nota: Tieni presente che molte di queste domande sono a risposta aperta e possono portare a interessanti discussioni che ti possono far capire le capacità di una persona più di quello che farebbe una risposta diretta.

Indice dei Contenuti

  1. Collaboratori Originali
  2. Domande Generali
  3. Domande Specifiche su HTML
  4. Domande Specifiche su CSS
  5. Domande Specifiche su JS
  6. Domande Specifiche su jQuery
  7. Domande con Codice
  8. Domande per Divertimento
  9. Altre Ottime Risorse

####[⬆] Collaboratori Originali:

La maggior parte delle domande sono state prese da una discussione su oksoclap originariamente creata da Paul Irish (@paul_irish) e con il contributo delle seguenti persone:

####[⬆] Domande Generali:

  • Cosa hai imparato ieri/questa settimana?
  • Cosa ti entusiasma o ti interessa della programmazione?
  • Qual è una sfida tecnica che hai incontrato e come l’hai risolta?
  • Quali considerazioni fai riguardo alla UI, alla Sicurezza, alle Prestazioni, al SEO, alla Manutenibilità o alla Tecnologia mentre costruisci una applicazione web o un sito?
  • Parla del tuo ambiente di sviluppo preferito. (Sistema Operativo, Editor di testo, Browser, Strumenti ecc.)
  • Con quali sistemi di controllo di versione [VCS] hai familiarità?
  • Puoi descrivere il tuo metodo di lavoro quando crei una pagina web?
  • Se avessi 5 fogli di stile differenti, come ti comporteresti per integrarli al meglio nel sito?
  • Puoi descrivere la differenza tra miglioramento progressivo [progressive enhancement] e degradazione elegante [graceful degradation]?
  • Come ottimizzeresti le risorse/asset di un sito?
  • Quante risorse scaricherà per volta un browser da uno specifico dominio?
    • Quali sono le eccezioni?
  • Citami 3 modi per diminuire il caricamento della pagina. (percepito o effettivo tempo di caricamento)
  • Se cominci a lavorare su un progetto già iniziato dove vengono usati tab invece di spazi, cosa fai?
  • Descrivi come creeresti una semplice pagina con slideshow.
  • Se avessi la possibilità id diventare esperto in una tecnologia, quale sceglieresti?
  • Spiega l’importanza degli standard e degli enti di normazione.
  • Cosa è il FOUC? Come eviti il FOUC?
  • Spiega cosa sono ARIA e lettori di schermo [screenreaders] e come rendere un sito web accessibile.
  • Spiega alcuni dei pro e contro delle animazioni CSS rispetto alle animazioni Javascript.

####[⬆] Domande su HTML:

  • Cosa fa il doctype?
  • Qual è la differenza tra standard mode e quirks mode?
  • Qual è la differenza tra HTML e XHTML?
  • Ci sono dei problemi a servire le pagine come application/xhtml+xml?
  • Come servi una pagina con il contenuto in più lingue?
  • A cosa devi far attenzione quando progetti o sviluppi siti multilingua?
  • Per cosa sono utili gli attributi data-?
  • Considera HTML5 come una piattaforma web aperta. Quali sono i mattoni di HTML5?
  • Descrivi le differenze tra cookie, sessionStorage e localStorage.
  • Descrivi la differenza tra <script>, <script async> e <script defer>.
  • Perche è generalmente una buona idea posizionare CSS <link> tags all’interno di <head></head> e Javascript <script> tags appena prima di </body>? Conosci eccezioni?
  • Cos’è il rendering progressivo [progressive rendering]?
  • Hai mai utilizzato differeti liguaggi di templating HTML prima?

####[⬆] Domande Specifiche su CSS:

  • Descrivi cosa fa un file CSS “reset” e in cosa è utile.
  • Descrivi i Float e come funzionano.
  • Quali sono le varie tecniche di clearing e quale è appropriata per quale contesto?
  • Spiega gli sprite CSS, e come li implementeresti in una pagina o in un sito.
  • Quali sono le tue tecniche di sostituzione immagini [image replacement] preferite e quale usi quando?
  • Hack delle proprietà CSS, file .css inclusi con condizioni, o… altro?
  • Come servi le tue pagine per i browser con funzionalità limitate?
    • Che tecniche/processi usi?
  • Quali sono i vari modi per nascondere visualmente il contenuto (e renderlo disponibile solo per gli screen reader)?
  • Hai mai usato un sistema di griglie [grid system], e se sì, qual è il tuo preferito?
  • Hai mai usato o implementato media queries o CSS/layout specifici per mobile?
  • Familiarità con lo styling SVG?
  • Come ottimizzi le tue pagine web per la stampa?
  • Quali sono alcuni dei “trucchi” per scrivere CSS efficiente?
  • Quali sono i vantaggi/svantaggi nell’usare i preprocessori CSS? (SASS, Compass, Stylus, LESS)
    • Se sì, descrivi cosa ti piace e cosa non ti piace dei preprocessori CSS che hai usato.
  • Come implementeresti una grafica web che usa font non standard?
    • Webfonts (servizi di font tipo: Google Webfonts, Typekit, ecc…)
  • Spiega come un browser determina quali elementi corrispondono a un selettore CSS.
  • Spiega la tua comprensione del box model e come useresti i CSS per dire al browser di rappresentare il tuo layout nei vari box model.

####[⬆] Domande Specifiche su JS:

  • Spiega l’event delegation.
  • Spiega come funziona this in JavaScript.
  • Spiega come funziona l’ereditarietà prototipale [prototypal inheritance].
  • Come fai a testare il tuo codice JavaScript?
  • AMD contro CommonJS?
  • Cosa è una hashtable?
  • Spiega perché il seguente codice non funziona come UN IIFE: function foo(){ }();.
    • Cosa c’è bisogno di cambiare per renderlo correttamente un IIFE?
  • Quale è la differenza tra una variabile che è: null, undefined or undeclared?
    • Come faresti per controllare questi stati?
  • Cosa è una chiusura [closure], e come/perché ne useresti una?
  • Qual è l’uso tipico di una funzione anonima?
  • Spiega il “JavaScript module pattern” e quando lo useresti.
    • Punti bonus se menziona namespacing pulito.
    • E se i tuoi moduli sono senza namespace?
  • Come organizzi il tuo codice? (module pattern, ereditarietà classica?)
  • Qual è la differenza tra oggetti host e oggetti nativi?
  • Differenza tra: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual è la differenza tra .call e .apply?
  • Spiega Function.prototype.bind?
  • Quando ottimizzi il tuo codice?
  • Puoi spiegare come funziona l’ereditarietà in JavaScript?
  • Quando useresti document.write()?
    • La maggior parte delle pubblicità usa document.write() sebbene il suo utilizzo venga malvisto
  • Qual è la differenza tra il rilevamento di funzionalità [feature detection], la deduzione di funzionalità [feature inference], e l’uso della stringa UA
  • Spiega AJAX nel modo più dettagliato possibile
  • Spiega come funziona JSONP (e come non è veramente AJAX)
  • Hai mai usato il templating JavaScript?
    • Se se sì, quali librerie hai utilizzato? (Mustache.js, Handlebars ecc…)
  • Spiega “hoisting”.
  • Descrivi l’event bubbling.
  • Qual è la differenza tra un “attribute” e una “property”?
  • Perché extending built negli oggetti JavaScript non è una buona idea?
  • Perché extending built è una buona idea?
  • Differenza tra l’evento document load e l’evento document ready?
  • Qual è la differenza tra == e ===?
  • Spiega come prenderesti il parametro query string dall’URL della finestra del browser.
  • Spiega la policy “stessa origine” [same-origin] per quanto riguarda JavaScript.
  • Descrivi i pattern di ereditarietà in JavaScript.
  • Cosa ottieni da:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Descrivi la tecnica della memoizzazione (evitando la ripetizione del calcolo) in JavaScript.
  • Perché è chiamata espressione Ternaria, cosa indica la parola “Ternaria”?
  • Cosa è l’arietà di una funzione?
  • Cosa è "use strict";? Quali sono i vantaggi e gli svantaggi nell’usarlo?

####[⬆] Domande Specifiche su jQuery:

  • Spiega la “concatenazione” [chaining].
  • Spiega “deferreds”.
  • Quali sono alcune ottimizzazioni specifiche per jQuery che puoi implementare?
  • Cosa fa .end()?
  • Come, e perché, assegneresti un namespace al gestore di un evento?
  • Citami 4 differenti valori che puoi passare al metodo jQuery.
    • Selettore [selector] (testo), HTML (testo), Callback (funzione), HTMLElement, oggetti, array, element array, oggetto jQuery, ecc…
  • Cosa è la coda di effetti [fx queue]?
  • Qual è la differenza tra .get(), [], e .eq()?
  • Qual è la differenza tra .bind(), .live(), e .delegate()?
  • Qual è la differenza tra $ e $.fn? O anche solo cosa è $.fn.
  • Ottimizza questo selettore:
$(".foo div#bar:eq(0)")

####[⬆] Domande con Codice:

modulo(12, 5) // 2

Domanda: Implementa la funzione modulo che soddisfi quanto sopra

"i'm a lasagna hog".split("").reverse().join("");

Domanda: Quale valore viene ritornato dalla dichiarazione qui sopra?

Risposta: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Domanda: Qual è il valore di window.foo?

Risposta: “bar” (solo se window.foo era falso altrimenti manterrà il suo valore)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Domanda: Qual è il risultato dei due alert qui sopra?

Risposta: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Domanda: Qual è il valore di foo.length?

Risposta: 2

####[⬆] Domande per Divertimento:

  • Qual è la cosa più bella che hai mai sviluppato, di cosa sei più orgoglioso?
  • Quali sono le tue parti preferite degli strumenti di sviluppo che usi?
  • Hai qualche progetto personale? Di che tipo?
  • Qual è la tua feature preferita di Internet Explorer?

####[⬆] Altre Ottime Risorse:

\ No newline at end of file diff --git a/_site/translations/japanese/index.html b/_site/translations/japanese/index.html index ccbba85e9..6b9e7a628 100644 --- a/_site/translations/japanese/index.html +++ b/_site/translations/japanese/index.html @@ -1 +1 @@ -フロントエンドデベロッパー面接時の質問事項 ★ Front-end Job Interview Questions

フロントエンドデベロッパー面接時の質問事項

フロントエンドデベロッパー面接時の質問事項

@バージョン 2.0.0

本レポジトリはフロントエンドデベロッパー志願者のポテンシャルを見極めるのに有効な面接時の質問事項を列挙します。全ての下記質問事項を一人の志願者に聞くことは推奨されません(それは数時間もかかってしまうでしょう)。あなたが必要としているスキルを見極めるためには、下記の質問リストからいくつかの項目を選択するのがよいでしょう。

Rebecca MurpheyBaseline For Front-End Developersもとても参考になるので面接前によく読むことをおすすめします。

注意: これらの質問の多くはオープンエンド型の質問であり、志願者から興味深い考えを引き出すことができるでしょう。この回答は単純でストレートな回答よりもより志願者の能力を見極めるのに役立ちます。

オリジナルのコントリビューター

質問の多くはPaul Irish (@paul_irish)と下記のコントリビューターによって作成されたoksoclapスレッドをもとに作成されています。

一般的な質問事項

  • 昨日・今週に何を学びましたか?
  • 何があなたをコーディングに惹きつけていますか?
  • 最近直面した技術的な困難はどんなものですか?また、それをどのように解決しましたか?
  • ウェブアプリやウェブサイトを構築する際にユーザーインターフェース、パフォーマンス、SEO、メンテナンス性などについてどのように考えますか?
  • 好きな開発環境について教えてください。(OS、エディタ、ブラウザ、ツール等)
  • webページを作るときのあなたのワークフローを教えてください。
  • どのバージョン管理ツールに慣れていますか?(Git, SVNなど)
  • 5つの異なるスタイルシートをウェブサイトに統合する最適な方法はどんなものですか?
  • プログレッシブエンハンスメントとグレースフルデグラデーションの違いを説明してください。
  • ウェブサイトのアセット・リソースの最適化をどのように行いますか?
    • 下記のようないくつかのソリューションが期待されます。
      • ファイル結合
      • ファイルの縮小
      • CDNホスティング
      • キャッシュ利用
      • など
  • 複数のドメインからアセットを提供したほうがよい理由は何ですか?
  • 一度にブラウザが与えられたドメインからダウンロードできるリソースの数はいくつですか?
    • 例外は何ですか?
  • ページロードを減らす3つの方法を挙げてください。
  • プロジェクトに加入したときに、もし彼らがタブを使い、あなたがスペースを使っていたとしたらどうしますか?
    • EditorConfig (http://editorconfig.org) といったプラグインを利用するように提案する
    • 慣習に従う (一貫性を保つ)
    • issue :retab! command
  • シンプルなスライドショーのページを書いてください。
    • JSを使わなかったらボーナスポイント。
  • コードのパフォーマンスをテストするのにどんなツールを使いますか?
    • プロファイラー、JSPerf、Dromaeo
  • もし今年1つの技術をマスターできるとしたら、何をマスターしますか?
  • 標準化と標準化団体の重要性を説明してください。
  • FOUCとは何ですか? どのようにFOUCを防ぐことができますか?
  • ARIAとスクリーンリーダーとはなにか、またそれらがウェブサイトをどのようにアクセシブルにするか説明してください。
  • CSSアニメーションとJavaScriptアニメーションのそれぞれの利点と欠点を幾つか説明してください。
  • CORSとは何の省略ですか?また、それはどんな問題を表しますか?

HTMLに関する質問事項

  • doctypeは何をしているか説明してください。
  • スタンダードモードとクアークスモードの違いは何ですか?
  • XHTMLページを提供するときの制限は何ですか?
    • application/xhtml+xmlとしてページを提供することに何か問題はありますか?
  • 多言語でコンテンツをどのように提供しますか?
    • 多言語化サイトのデザイン・開発時にどのようなことに注意すべきですか?
  • data-属性は何にとって良いですか?
  • HTML5をオープンなWEBプラットフォームとしてみなしましょう。HTML5の基本的な構成要素は何ですか?
  • クッキー、セッションストレージ、ローカルストレージの違いを述べてください。

JSに関する質問事項

  • イベントデリゲーションを説明してください。
  • JavaScriptにおいてthisがどのように機能するか説明してください。
  • プロトタイプ継承がどのように機能するか説明してください。
  • JavaScriptをテストするのにどのように対処しますか?
  • AMDとCommonJS、何が違いますか?
  • ハッシュテーブルとは何ですか?
  • undefinedundeclared変数は何ですか?
  • クロージャとは何ですか? どのように、そしてなぜそれを使うのですか?
    • クロージャを作成するときに使うあなたの好きなパターンは何ですか? (即時実行関数表現にのみ適用)
  • 匿名関数が有効な典型的なユースケースは何ですか?
  • 「JavaScriptモジュールパターン」とそれを使う場面を説明してください。
    • 名前空間について述べたらボーナスポイント。
    • もしモジュールが名前空間無しだとしたらどうなりますか?
  • コードをどのように整理しますか?(モジュールパターン、古典的な継承を使う?)
  • ホストオブジェクトとネイティブオブジェクトの違いは何ですか?
  • 下記コードの違いは何?function Person(){}, var person = Person(), var person = new Person()
  • .call.applyの違いは何ですか?
  • Function.prototype.bindを説明してください。
  • いつコードを最適化しますか?
  • JavaScriptにおいてどのように継承が機能しているか説明してください。
  • document.write()はいつ使いますか?
    • 生成される広告の多くはいまだに嫌われている方法であるdocument.write()を活用しています。
  • feature detection, feature inference, UA stringの使用の違いは何ですか?
  • AJAXをできるだけ詳しく述べてください。
  • JSONPがどのように機能するか述べてください。(またそれがどのようにAJAXとは異なっているのか)
  • JavaScriptテンプレートは使ったことはありますか?
    • 使ったことがあるのなら、何のライブラリを使いましたか?(Mustache.js, Handlebarsなど)
  • 「巻き上げ」を説明してください。
  • イベントバブリングを説明してください。
  • 「属性」と「プロパティ」の違いは何ですか?
  • どうしてビルトインJavaScriptを拡張することは良くないのですか?
  • ドキュメントロードイベントとドキュメントレディイベントの違いを述べてください。
  • =====の違いは何ですか?
  • ブラウザのウィンドウURLからクエリ文字列をどのように取得するかを説明してください。
  • JSに関するsame-origin policyを説明してください。
  • JavaScriptにおける継承パターンを述べてください。
  • 下記を動くように書き変えてください。
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • JavaScriptにおけるメモ化(計算の繰り返しの回避)の方針について述べてください。
  • 三項演算子と呼ばれる理由は何ですか? 「三項」という言葉が示していることは何ですか?
  • 関数のarityとは何ですか?
  • "use strict";とは何ですか? これを使うことのメリット、デメリットは何ですか?

JSコードの例

~~3.14

質問: 上ステートメントで得られる値は何ですか?
回答: 3

"i'm a lasagna hog".split("").reverse().join("");

質問: 上ステートメントで得られる値は何ですか?
回答: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

質問: window.fooの値は何ですか?
回答: "bar"
window.fooがfalseと判断される場合のみ。trueの場合はその値を保持し続ける。

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

質問: 上2つのアラートの結果はどうなりますか?
回答: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

質問: foo.lengthの値はどうなりますか?
回答: 2

var foo = {};
foo.bar = 'hello';

質問: foo.lengthの値はどうなりますか?
回答: undefined

jQueryに関する質問事項

  • 「chaining(チェイン)」を説明してください。
  • 「deferreds」を説明してください。
  • jQueryに関する最適化としてどんなことができますか?
  • .end()は何ですか?
  • イベントハンドラに名前空間を与えるにはどのようにすればいいですか。またなぜ名前空間を与えますか。
  • jQueryメソッドに渡すことができる4つの異なる値を挙げてください。
    • セレクター (string)、HTML (string)、コールバック (function)、HTMLエレメント、オブジェクト、配列、エレメントの配列、jQueryオブジェクト等
  • エフェクト(あるいはfx)キューとは何ですか?
  • .get()[].eq()の違いは何ですか?
  • .bind().live().delegate()の違いは何ですか?
  • $$.fnの違いは何ですか? 単に$.fnと書いた場合はどうですか?
  • 下記のセレクターを最適化してください:
$(".foo div#bar:eq(0)")
  • delegate()live()の違いは何ですか?

CSSに関する質問事項

  • ‘reset’ CSSファイルとは何ですか? またその有用性は何ですか?
  • フロートとそれらがどのように機能するかを説明してください。
  • フロートクリアの様々なテクニックは何ですか?その内のどれが適切でそれはどんな状況ですか?
  • CSSスプライトを説明してください。またページやサイトでそれをどのように実装しますか?
  • 1番好きな画像置き換えテクニックは何ですか?またいつどのテクニックを使いますか?
  • .cssファイルに含み得るCSSハックは何ですか?また.cssファイル以外ではどうしますか?
  • 機能が制限されたブラウザに対してどのようにページを提供しますか?
    • どんなテクニック、プロセスを使いますか?
  • コンテンツを視覚的に見えなくするのにどんな方法がありますか?(またスクリーンリーダーユーザーのみに見えるようにする方法は何ですか?)
  • グリッドシステムを使ったことはありますか? 使い続けたいと思いましたか?
  • メディアクエリ、あるいはモバイルに特化したレイアウト、CSSを組んだことはありますか?
  • SVGのスタイリングの知識は何かしら持っていますか?
  • 印刷用ページの最適化はどのように行いますか?
  • CSS記述における「gotchas(見落としがちなミス)」は何ですか?
  • CSSプリプロセッサのメリット、デメリットは何ですか?(SASS、Compass、Stylus、LESS)
    • 使ったことのあるCSSプリプロセッサについてそれの好きなところ、嫌いなところを説明してください。
  • 非標準のフォントを使用したwebデザインカンプをどのように実装しますか?
    • ウェブフォント(Googleウェブフォント、Typekit 等)
  • ブラウザがどのようにあるエレメントがどのCSSセレクタにマッチするかを決定しているかを説明してください。

その他の質問事項

  • あなたがコーディングした中で一番素晴らしいものは何ですか? 何が一番誇れますか?
  • あなたが使っている開発者ツールの一番好きなところは何ですか?
  • 何か暖めてるアイディアは持っていますか? それはどんなものですか?
  • インターネットエクスプローラーの最も好きな機能は何ですか?
\ No newline at end of file +フロントエンドデベロッパー面接時の質問事項 ★ Front-end Job Interview Questions

フロントエンドデベロッパー面接時の質問事項

フロントエンドデベロッパー面接時の質問事項

@バージョン 2.0.0

本レポジトリはフロントエンドデベロッパー志願者のポテンシャルを見極めるのに有効な面接時の質問事項を列挙します。全ての下記質問事項を一人の志願者に聞くことは推奨されません(それは数時間もかかってしまうでしょう)。あなたが必要としているスキルを見極めるためには、下記の質問リストからいくつかの項目を選択するのがよいでしょう。

Rebecca MurpheyBaseline For Front-End Developersもとても参考になるので面接前によく読むことをおすすめします。

注意: これらの質問の多くはオープンエンド型の質問であり、志願者から興味深い考えを引き出すことができるでしょう。この回答は単純でストレートな回答よりもより志願者の能力を見極めるのに役立ちます。

オリジナルのコントリビューター

質問の多くはPaul Irish (@paul_irish)と下記のコントリビューターによって作成されたoksoclapスレッドをもとに作成されています。

一般的な質問事項

  • 昨日・今週に何を学びましたか?
  • 何があなたをコーディングに惹きつけていますか?
  • 最近直面した技術的な困難はどんなものですか?また、それをどのように解決しましたか?
  • ウェブアプリやウェブサイトを構築する際にユーザーインターフェース、パフォーマンス、SEO、メンテナンス性などについてどのように考えますか?
  • 好きな開発環境について教えてください。(OS、エディタ、ブラウザ、ツール等)
  • webページを作るときのあなたのワークフローを教えてください。
  • どのバージョン管理ツールに慣れていますか?(Git, SVNなど)
  • 5つの異なるスタイルシートをウェブサイトに統合する最適な方法はどんなものですか?
  • プログレッシブエンハンスメントとグレースフルデグラデーションの違いを説明してください。
  • ウェブサイトのアセット・リソースの最適化をどのように行いますか?
    • 下記のようないくつかのソリューションが期待されます。
      • ファイル結合
      • ファイルの縮小
      • CDNホスティング
      • キャッシュ利用
      • など
  • 複数のドメインからアセットを提供したほうがよい理由は何ですか?
  • 一度にブラウザが与えられたドメインからダウンロードできるリソースの数はいくつですか?
    • 例外は何ですか?
  • ページロードを減らす3つの方法を挙げてください。
  • プロジェクトに加入したときに、もし彼らがタブを使い、あなたがスペースを使っていたとしたらどうしますか?
    • EditorConfig (http://editorconfig.org) といったプラグインを利用するように提案する
    • 慣習に従う (一貫性を保つ)
    • issue :retab! command
  • シンプルなスライドショーのページを書いてください。
    • JSを使わなかったらボーナスポイント。
  • コードのパフォーマンスをテストするのにどんなツールを使いますか?
    • プロファイラー、JSPerf、Dromaeo
  • もし今年1つの技術をマスターできるとしたら、何をマスターしますか?
  • 標準化と標準化団体の重要性を説明してください。
  • FOUCとは何ですか? どのようにFOUCを防ぐことができますか?
  • ARIAとスクリーンリーダーとはなにか、またそれらがウェブサイトをどのようにアクセシブルにするか説明してください。
  • CSSアニメーションとJavaScriptアニメーションのそれぞれの利点と欠点を幾つか説明してください。
  • CORSとは何の省略ですか?また、それはどんな問題を表しますか?

HTMLに関する質問事項

  • doctypeは何をしているか説明してください。
  • スタンダードモードとクアークスモードの違いは何ですか?
  • XHTMLページを提供するときの制限は何ですか?
    • application/xhtml+xmlとしてページを提供することに何か問題はありますか?
  • 多言語でコンテンツをどのように提供しますか?
    • 多言語化サイトのデザイン・開発時にどのようなことに注意すべきですか?
  • data-属性は何にとって良いですか?
  • HTML5をオープンなWEBプラットフォームとしてみなしましょう。HTML5の基本的な構成要素は何ですか?
  • クッキー、セッションストレージ、ローカルストレージの違いを述べてください。

JSに関する質問事項

  • イベントデリゲーションを説明してください。
  • JavaScriptにおいてthisがどのように機能するか説明してください。
  • プロトタイプ継承がどのように機能するか説明してください。
  • JavaScriptをテストするのにどのように対処しますか?
  • AMDとCommonJS、何が違いますか?
  • ハッシュテーブルとは何ですか?
  • undefinedundeclared変数は何ですか?
  • クロージャとは何ですか? どのように、そしてなぜそれを使うのですか?
    • クロージャを作成するときに使うあなたの好きなパターンは何ですか? (即時実行関数表現にのみ適用)
  • 匿名関数が有効な典型的なユースケースは何ですか?
  • 「JavaScriptモジュールパターン」とそれを使う場面を説明してください。
    • 名前空間について述べたらボーナスポイント。
    • もしモジュールが名前空間無しだとしたらどうなりますか?
  • コードをどのように整理しますか?(モジュールパターン、古典的な継承を使う?)
  • ホストオブジェクトとネイティブオブジェクトの違いは何ですか?
  • 下記コードの違いは何?function Person(){}, var person = Person(), var person = new Person()
  • .call.applyの違いは何ですか?
  • Function.prototype.bindを説明してください。
  • いつコードを最適化しますか?
  • JavaScriptにおいてどのように継承が機能しているか説明してください。
  • document.write()はいつ使いますか?
    • 生成される広告の多くはいまだに嫌われている方法であるdocument.write()を活用しています。
  • feature detection, feature inference, UA stringの使用の違いは何ですか?
  • AJAXをできるだけ詳しく述べてください。
  • JSONPがどのように機能するか述べてください。(またそれがどのようにAJAXとは異なっているのか)
  • JavaScriptテンプレートは使ったことはありますか?
    • 使ったことがあるのなら、何のライブラリを使いましたか?(Mustache.js, Handlebarsなど)
  • 「巻き上げ」を説明してください。
  • イベントバブリングを説明してください。
  • 「属性」と「プロパティ」の違いは何ですか?
  • どうしてビルトインJavaScriptを拡張することは良くないのですか?
  • ドキュメントロードイベントとドキュメントレディイベントの違いを述べてください。
  • =====の違いは何ですか?
  • ブラウザのウィンドウURLからクエリ文字列をどのように取得するかを説明してください。
  • JSに関するsame-origin policyを説明してください。
  • JavaScriptにおける継承パターンを述べてください。
  • 下記を動くように書き変えてください。
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • JavaScriptにおけるメモ化(計算の繰り返しの回避)の方針について述べてください。
  • 三項演算子と呼ばれる理由は何ですか? 「三項」という言葉が示していることは何ですか?
  • 関数のarityとは何ですか?
  • "use strict";とは何ですか? これを使うことのメリット、デメリットは何ですか?

JSコードの例

~~3.14

質問: 上ステートメントで得られる値は何ですか?
回答: 3

"i'm a lasagna hog".split("").reverse().join("");

質問: 上ステートメントで得られる値は何ですか?
回答: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

質問: window.fooの値は何ですか?
回答: "bar"
window.fooがfalseと判断される場合のみ。trueの場合はその値を保持し続ける。

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

質問: 上2つのアラートの結果はどうなりますか?
回答: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

質問: foo.lengthの値はどうなりますか?
回答: 2

var foo = {};
foo.bar = 'hello';

質問: foo.lengthの値はどうなりますか?
回答: undefined

jQueryに関する質問事項

  • 「chaining(チェイン)」を説明してください。
  • 「deferreds」を説明してください。
  • jQueryに関する最適化としてどんなことができますか?
  • .end()は何ですか?
  • イベントハンドラに名前空間を与えるにはどのようにすればいいですか。またなぜ名前空間を与えますか。
  • jQueryメソッドに渡すことができる4つの異なる値を挙げてください。
    • セレクター (string)、HTML (string)、コールバック (function)、HTMLエレメント、オブジェクト、配列、エレメントの配列、jQueryオブジェクト等
  • エフェクト(あるいはfx)キューとは何ですか?
  • .get()[].eq()の違いは何ですか?
  • .bind().live().delegate()の違いは何ですか?
  • $$.fnの違いは何ですか? 単に$.fnと書いた場合はどうですか?
  • 下記のセレクターを最適化してください:
$(".foo div#bar:eq(0)")
  • delegate()live()の違いは何ですか?

CSSに関する質問事項

  • ‘reset’ CSSファイルとは何ですか? またその有用性は何ですか?
  • フロートとそれらがどのように機能するかを説明してください。
  • フロートクリアの様々なテクニックは何ですか?その内のどれが適切でそれはどんな状況ですか?
  • CSSスプライトを説明してください。またページやサイトでそれをどのように実装しますか?
  • 1番好きな画像置き換えテクニックは何ですか?またいつどのテクニックを使いますか?
  • .cssファイルに含み得るCSSハックは何ですか?また.cssファイル以外ではどうしますか?
  • 機能が制限されたブラウザに対してどのようにページを提供しますか?
    • どんなテクニック、プロセスを使いますか?
  • コンテンツを視覚的に見えなくするのにどんな方法がありますか?(またスクリーンリーダーユーザーのみに見えるようにする方法は何ですか?)
  • グリッドシステムを使ったことはありますか? 使い続けたいと思いましたか?
  • メディアクエリ、あるいはモバイルに特化したレイアウト、CSSを組んだことはありますか?
  • SVGのスタイリングの知識は何かしら持っていますか?
  • 印刷用ページの最適化はどのように行いますか?
  • CSS記述における「gotchas(見落としがちなミス)」は何ですか?
  • CSSプリプロセッサのメリット、デメリットは何ですか?(SASS、Compass、Stylus、LESS)
    • 使ったことのあるCSSプリプロセッサについてそれの好きなところ、嫌いなところを説明してください。
  • 非標準のフォントを使用したwebデザインカンプをどのように実装しますか?
    • ウェブフォント(Googleウェブフォント、Typekit 等)
  • ブラウザがどのようにあるエレメントがどのCSSセレクタにマッチするかを決定しているかを説明してください。

その他の質問事項

  • あなたがコーディングした中で一番素晴らしいものは何ですか? 何が一番誇れますか?
  • あなたが使っている開発者ツールの一番好きなところは何ですか?
  • 何か暖めてるアイディアは持っていますか? それはどんなものですか?
  • インターネットエクスプローラーの最も好きな機能は何ですか?
\ No newline at end of file diff --git a/_site/translations/korean/index.html b/_site/translations/korean/index.html index 7dc423ed4..d821d65b6 100644 --- a/_site/translations/korean/index.html +++ b/_site/translations/korean/index.html @@ -1 +1 @@ -프론트엔드 면접 문제 은행 ★ Front-end Job Interview Questions

프론트엔드 면접 문제 은행

프론트엔드 면접 문제 은행

이 파일에는 잠재적인 프론트엔드 개발자 후보를 선정할 때 사용할 수 있는 여러 가지 면접 질문들이 있습니다. 후보자에게 모든 문제를 사용하는 것은 많은 시간이 소요되기 때문에 추천하지 않습니다. 대신, 여러분이 요구하는 주요 기술과 관련된 질문들을 몇 가지 선정해서 사용해보세요.

참고: 여기 있는 많은 질문은 자유롭게 추가/수정/삭제될 수 있고 정답보다 그 사람의 능력에 관해 이야기하는 흥미로는 토론을 끌어낼 수 있다는 것을 기억하세요.

목차

  1. 일반적인 질문
  2. HTML 관련 질문
  3. CSS 관련 질문
  4. JS 관련 질문
  5. 테스트 관련 질문
  6. 성능 관련 질문
  7. 코딩 관련 질문

함께하기

  1. 함께하는 분들
  2. 함께하는 방법
  3. 라이선스

일반적인 질문:

  • 어제/이번 주에 무엇을 공부하셨나요?
  • 코딩을 할 때 당신을 들뜨게 하거나 흥미를 끄는 것들은 무엇은 가요?
  • 최근에 당신이 경험한 기술적인 문제는 무엇이고 그것을 어떻게 해결했나요?
  • 웹 애플리케이션이나 사이트를 만들 때 고려해야 할 UI, Security, Performance, SEO, Maintainability에 대해서 설명해주세요.
  • 선호하는 개발 환경에 대해 자유롭게 이야기해 주세요.
  • 버전 관리 시스템은 어떤 것들을 사용해보셨습니까?
  • 당신이 웹 페이지를 만들 때의 과정을 설명해주실 수 있을까요?
  • 당신에게 5가지 다른 stylesheet가 있습니다. 어떤 방법으로 사이트에 제공하는 게 가장 효과적일까요?
  • 점진적 향상법(progressive enhancement)과 우아한 성능저하법(graceful degradation)의 차이를 설명하실 수 있습니까?
  • 웹사이트에서 assets/resources를 최적화하는 방법에 관해 설명해주세요.
  • 브라우저가 한 번에 1개의 도메인에서 내려받는 자원은 몇 개인가요?
    • 예외에는 어떤 것들이 있나요?
  • 페이지 로드 시간을 줄이는 세 가지 방법에 관해서 이야기 해 보세요.
  • 당신이 프로젝트에 합류했습니다. 근데 그들은 Tab을 이용하고, 당신은 Space를 사용했습니다. 어떻게 하실 건가요?
  • 간단한 Slideshow 페이지를 만드는 방법에 관해서 이야기해 보세요.
  • 만약 당신이 올해 기술적 책임자가 되었다면 무엇을 먼저 하시겠습니까?
  • 표준의 중요성에 관해 설명해주세요.
  • Flash of Unstyled Content에 관해 설명해주세요. 또 FOUC를 피하기 위해선 어떻게 해야 하나요?
  • ARIA와 screenreader에 대해 설명해주세요. 또 접근성을 지원하는 웹사이트를 어떻게 만드는지에 대해도 설명해주세요.
  • CSS 애니메이션과 JavaScript 애니메이션의 차이점에 관해 설명해주세요.
  • CORS는 무엇의 약자이고 어떤 문제에 대해서 언급하는 것인가요?

HTML 관련 질문:

  • doctype이 무엇을 하는 것인가요?
  • 표준모드(standards mode)와 쿽스모드(quirks mode)의 다른 점은 무엇인가요?
  • XML과 XHTML의 다른 점은 무엇인가요
  • XHTML을 이용한 페이지의 한계점은 무엇이 있나요?
  • application/xhtml+xml으로 지정한 페이지에 어떠한 문제가 있나요?
  • 다국어가 포함된 페이지는 어떤 방식으로 제공하나요?
  • 다국어 페이지를 제공하는 여러 방법에 관해 설명해주세요.
  • data-속성은 무엇을 하는 것인가요? 사용했을 때 이점은 무엇인가요?
  • HTML5를 오픈 웹 플랫폼(open web platform)으로 생각해본다면, 어떤 것들로 구성돼 있을까요?
  • 쿠키(Cookies)세션저장소(sessionStorage)로컬저장소(localStorage)의 차이점을 설명해주세요.
  • <script>, <script async><script defer>의 차이점에 관해 설명해주세요.
  • CSS<link><head></head>사이에 쓰는 것과 JS<script><body></body>뒤에 사용하는 것은 좋은 사용법일까요? 어디에 배치하는 게 좋을까요?
  • Progressive rendering이란 무엇인가요?
  • 이미지 태그에 srcset 속성을 사용하는 이유는 무엇인가요? 브라우저가 이 속성을 가진 콘텐츠를 평가할 때 사용하는 과정을 설명해보세요.
  • HTML templating language를 사용해 본 경험이 있나요?

CSS 관련 질문:

  • class와 id의 차이점에 관해서 설명해주세요.
  • “reset” CSS가 무엇인지, 어떻게 유용한지 설명해주세요.
  • Floats가 어떻게 동작하는지 설명해주세요.
  • z-index에 관해 설명해주세요.
  • BFC(Block Formatting Context)에 관해 설명해주세요
  • 클리어링(Clearing) 기술에는 어떤 것들이 있으며, 어떨 때 어떻게 사용하는 것이 적절한지 설명하세요.
  • CSS 스프라이트(CSS Sprites)를 설명하고, 페이지나 사이트를 어떻게 향상하는지 설명하세요.
  • Image Replacement를 사용해야 할 때, 선호하는 기술과 언제 사용하는지를 설명해주세요.
  • 브라우저 스펙 차이에 따른 스타일링 이슈를 수정하기 위해서 어떻게 접근하나요?
  • 기능이 제약된 브라우저를 위해서 어떤 방식으로 페이지를 만드나요?
    • 어떠한 기술과 절차를 거치는지 설명하세요.
  • 시각적으로 보이지 않고 스크린 리더에서만 가능하게 하는 방법에 관해 설명해주세요.
  • 그리드 시스템(Grid system)을 사용한 적이 있나요? 있다면 어떠한 것을 선호하나요?
  • 미디어 쿼리(media queries)를 사용한 적이 있나요? 혹은 모바일에 맞는 layout과 CSS를 사용한 적이 있나요?
  • SVG를 스타일링하는데 익숙하신가요?
  • 인쇄하기 위해 웹페이지를 어떻게 최적화 하나요?
  • 효율적인 CSS를 작성하기 위한 "비법(gotchas)"은 어떤 게 있나요?
  • CSS 전처리(CSS preprocessors)를 사용해보셨나요?
    • 그렇다면, 사용 경험에 기반을 둬 좋았던 점과 나빴던 점을 설명해주세요.
  • 페이지에서 표준 폰트가 아닌 폰트 디자인을 사용할 때 어떤 방식으로 처리하시나요? (웹폰트를 제외하고)
  • CSS Selector가 어떠한 원리로 동작하는지 설명해주세요.
  • pseudo-elements에 관해서 설명하고 어디에서 사용되는지 이야기해보세요.
  • box model에 관해 설명하고 브라우저에서 어떻게 동작하는지 설명해주세요.
  • * { box-sizing: border-box; }은 무엇이고 사용했을때 이점은 무엇인가요?
  • 기억나는 display 속성에 대한 값들을 나열해보세요.
  • inline과 inline-block의 차이점은 무엇인가요?
  • 요소를 배치하는 방법(relative, fixed, absolute, static) 간의 차이는 무엇인가요?
  • CSS에서 'C’는 Cascading을 의미합니다. Cascading에 관해서 설명해주세요. 또 cascading system의 장점은 무엇인가요?
  • CSS framework를 사용해본 적이 있으신가요? 실무에서 사용해보았다면 어떤 이점이 있었나요?
  • 새로운 CSS Flexbox 혹은 Grid 스펙을 사용해 보신 적 있나요?
  • 반응형(Responsive) 디자인은 적응형(Adaptive) 디자인과 어떤 차이점이 있나요?
  • 레티나 그래픽 환경에서 작업해 보신 적이 있나요? 하셨다면 어떤 기술을 사용하셨나요?
  • 절대 좌표대신 translate() 혹은 반대로 사용하는 이유가 있나요? 있다면 이유에 관해서 설명해주세요.

JS 관련 질문:

  • event delegation에 관해 설명해주세요.
  • this는 JavaScript에서 어떻게 작동하는지 설명해주세요.
  • prototype 기반 상속은 어떻게 하는지 설명해주세요.
  • AMD와 CommonJS는 무엇이고, 이것들에 대해 어떻게 생각하시나요?
  • 다음 코드가 즉시 호출 함수 표현식(IIFE)로 동작하지 않는 이유에 관해서 설명해보세요: function foo(){ }();.
    • IIFE로 만들기 위해서는 어떻게 해야 하나요?
  • nullunedefined 그리고 undeclared의 차이점은 무엇인가요?
    • 두개를 구분하기 위해서는 어떻게 하면 될까요?
  • 클로져(Closure)는 무엇이며, 어떻게/왜 사용하는지 설명해주세요.
    • 클로져를 만들 때 선호하는 패턴은 무엇인가요? argyle (IIFEs에만 적용할 수 있다)
  • 익명함수(anonymous functions)는 주로 어떤 상황에서 사용하나요?
  • 당신의 코드를 어떻게 구성하는지? (모듈 패턴, 전통적 상속)
  • 호스트 객체(Host Objects)와 네이티브 객체(Native Objects)의 차이점은 무엇인가요?
  • 다음 코드의 차이점은 무엇인가요?
function Person(){} var person = Person() var person = new Person()
  • .call.apply의 차이점은 무엇인가요?
  • Function.prototype.bind을 설명하세요.
  • document.write()는 언제 사용하나요?
  • UA 문자열을 이용하여 기능 검출(feature detection)과 기능 추론(feature inference)의 차이점을 설명하세요.
  • AJAX에 관해 가능한 한 자세히 설명하세요.
  • AJAX를 사용했을 때의 장단점에 대해 설명해주세요.
  • JSON이 어떻게 동작 되는지 설명하세요. (그리고 AJAX와 어떻게 다른지 설명하세요.)
  • 기존에 JavaScript 템플릿을 사용한 적이 있나요? 만약에 있다면, 어떠한 방식으로 사용했는지 말씀해주세요.
  • "호이스팅(Hoisting)"에 대해서 설명하세요.
  • 이벤트 버블링(Event Bubbling)에 대해서 설명하세요.
  • 이벤트 캡쳐링(Event Capturing)에 대해서 설명하세요.
  • "속성(Attribute)"와 "요소(property)"의 차이가 무엇인가요?
  • 내장된 JavaScript 객체를 확장하는 것이 좋지 않은 이유는 무엇인가요?
  • document load event와 DOMContentLoaded event의 차이점은 무엇인가요?
  • =====의 차이점은 무엇인가요?
  • JavaScript의 "동일출처정책(the same-origin policy)"에 대해서 설명하세요.
  • 다음 코드를 동작하게 만드세요.
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • 삼항식(Ternary statement)을 사용하는 이유는 무엇이고, 그것을 표현하기 위한 연산자 단어는 무엇인가요?
  • use strict;은 무엇이고, 사용했을 때 장단점에 관해서 설명해주세요.
  • 100번 반복되는 반복문이 있습니다. 3의 배수일 때는 fizz, 5의 배수일 때는 buzz, 3과 5의 공배수일 때는 fizzbuzz가 출력되는 코드를 작성해보세요.
  • 전역 scope를 사용했을 때 장단점에 관해 설명해주세요.
  • 때때로 load event를 사용하는 이유에 관해 설명해주세요. 또 단점이 있다면 대안에 대해서도 설명해주세요.
  • SPA에서 SEO에 유리하도록 만들기 위한 방법에 대해 설명해주세요.
  • Promise를 사용해 본 경험이 있나요?
  • Promise가 콜백 대비 장/단점은 무엇인지 설명해주세요.
  • JavaScript의 작동방식의 장단점에 관해 설명해주세요.
  • JavaScript를 디버깅할 때 사용하는 도구가 있으면 설명해주세요.
  • 객체 안의 속성과 배열의 아이템을 순회할 때 사용하는 문법에 관해 설명해주세요.
  • mutable object와 immutable object에 관해 설명해주세요.
    • JavaScript에서 immutable 객체의 예를 들어보세요.
    • immutability의 장/단점은 무엇인가요?
    • 자신의 코드에서 불변성(immutability를) 어떻게 달성할 수 있나요?
  • 동기방식과 비동기 방식 함수의 차이에 관해서 설명해주세요.
  • event loop이란 무엇인가요?
    • call stack과 task queue에 관해 설명해주세요.
  • function foo() {}var foo = function() {}에서 foo 의 차이가 무엇인지 설명해보세요.
  • let, var, const의 차이점에 관해서 설명해주세요.

테스트 관련 질문들:

  • test code를 작성하면서 개발하는 방식의 장점과 단점에 대해 설명해주세요.
  • test code를 테스트하는 툴을 사용해보신 경험이 있나요?
  • 유닛 테스트와 함수테스트의 차이점은 무엇인가요?
  • code style linting tool을 사용했을때 장점은 무엇인가요?

성능 관련 질문들:

  • 성능관련 이슈들을 발견하기 위해서 사용하는 방법은 무엇인가요?
  • 웹사이트 scrolling 성능을 향상시키기 위한 몇가지 방법에 대해 설명해보세요.
  • 브라우저의 layout, painting, compositing에 대해 설명해보세요.

네트워크 질문들:

  • 전통적으로, 웹사이트의 assets을 여러 도메인으로 서빙했을 때 장점은 무엇인가요?
  • URL로 접속했을 때 어떤 플로우로 화면에 웹사이트가 그려지는지 네트워크 관점에서 설명해주세요.
  • Long-Polling과 Websocket, Server-Sent Event에 대해 설명해주세요.
  • 다음 request header들에 대해 설명해주세요.
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP와 HTTPS에 대해 설명해주세요.
  • HTTP Method들에 대해 설명해주세요.

코딩 질문:

질문: foo의 값은 무엇인가요?

var foo = 10 + '20';

질문: 아래 코드의 결과값은 무엇인가요?

console.log(0.1 + 0.2 == 0.3);

질문: 아래 코드가 동작하게 하기 위해선 어떻게 해야할까요?

add(2, 5); // 7
add(2)(5); // 7

질문: 아래 구문의 반환값은 무엇인가요?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?
질문: window.foo의 값은 무엇인가요?

( window.foo || ( window.foo = "bar" ) );

질문: 아래 두 alert의 결과값은 무엇인가요?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

질문: foo.length의 값은 무엇인가요?

var foo = [];
foo.push(1);
foo.push(2);

질문: foo.x의 값은 무엇인가요?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

질문: 아래 코드의 출력값은 무엇인가요?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

그 외 흥미로운 질문들:

  • 최근에 수행했던 흥미로운 프로젝트는 무엇인가요?
  • 사용하는 개발 도구에서 마음에 드는 부분은 무엇인가요?
  • 프론트엔드 커뮤니티에서 당신에게 영감을 준 사람이 있다면 누구인가요?
  • 애완동물 관련 프로젝트를 해 보았나요? 해보았다면 어떤 종류의 프로젝트인가요?
  • IE에서 가장 좋아하는 기능은 무엇인가요?
  • 어떤 커피를 좋아하시나요?

함께하는 분들:

이 문서는 2009년에 다음에 언급된 분들과의 협업으로 시작했습니다.
@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

현재는 100이 넘는 개발자들이 함께하고 있습니다.

\ No newline at end of file +프론트엔드 면접 문제 은행 ★ Front-end Job Interview Questions

프론트엔드 면접 문제 은행

프론트엔드 면접 문제 은행

이 파일에는 잠재적인 프론트엔드 개발자 후보를 선정할 때 사용할 수 있는 여러 가지 면접 질문들이 있습니다. 후보자에게 모든 문제를 사용하는 것은 많은 시간이 소요되기 때문에 추천하지 않습니다. 대신, 여러분이 요구하는 주요 기술과 관련된 질문들을 몇 가지 선정해서 사용해보세요.

참고: 여기 있는 많은 질문은 자유롭게 추가/수정/삭제될 수 있고 정답보다 그 사람의 능력에 관해 이야기하는 흥미로는 토론을 끌어낼 수 있다는 것을 기억하세요.

목차

  1. 일반적인 질문
  2. HTML 관련 질문
  3. CSS 관련 질문
  4. JS 관련 질문
  5. 테스트 관련 질문
  6. 성능 관련 질문
  7. 코딩 관련 질문

함께하기

  1. 함께하는 분들
  2. 함께하는 방법
  3. 라이선스

일반적인 질문:

  • 어제/이번 주에 무엇을 공부하셨나요?
  • 코딩을 할 때 당신을 들뜨게 하거나 흥미를 끄는 것들은 무엇은 가요?
  • 최근에 당신이 경험한 기술적인 문제는 무엇이고 그것을 어떻게 해결했나요?
  • 웹 애플리케이션이나 사이트를 만들 때 고려해야 할 UI, Security, Performance, SEO, Maintainability에 대해서 설명해주세요.
  • 선호하는 개발 환경에 대해 자유롭게 이야기해 주세요.
  • 버전 관리 시스템은 어떤 것들을 사용해보셨습니까?
  • 당신이 웹 페이지를 만들 때의 과정을 설명해주실 수 있을까요?
  • 당신에게 5가지 다른 stylesheet가 있습니다. 어떤 방법으로 사이트에 제공하는 게 가장 효과적일까요?
  • 점진적 향상법(progressive enhancement)과 우아한 성능저하법(graceful degradation)의 차이를 설명하실 수 있습니까?
  • 웹사이트에서 assets/resources를 최적화하는 방법에 관해 설명해주세요.
  • 브라우저가 한 번에 1개의 도메인에서 내려받는 자원은 몇 개인가요?
    • 예외에는 어떤 것들이 있나요?
  • 페이지 로드 시간을 줄이는 세 가지 방법에 관해서 이야기 해 보세요.
  • 당신이 프로젝트에 합류했습니다. 근데 그들은 Tab을 이용하고, 당신은 Space를 사용했습니다. 어떻게 하실 건가요?
  • 간단한 Slideshow 페이지를 만드는 방법에 관해서 이야기해 보세요.
  • 만약 당신이 올해 기술적 책임자가 되었다면 무엇을 먼저 하시겠습니까?
  • 표준의 중요성에 관해 설명해주세요.
  • Flash of Unstyled Content에 관해 설명해주세요. 또 FOUC를 피하기 위해선 어떻게 해야 하나요?
  • ARIA와 screenreader에 대해 설명해주세요. 또 접근성을 지원하는 웹사이트를 어떻게 만드는지에 대해도 설명해주세요.
  • CSS 애니메이션과 JavaScript 애니메이션의 차이점에 관해 설명해주세요.
  • CORS는 무엇의 약자이고 어떤 문제에 대해서 언급하는 것인가요?

HTML 관련 질문:

  • doctype이 무엇을 하는 것인가요?
  • 표준모드(standards mode)와 쿽스모드(quirks mode)의 다른 점은 무엇인가요?
  • XML과 XHTML의 다른 점은 무엇인가요
  • XHTML을 이용한 페이지의 한계점은 무엇이 있나요?
  • application/xhtml+xml으로 지정한 페이지에 어떠한 문제가 있나요?
  • 다국어가 포함된 페이지는 어떤 방식으로 제공하나요?
  • 다국어 페이지를 제공하는 여러 방법에 관해 설명해주세요.
  • data-속성은 무엇을 하는 것인가요? 사용했을 때 이점은 무엇인가요?
  • HTML5를 오픈 웹 플랫폼(open web platform)으로 생각해본다면, 어떤 것들로 구성돼 있을까요?
  • 쿠키(Cookies)세션저장소(sessionStorage)로컬저장소(localStorage)의 차이점을 설명해주세요.
  • <script>, <script async><script defer>의 차이점에 관해 설명해주세요.
  • CSS<link><head></head>사이에 쓰는 것과 JS<script><body></body>뒤에 사용하는 것은 좋은 사용법일까요? 어디에 배치하는 게 좋을까요?
  • Progressive rendering이란 무엇인가요?
  • 이미지 태그에 srcset 속성을 사용하는 이유는 무엇인가요? 브라우저가 이 속성을 가진 콘텐츠를 평가할 때 사용하는 과정을 설명해보세요.
  • HTML templating language를 사용해 본 경험이 있나요?

CSS 관련 질문:

  • class와 id의 차이점에 관해서 설명해주세요.
  • “reset” CSS가 무엇인지, 어떻게 유용한지 설명해주세요.
  • Floats가 어떻게 동작하는지 설명해주세요.
  • z-index에 관해 설명해주세요.
  • BFC(Block Formatting Context)에 관해 설명해주세요
  • 클리어링(Clearing) 기술에는 어떤 것들이 있으며, 어떨 때 어떻게 사용하는 것이 적절한지 설명하세요.
  • CSS 스프라이트(CSS Sprites)를 설명하고, 페이지나 사이트를 어떻게 향상하는지 설명하세요.
  • Image Replacement를 사용해야 할 때, 선호하는 기술과 언제 사용하는지를 설명해주세요.
  • 브라우저 스펙 차이에 따른 스타일링 이슈를 수정하기 위해서 어떻게 접근하나요?
  • 기능이 제약된 브라우저를 위해서 어떤 방식으로 페이지를 만드나요?
    • 어떠한 기술과 절차를 거치는지 설명하세요.
  • 시각적으로 보이지 않고 스크린 리더에서만 가능하게 하는 방법에 관해 설명해주세요.
  • 그리드 시스템(Grid system)을 사용한 적이 있나요? 있다면 어떠한 것을 선호하나요?
  • 미디어 쿼리(media queries)를 사용한 적이 있나요? 혹은 모바일에 맞는 layout과 CSS를 사용한 적이 있나요?
  • SVG를 스타일링하는데 익숙하신가요?
  • 인쇄하기 위해 웹페이지를 어떻게 최적화 하나요?
  • 효율적인 CSS를 작성하기 위한 "비법(gotchas)"은 어떤 게 있나요?
  • CSS 전처리(CSS preprocessors)를 사용해보셨나요?
    • 그렇다면, 사용 경험에 기반을 둬 좋았던 점과 나빴던 점을 설명해주세요.
  • 페이지에서 표준 폰트가 아닌 폰트 디자인을 사용할 때 어떤 방식으로 처리하시나요? (웹폰트를 제외하고)
  • CSS Selector가 어떠한 원리로 동작하는지 설명해주세요.
  • pseudo-elements에 관해서 설명하고 어디에서 사용되는지 이야기해보세요.
  • box model에 관해 설명하고 브라우저에서 어떻게 동작하는지 설명해주세요.
  • * { box-sizing: border-box; }은 무엇이고 사용했을때 이점은 무엇인가요?
  • 기억나는 display 속성에 대한 값들을 나열해보세요.
  • inline과 inline-block의 차이점은 무엇인가요?
  • 요소를 배치하는 방법(relative, fixed, absolute, static) 간의 차이는 무엇인가요?
  • CSS에서 'C’는 Cascading을 의미합니다. Cascading에 관해서 설명해주세요. 또 cascading system의 장점은 무엇인가요?
  • CSS framework를 사용해본 적이 있으신가요? 실무에서 사용해보았다면 어떤 이점이 있었나요?
  • 새로운 CSS Flexbox 혹은 Grid 스펙을 사용해 보신 적 있나요?
  • 반응형(Responsive) 디자인은 적응형(Adaptive) 디자인과 어떤 차이점이 있나요?
  • 레티나 그래픽 환경에서 작업해 보신 적이 있나요? 하셨다면 어떤 기술을 사용하셨나요?
  • 절대 좌표대신 translate() 혹은 반대로 사용하는 이유가 있나요? 있다면 이유에 관해서 설명해주세요.

JS 관련 질문:

  • event delegation에 관해 설명해주세요.
  • this는 JavaScript에서 어떻게 작동하는지 설명해주세요.
  • prototype 기반 상속은 어떻게 하는지 설명해주세요.
  • AMD와 CommonJS는 무엇이고, 이것들에 대해 어떻게 생각하시나요?
  • 다음 코드가 즉시 호출 함수 표현식(IIFE)로 동작하지 않는 이유에 관해서 설명해보세요: function foo(){ }();.
    • IIFE로 만들기 위해서는 어떻게 해야 하나요?
  • nullunedefined 그리고 undeclared의 차이점은 무엇인가요?
    • 두개를 구분하기 위해서는 어떻게 하면 될까요?
  • 클로져(Closure)는 무엇이며, 어떻게/왜 사용하는지 설명해주세요.
    • 클로져를 만들 때 선호하는 패턴은 무엇인가요? argyle (IIFEs에만 적용할 수 있다)
  • 익명함수(anonymous functions)는 주로 어떤 상황에서 사용하나요?
  • 당신의 코드를 어떻게 구성하는지? (모듈 패턴, 전통적 상속)
  • 호스트 객체(Host Objects)와 네이티브 객체(Native Objects)의 차이점은 무엇인가요?
  • 다음 코드의 차이점은 무엇인가요?
function Person(){} var person = Person() var person = new Person()
  • .call.apply의 차이점은 무엇인가요?
  • Function.prototype.bind을 설명하세요.
  • document.write()는 언제 사용하나요?
  • UA 문자열을 이용하여 기능 검출(feature detection)과 기능 추론(feature inference)의 차이점을 설명하세요.
  • AJAX에 관해 가능한 한 자세히 설명하세요.
  • AJAX를 사용했을 때의 장단점에 대해 설명해주세요.
  • JSON이 어떻게 동작 되는지 설명하세요. (그리고 AJAX와 어떻게 다른지 설명하세요.)
  • 기존에 JavaScript 템플릿을 사용한 적이 있나요? 만약에 있다면, 어떠한 방식으로 사용했는지 말씀해주세요.
  • "호이스팅(Hoisting)"에 대해서 설명하세요.
  • 이벤트 버블링(Event Bubbling)에 대해서 설명하세요.
  • 이벤트 캡쳐링(Event Capturing)에 대해서 설명하세요.
  • "속성(Attribute)"와 "요소(property)"의 차이가 무엇인가요?
  • 내장된 JavaScript 객체를 확장하는 것이 좋지 않은 이유는 무엇인가요?
  • document load event와 DOMContentLoaded event의 차이점은 무엇인가요?
  • =====의 차이점은 무엇인가요?
  • JavaScript의 "동일출처정책(the same-origin policy)"에 대해서 설명하세요.
  • 다음 코드를 동작하게 만드세요.
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • 삼항식(Ternary statement)을 사용하는 이유는 무엇이고, 그것을 표현하기 위한 연산자 단어는 무엇인가요?
  • use strict;은 무엇이고, 사용했을 때 장단점에 관해서 설명해주세요.
  • 100번 반복되는 반복문이 있습니다. 3의 배수일 때는 fizz, 5의 배수일 때는 buzz, 3과 5의 공배수일 때는 fizzbuzz가 출력되는 코드를 작성해보세요.
  • 전역 scope를 사용했을 때 장단점에 관해 설명해주세요.
  • 때때로 load event를 사용하는 이유에 관해 설명해주세요. 또 단점이 있다면 대안에 대해서도 설명해주세요.
  • SPA에서 SEO에 유리하도록 만들기 위한 방법에 대해 설명해주세요.
  • Promise를 사용해 본 경험이 있나요?
  • Promise가 콜백 대비 장/단점은 무엇인지 설명해주세요.
  • JavaScript의 작동방식의 장단점에 관해 설명해주세요.
  • JavaScript를 디버깅할 때 사용하는 도구가 있으면 설명해주세요.
  • 객체 안의 속성과 배열의 아이템을 순회할 때 사용하는 문법에 관해 설명해주세요.
  • mutable object와 immutable object에 관해 설명해주세요.
    • JavaScript에서 immutable 객체의 예를 들어보세요.
    • immutability의 장/단점은 무엇인가요?
    • 자신의 코드에서 불변성(immutability를) 어떻게 달성할 수 있나요?
  • 동기방식과 비동기 방식 함수의 차이에 관해서 설명해주세요.
  • event loop이란 무엇인가요?
    • call stack과 task queue에 관해 설명해주세요.
  • function foo() {}var foo = function() {}에서 foo 의 차이가 무엇인지 설명해보세요.
  • let, var, const의 차이점에 관해서 설명해주세요.

테스트 관련 질문들:

  • test code를 작성하면서 개발하는 방식의 장점과 단점에 대해 설명해주세요.
  • test code를 테스트하는 툴을 사용해보신 경험이 있나요?
  • 유닛 테스트와 함수테스트의 차이점은 무엇인가요?
  • code style linting tool을 사용했을때 장점은 무엇인가요?

성능 관련 질문들:

  • 성능관련 이슈들을 발견하기 위해서 사용하는 방법은 무엇인가요?
  • 웹사이트 scrolling 성능을 향상시키기 위한 몇가지 방법에 대해 설명해보세요.
  • 브라우저의 layout, painting, compositing에 대해 설명해보세요.

네트워크 질문들:

  • 전통적으로, 웹사이트의 assets을 여러 도메인으로 서빙했을 때 장점은 무엇인가요?
  • URL로 접속했을 때 어떤 플로우로 화면에 웹사이트가 그려지는지 네트워크 관점에서 설명해주세요.
  • Long-Polling과 Websocket, Server-Sent Event에 대해 설명해주세요.
  • 다음 request header들에 대해 설명해주세요.
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP와 HTTPS에 대해 설명해주세요.
  • HTTP Method들에 대해 설명해주세요.

코딩 질문:

질문: foo의 값은 무엇인가요?

var foo = 10 + '20';

질문: 아래 코드의 결과값은 무엇인가요?

console.log(0.1 + 0.2 == 0.3);

질문: 아래 코드가 동작하게 하기 위해선 어떻게 해야할까요?

add(2, 5); // 7
add(2)(5); // 7

질문: 아래 구문의 반환값은 무엇인가요?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?
질문: window.foo의 값은 무엇인가요?

( window.foo || ( window.foo = "bar" ) );

질문: 아래 두 alert의 결과값은 무엇인가요?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

질문: foo.length의 값은 무엇인가요?

var foo = [];
foo.push(1);
foo.push(2);

질문: foo.x의 값은 무엇인가요?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

질문: 아래 코드의 출력값은 무엇인가요?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

그 외 흥미로운 질문들:

  • 최근에 수행했던 흥미로운 프로젝트는 무엇인가요?
  • 사용하는 개발 도구에서 마음에 드는 부분은 무엇인가요?
  • 프론트엔드 커뮤니티에서 당신에게 영감을 준 사람이 있다면 누구인가요?
  • 애완동물 관련 프로젝트를 해 보았나요? 해보았다면 어떤 종류의 프로젝트인가요?
  • IE에서 가장 좋아하는 기능은 무엇인가요?
  • 어떤 커피를 좋아하시나요?

함께하는 분들:

이 문서는 2009년에 다음에 언급된 분들과의 협업으로 시작했습니다.
@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

현재는 100이 넘는 개발자들이 함께하고 있습니다.

\ No newline at end of file diff --git a/_site/translations/korean/reference.html b/_site/translations/korean/reference.html index 092fb0bbb..e0c3c26f8 100644 --- a/_site/translations/korean/reference.html +++ b/_site/translations/korean/reference.html @@ -1,4 +1,4 @@ -해설집 ★ Front-end Job Interview Questions

해설집

##해설집

이 문서는 정답을 알려주는 문서가 아닙니다.
+해설집 ★ Front-end Job Interview Questions

해설집

##해설집

이 문서는 정답을 알려주는 문서가 아닙니다.
 면접에 대한 답은 스스로가 찾아야 좋으며,
 그 판단을 돕기 위한 해설서 임을 밝히는 바입니다.
-

##기여자
@Songhun(http://songhun.blogspot.com)
@YiHanghee(http://blog.javarouka.me)

##일반적인 질문에 대한 참고

  • SNS에 대해서 물어보는 이유가 무엇일까요?

##HTML에 대한 참고

  • doctype에 대한 설명은 Wikipedia 에서 찾아볼 수 있습니다.
  • 표준 모드는 W3C의 표준에 맞춘 구현 렌더링으로 동작하며(미세하게 다릅니다), 쿽스 모드는 다양한 브라우저 및 표준 정립 이전의 구버전 기준으로 작성된 HTML의 fallback 과 비슷합니다.
  • XHTML 과 HTML의 차이 블로그 포스팅에 4부작(?)으로 좋은 설명이 있네요.
    • application/xhtml+xml 컨텐트 타입은 브라우저에 따라 해석할 수 없기도 합니다.(IE…)
  • 엘리먼트의(특히 루트인 html) lang attribute 와 관련이 있을까요…?
  • HTML 5 + XML = XHTML 5, <!doctype xhtml>
  • Programer custom attribute. ex) 자동차를 엘리먼트로 나타내야 할 경우를 생각해보면 기본 html 속성으로는 부족하겠죠.
  • HTML4의 콘텐츠 모델이 div와 span에 id와 클래스를 입힌 inline 및 block display의 사용자 정의형이라면, HTML5는 그것을 표준화한 콘텐츠 모델.
  • open web platform 이 뭘까요…?
  • 서버와 공유할 필요가 있는지의 여부, 저장 용량, 저장 생명주기에 따라 셋을 구분할 수 있습니다.

##Javascript에 대한 참고

##jQuery에 대한 참고

##CSS 참고

##흥미로운 질문들에 대한 참고

\ No newline at end of file +

##기여자
@Songhun(http://songhun.blogspot.com)
@YiHanghee(http://blog.javarouka.me)

##일반적인 질문에 대한 참고

  • SNS에 대해서 물어보는 이유가 무엇일까요?

##HTML에 대한 참고

  • doctype에 대한 설명은 Wikipedia 에서 찾아볼 수 있습니다.
  • 표준 모드는 W3C의 표준에 맞춘 구현 렌더링으로 동작하며(미세하게 다릅니다), 쿽스 모드는 다양한 브라우저 및 표준 정립 이전의 구버전 기준으로 작성된 HTML의 fallback 과 비슷합니다.
  • XHTML 과 HTML의 차이 블로그 포스팅에 4부작(?)으로 좋은 설명이 있네요.
    • application/xhtml+xml 컨텐트 타입은 브라우저에 따라 해석할 수 없기도 합니다.(IE…)
  • 엘리먼트의(특히 루트인 html) lang attribute 와 관련이 있을까요…?
  • HTML 5 + XML = XHTML 5, <!doctype xhtml>
  • Programer custom attribute. ex) 자동차를 엘리먼트로 나타내야 할 경우를 생각해보면 기본 html 속성으로는 부족하겠죠.
  • HTML4의 콘텐츠 모델이 div와 span에 id와 클래스를 입힌 inline 및 block display의 사용자 정의형이라면, HTML5는 그것을 표준화한 콘텐츠 모델.
  • open web platform 이 뭘까요…?
  • 서버와 공유할 필요가 있는지의 여부, 저장 용량, 저장 생명주기에 따라 셋을 구분할 수 있습니다.

##Javascript에 대한 참고

##jQuery에 대한 참고

##CSS 참고

##흥미로운 질문들에 대한 참고

\ No newline at end of file diff --git a/_site/translations/latvian/index.html b/_site/translations/latvian/index.html index a873a5e28..790574707 100644 --- a/_site/translations/latvian/index.html +++ b/_site/translations/latvian/index.html @@ -1 +1 @@ -Front-end web programmētāja darba intervijas jautājumi ★ Front-end Job Interview Questions

Front-end web programmētāja darba intervijas jautājumi

Front-end web programmētāja darba intervijas jautājumi

Šis repozitorijs satur vairākus ar front-end web programmētāja darba prasmēm saistītus jautājumus, ko var izmantot, intervējot potenciālos vakances kandidātus. Nav ieteicams izmantot katru šeit minēto jautājumu, jo tas patērētu ļoti daudz laika. Izvēlieties tikai dažus jautājumus no šī saraksta, kas Jums palīdzēs ātrāk atlasīt kandidātus ar nepieciešamajām prasmēm.

Rebecca Murphey Baseline For Front-End Developers raksts ir ļoti piemērota lasāmviela, kuru izlasīt pirms dodaties uz darba interviju.

Piezīme: Paturiet prātā, ka daudzi no šiem jautājumiem ir atvērta tipa, kas varētu izvērsties plašākā diskusijā un ļautu iepazīt cilvēka prasmes daudz labāk nekā tieša atbilde.

Saturs

  1. Sākotnējie Kontributori
  2. Vispārēji Jautājumi
  3. HTML Jautājumi
  4. CSS Jautājumi
  5. JS Jautājumi
  6. jQuery Jautājumi
  7. Kodēšanas Jautājumi
  8. Interesanti Jautājumi
  9. Citas Lieliskas Atsauces

####[⬆] Sākotnējie Kontributori:

Vairums no jautājumiem tika paņemti no oksoclap raksta, ko sākotnēji izveidoja Paul Irish (@paul_irish) un kuru papildināja sekojoši cilvēki:

####[⬆] Vispārēji Jautājumi:

  • Ko jaunu Jūs apguvāt vakar/šonedēļ?
  • Kas Jūs aizrauj un interesē programmēšanā?
  • Kādas UI (lietotāja interfeisa), performances, SEO, apkopes vai tehnoloģijas apsvērumus jūs ņemat vērā, kad veidojat web-aplikāciju vai mājas lapu?
  • Pastāstiet par sev vēlemo darba vidi. (Operētājsistēma, pārlūki, rīki utt.)
  • Vai variet aprakstīt savu darba procesu, kad veidojiet mājas lapu?
  • Vai jūs variet aprakstīt starpību starp “progressive enhancement” un “graceful degradation”?
    • Bonus punkti, ja tiek pieminēta funkciju noteikšana (feature detection).
  • Izskaidrojiet, ko nozīmē “Semantisks HTML”.
  • Kā Jūs optimizētu mājas lapas failus/resurus?
    • Potenciāli vairāki risinājumu, starp kuriem būtu:
      • Failu konkatenācija (savienošana)
      • Failu minimizēšana
      • CDN hostēšana
      • Kešošana
      • u.c.
  • Kāpēc ir labāk lapas resurus izvietot uz vairākiem domēniem?
    • Cik daudz resursus pārlūks spēj vienlaicīgi lejuplādēt no viena domēna?
  • Nosauciet 3 veidus, kā samazināt lapas ielādes laiku (šķietamo vai faktisko)
  • Kā Jūs rīkotos, ja Jūs pievienotos projektam un viņi izmantotu tabulāciju, bet Jūs atstarpes koda atkāpju veidošanai?
    • Ieteiktu projektā izmantot kaut ko līdzīgu EditorConfig (http://editorconfig.org)
    • Pieskaņoties kolēģiem
    • Veikt retabulāciju ar ‘:retab!’ komandu
  • Izveidojiet vienkāršū slaidrāža lapu
    • Bonus punkti, ja netiek izmantots JavaScript
  • Kādus rīkus Jūs izmantojiet, lai pārbaudītu sava koda veiktspēju (performanci)?
    • Profiler, JSPerf, Dromaeo
  • Ja šogad Jūs varētu pilnībā apgūt vienu tehnoloģiju, kura tā būtu?
  • Kādas ir atšķirības starp Long-Polling, Websockets un SSE?
  • Izskaidrojiet standartu un standartizēšanas komisiju nozīmi.
  • Kas ir FOUC? Kā izvairīties no FOUC?

####[⬆] HTML Jautājumi:

  • Ko dara doctype?
  • Kāda ir starpība starp standarta režīmu un quirks režīmu?
  • Kādi ir XHTML lapu ierobežojumi?
    • Vai var rasties problēmas, ja lapa tiek servēta kā application/xhtml+xml?
  • Kā servēt lapu ar saturu vairākās valodās?
    • Par ko ir īpaši jāpiedomā, kad dizainē vai izstrādā vairāku valodu mājas lapas?
  • Ar ko ir noderīgi data- atribūti?
  • Pieņemot, ka HTML5 ir atvērta web-platforma, kas ir HTML5 pamatelementi?
  • Aprakstiet atšķirības starp sīkdatnēm (cookies), sessionStorage un localStorage.

####[⬆] CSS Jautājumi:

  • Aprakstiet, ko dara “reset” CSS fails un ar ko tas ir noderīgs.
  • Aprakstiet Float parametru un to, kā tas strādā.
  • Kādas ir dažādas Clear parametra lietošanas tehnikas un kādā kontekstā katra ir vispiemērotākā?
  • Izskaidrojiet, kas ir CSS spraiti (sprites) un kā Jūs tos izmantotu lapā?
  • Kāda ir Jūsu iecienītākā attēlu aizvietošanas tehnika un kādos brīžos Jūs to izmantojiet?
  • CSS parametru hacki, nosacīti iekļauti .css faili vai kas cits?
  • Kā Jūs servējat lapas priekš pārlūkiem ar ierobežotu funkcionalitāti?
    • Kādas tehnikas/procesu Jūs piekopjat?
  • Kādi ir dažādi paņēmieni, kā vizuāli noslēpt saturu (un padarīt to pieejamu tikai priekš ekrāna lasītājiem)?
  • Vai esat kādreiz izmantojis režģa (grid) sistēmu? Ja jā, tad kurai dodiet priekšroku?
  • Vai esat izmantojis mediju vaicājumus (media queries) vai izkārtojumus(layouts)/CSS domātus speciāli priekš mobilajām iekārtām?
  • Vai esat pazīstams ar SVG stilu definēšanu?
  • Kā Jūs optimizējiet mājas lapas priekš printēšanas?
  • Kādi ir dažādi triki un paņēmieni (kā arī ar ko der uzmanīties), lai veidotu efektīvu CSS?
  • Kādi ir plusi/mīnusi izmantojot CSS preprocesorus? (SASS, Compass, Stylus, LESS)
    • Aprakstiet plusus un mīnusus tiem CSS preprocesoriem, kurus esiet izmantojis.
  • Kā Jūs veidotu mājas lapas dizainu, kas izmanto nestandarta fontus?
    • Webonti (tādi fontu servisi kā Google Webfonts, Typekit u.c.)
  • Izskaidrojiet kā pārlūks nosaka kuri elementi atbilst CSS selektoriem?
  • Izskaidrojiet kā Jūs saprotiet “box model” un kā Jūs ar CSS palīdzību norādītu pārlūkam attēlot izkārtojumu(layout) ar dažādiem “box model” iestatījumiem.

####[⬆] JS Jautājumi:

  • Izskaidrojiet notikumu deleģēšanu (event delegation)
  • Izskaidrojiet kā this strādā JavaScript valodā
  • Izskaidrojiet kā strādā prototipiskā mantošana?
  • Kā Jūs testējat savu JavaScript kodu?
  • AMD vai CommonJS?
  • Kas ir asociatīvais masīvs (hashtable)?
  • Paskaidrojiet kāpēc šis kods nestrādā kā IIFE: function foo(){ }();.
    • Kas ir jāpamaina, lai tā pareizi strādātu kā IIFE?
  • Kāda ir atšķirība starp mainīgajiem, kas ir definēti kā: null, undefined or undeclared?
    • Kā jūs pārbaudītu vai mainīgais atbilst kādam no šiem stāvokļiem?
  • Kas ir slēgums(closure) un kā/kāpēc Jūs tādu izmantotu?
  • Kādos gadījumos parasti tiek izmantotas anonīmās funkcijas?
  • Izskaidrojiet “JavaScript module pattern” un kādos gadījumos Jūs to izmantotu.
    • Bonus punkti, ja tiek pieminēta tīra nosaukumvietas uzturēšana (clean namespacing)
    • Gadījumā ja Jūsu moduļi neizmanto nosaukumvietu?
  • Kā Jūs organizējat savu kodu? (Moduļu veidā, klasiskā mantošana?)
  • Kāda ir atšķirība starp “host” objektiem un “native” objektiem?
  • Kāda ir atšķirība starp: function Person(){}, var person = Person(), un var person = new Person()?
  • Kāda ir atšķirība starp .call un .apply?
  • Izskaidrojiet Function.prototype.bind?
  • Kurā brīdī Jūs optimizējiet savu kodu?
  • Vai variet izskaidrot kā JavaScript valodā strādā mantošana?
  • Kādos gadījumos Jūs izmantotu document.write()?
    • Vairums reklāmas joprojām izmanto document.write() kaut arī šāda prakse tiek pelta.
  • Kāda ir atšķirība starp funkciju noteikšanu (feature detection), funkciju secināšanu (feature inference) un UA virknes (UA string) izmantošanu?
  • Izskaidrojiet AJAX cik vien detalizēti iespējams
  • Izskaidrojiet kā stradā JSONP (un kā tas atšķiras no AJAX)
  • Vai esat jebkad izmantojuši JavaScript šablonošanai (templating)?
    • Ja jā, kuras bibliotēkas Jūs esat izmantojuši? (Mustache.js, Handlebars etc.)
  • Izskaidrojiet “hoisting”
  • Izskaidrojiet notikumu burbuļošanu (event bubbling)
  • Kāda ir atšķirība starp atribūtu un rekvizītu (property)?
  • Kāpēc paplašināt iebūvētos JavaScript objektus nav laba doma?
  • Kāpēc paplašināt “built ins” ir laba doma?
  • Kāda ir atšķirība starp “document load” un “document ready” notikumu?
  • Kāda ir atšķirība starp == un ===?
  • Paskaidrojiet kā Jūs iegūtu kverija stringa parametru no pārlūka loga URL?
  • Izskaidrojiet vietējās izcelsmes (same-origin) noteikumu attiecībā uz JavaScript
  • Izskaidrojiet mantošanas paternus JavaScript valodā.
  • Lieciet šim strādāt:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Izskaidrojoet memoizācijas stratēģiju (izvairīšanos no aprēķinu atkārtošanas) JavaScript valodā.
  • Kāpēc to sauc par ternāru izteiksmi (Ternary expression)? Uz ko norāda vārds ternārs?
  • Kas ir funkcijas “arity”?
  • Kas ir "use strict";? Kādas ir priekšrocības un trūkumi to izmantojot?

####[⬆] jQuery Jautājumi:

  • Izskaidrojiet savirknēšanu (chaining).
  • Izskaidrojiet novēlojumus (deferreds).
  • Kādas ir jQuery specifiskas optimizācijas, ko Jūs spējat ieviest praksē?
  • Ko veic .end()?
  • Kā un kāpēc Jūs nosauktu pievienotu notikumu apdarinātāju (bound event handler)?
  • Nosauciet 4 dažādas vērtības, ko Jūs varat padot jQuery metodei
    • Selektoru (virkne), HTML (virkne), atgriezenisko funkciju (funkcija), HTMLElement, Object, Array, Element Array, Jquery Object u.c.
  • Kas ir efektu (vai fx) rinda?
  • Kāda ir atšķirība starp .get(), [], un .eq()?
  • Kāda ir atšķirība starp .bind(), .live(), un .delegate()?
  • Kāda ir atšķirība starp $ un $.fn? Vai vienkārši kas ir $.fn?
  • Optimizējiet šo selektoru
$(".foo div#bar:eq(0)")

####[⬆] Kodēšanas Jautājumi:

modulo(12, 5) // 2

Jautājums: Izveidojiet modulo funkciju, kas apmierina augstākminēto

"i'm a lasagna hog".split("").reverse().join("");

*Jautājums: Kāda vērtība tiek atgriezta no augšākminētā koda?

Atbilde: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Jautājums: Kāda ir window.foo vērtība?

Atbilde: “bar” (vienīgi°ja window.foo “falsey”, savādāk tas paturētu savu esošo vērtību)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Jautājums: Kāds ir abu augstākminēto paziņojumu iznākums?

Atbilde: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Jautājums: Kāda ir foo.length vērtība?

Atbilde: 2

####[⬆] Interesanti Jautājumi:

  • Kas ir pati foršākā lieta, ko jebkat esiet uzprogrammējis un ar ko lepojaties?
  • Kuras ir Jūsu izstrādes rīku iemīļotākās funkcijas, kuras izmantojiet?
  • Vai Jums ir kādi hobiju projekti? Kādi?
  • Kāda ir Jūsu iecienītakā Internet Explorer raksturiezīme?

####[⬆] Citas Lieliskas Atsauces:

\ No newline at end of file +Front-end web programmētāja darba intervijas jautājumi ★ Front-end Job Interview Questions

Front-end web programmētāja darba intervijas jautājumi

Front-end web programmētāja darba intervijas jautājumi

Šis repozitorijs satur vairākus ar front-end web programmētāja darba prasmēm saistītus jautājumus, ko var izmantot, intervējot potenciālos vakances kandidātus. Nav ieteicams izmantot katru šeit minēto jautājumu, jo tas patērētu ļoti daudz laika. Izvēlieties tikai dažus jautājumus no šī saraksta, kas Jums palīdzēs ātrāk atlasīt kandidātus ar nepieciešamajām prasmēm.

Rebecca Murphey Baseline For Front-End Developers raksts ir ļoti piemērota lasāmviela, kuru izlasīt pirms dodaties uz darba interviju.

Piezīme: Paturiet prātā, ka daudzi no šiem jautājumiem ir atvērta tipa, kas varētu izvērsties plašākā diskusijā un ļautu iepazīt cilvēka prasmes daudz labāk nekā tieša atbilde.

Saturs

  1. Sākotnējie Kontributori
  2. Vispārēji Jautājumi
  3. HTML Jautājumi
  4. CSS Jautājumi
  5. JS Jautājumi
  6. jQuery Jautājumi
  7. Kodēšanas Jautājumi
  8. Interesanti Jautājumi
  9. Citas Lieliskas Atsauces

####[⬆] Sākotnējie Kontributori:

Vairums no jautājumiem tika paņemti no oksoclap raksta, ko sākotnēji izveidoja Paul Irish (@paul_irish) un kuru papildināja sekojoši cilvēki:

####[⬆] Vispārēji Jautājumi:

  • Ko jaunu Jūs apguvāt vakar/šonedēļ?
  • Kas Jūs aizrauj un interesē programmēšanā?
  • Kādas UI (lietotāja interfeisa), performances, SEO, apkopes vai tehnoloģijas apsvērumus jūs ņemat vērā, kad veidojat web-aplikāciju vai mājas lapu?
  • Pastāstiet par sev vēlemo darba vidi. (Operētājsistēma, pārlūki, rīki utt.)
  • Vai variet aprakstīt savu darba procesu, kad veidojiet mājas lapu?
  • Vai jūs variet aprakstīt starpību starp “progressive enhancement” un “graceful degradation”?
    • Bonus punkti, ja tiek pieminēta funkciju noteikšana (feature detection).
  • Izskaidrojiet, ko nozīmē “Semantisks HTML”.
  • Kā Jūs optimizētu mājas lapas failus/resurus?
    • Potenciāli vairāki risinājumu, starp kuriem būtu:
      • Failu konkatenācija (savienošana)
      • Failu minimizēšana
      • CDN hostēšana
      • Kešošana
      • u.c.
  • Kāpēc ir labāk lapas resurus izvietot uz vairākiem domēniem?
    • Cik daudz resursus pārlūks spēj vienlaicīgi lejuplādēt no viena domēna?
  • Nosauciet 3 veidus, kā samazināt lapas ielādes laiku (šķietamo vai faktisko)
  • Kā Jūs rīkotos, ja Jūs pievienotos projektam un viņi izmantotu tabulāciju, bet Jūs atstarpes koda atkāpju veidošanai?
    • Ieteiktu projektā izmantot kaut ko līdzīgu EditorConfig (http://editorconfig.org)
    • Pieskaņoties kolēģiem
    • Veikt retabulāciju ar ‘:retab!’ komandu
  • Izveidojiet vienkāršū slaidrāža lapu
    • Bonus punkti, ja netiek izmantots JavaScript
  • Kādus rīkus Jūs izmantojiet, lai pārbaudītu sava koda veiktspēju (performanci)?
    • Profiler, JSPerf, Dromaeo
  • Ja šogad Jūs varētu pilnībā apgūt vienu tehnoloģiju, kura tā būtu?
  • Kādas ir atšķirības starp Long-Polling, Websockets un SSE?
  • Izskaidrojiet standartu un standartizēšanas komisiju nozīmi.
  • Kas ir FOUC? Kā izvairīties no FOUC?

####[⬆] HTML Jautājumi:

  • Ko dara doctype?
  • Kāda ir starpība starp standarta režīmu un quirks režīmu?
  • Kādi ir XHTML lapu ierobežojumi?
    • Vai var rasties problēmas, ja lapa tiek servēta kā application/xhtml+xml?
  • Kā servēt lapu ar saturu vairākās valodās?
    • Par ko ir īpaši jāpiedomā, kad dizainē vai izstrādā vairāku valodu mājas lapas?
  • Ar ko ir noderīgi data- atribūti?
  • Pieņemot, ka HTML5 ir atvērta web-platforma, kas ir HTML5 pamatelementi?
  • Aprakstiet atšķirības starp sīkdatnēm (cookies), sessionStorage un localStorage.

####[⬆] CSS Jautājumi:

  • Aprakstiet, ko dara “reset” CSS fails un ar ko tas ir noderīgs.
  • Aprakstiet Float parametru un to, kā tas strādā.
  • Kādas ir dažādas Clear parametra lietošanas tehnikas un kādā kontekstā katra ir vispiemērotākā?
  • Izskaidrojiet, kas ir CSS spraiti (sprites) un kā Jūs tos izmantotu lapā?
  • Kāda ir Jūsu iecienītākā attēlu aizvietošanas tehnika un kādos brīžos Jūs to izmantojiet?
  • CSS parametru hacki, nosacīti iekļauti .css faili vai kas cits?
  • Kā Jūs servējat lapas priekš pārlūkiem ar ierobežotu funkcionalitāti?
    • Kādas tehnikas/procesu Jūs piekopjat?
  • Kādi ir dažādi paņēmieni, kā vizuāli noslēpt saturu (un padarīt to pieejamu tikai priekš ekrāna lasītājiem)?
  • Vai esat kādreiz izmantojis režģa (grid) sistēmu? Ja jā, tad kurai dodiet priekšroku?
  • Vai esat izmantojis mediju vaicājumus (media queries) vai izkārtojumus(layouts)/CSS domātus speciāli priekš mobilajām iekārtām?
  • Vai esat pazīstams ar SVG stilu definēšanu?
  • Kā Jūs optimizējiet mājas lapas priekš printēšanas?
  • Kādi ir dažādi triki un paņēmieni (kā arī ar ko der uzmanīties), lai veidotu efektīvu CSS?
  • Kādi ir plusi/mīnusi izmantojot CSS preprocesorus? (SASS, Compass, Stylus, LESS)
    • Aprakstiet plusus un mīnusus tiem CSS preprocesoriem, kurus esiet izmantojis.
  • Kā Jūs veidotu mājas lapas dizainu, kas izmanto nestandarta fontus?
    • Webonti (tādi fontu servisi kā Google Webfonts, Typekit u.c.)
  • Izskaidrojiet kā pārlūks nosaka kuri elementi atbilst CSS selektoriem?
  • Izskaidrojiet kā Jūs saprotiet “box model” un kā Jūs ar CSS palīdzību norādītu pārlūkam attēlot izkārtojumu(layout) ar dažādiem “box model” iestatījumiem.

####[⬆] JS Jautājumi:

  • Izskaidrojiet notikumu deleģēšanu (event delegation)
  • Izskaidrojiet kā this strādā JavaScript valodā
  • Izskaidrojiet kā strādā prototipiskā mantošana?
  • Kā Jūs testējat savu JavaScript kodu?
  • AMD vai CommonJS?
  • Kas ir asociatīvais masīvs (hashtable)?
  • Paskaidrojiet kāpēc šis kods nestrādā kā IIFE: function foo(){ }();.
    • Kas ir jāpamaina, lai tā pareizi strādātu kā IIFE?
  • Kāda ir atšķirība starp mainīgajiem, kas ir definēti kā: null, undefined or undeclared?
    • Kā jūs pārbaudītu vai mainīgais atbilst kādam no šiem stāvokļiem?
  • Kas ir slēgums(closure) un kā/kāpēc Jūs tādu izmantotu?
  • Kādos gadījumos parasti tiek izmantotas anonīmās funkcijas?
  • Izskaidrojiet “JavaScript module pattern” un kādos gadījumos Jūs to izmantotu.
    • Bonus punkti, ja tiek pieminēta tīra nosaukumvietas uzturēšana (clean namespacing)
    • Gadījumā ja Jūsu moduļi neizmanto nosaukumvietu?
  • Kā Jūs organizējat savu kodu? (Moduļu veidā, klasiskā mantošana?)
  • Kāda ir atšķirība starp “host” objektiem un “native” objektiem?
  • Kāda ir atšķirība starp: function Person(){}, var person = Person(), un var person = new Person()?
  • Kāda ir atšķirība starp .call un .apply?
  • Izskaidrojiet Function.prototype.bind?
  • Kurā brīdī Jūs optimizējiet savu kodu?
  • Vai variet izskaidrot kā JavaScript valodā strādā mantošana?
  • Kādos gadījumos Jūs izmantotu document.write()?
    • Vairums reklāmas joprojām izmanto document.write() kaut arī šāda prakse tiek pelta.
  • Kāda ir atšķirība starp funkciju noteikšanu (feature detection), funkciju secināšanu (feature inference) un UA virknes (UA string) izmantošanu?
  • Izskaidrojiet AJAX cik vien detalizēti iespējams
  • Izskaidrojiet kā stradā JSONP (un kā tas atšķiras no AJAX)
  • Vai esat jebkad izmantojuši JavaScript šablonošanai (templating)?
    • Ja jā, kuras bibliotēkas Jūs esat izmantojuši? (Mustache.js, Handlebars etc.)
  • Izskaidrojiet “hoisting”
  • Izskaidrojiet notikumu burbuļošanu (event bubbling)
  • Kāda ir atšķirība starp atribūtu un rekvizītu (property)?
  • Kāpēc paplašināt iebūvētos JavaScript objektus nav laba doma?
  • Kāpēc paplašināt “built ins” ir laba doma?
  • Kāda ir atšķirība starp “document load” un “document ready” notikumu?
  • Kāda ir atšķirība starp == un ===?
  • Paskaidrojiet kā Jūs iegūtu kverija stringa parametru no pārlūka loga URL?
  • Izskaidrojiet vietējās izcelsmes (same-origin) noteikumu attiecībā uz JavaScript
  • Izskaidrojiet mantošanas paternus JavaScript valodā.
  • Lieciet šim strādāt:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Izskaidrojoet memoizācijas stratēģiju (izvairīšanos no aprēķinu atkārtošanas) JavaScript valodā.
  • Kāpēc to sauc par ternāru izteiksmi (Ternary expression)? Uz ko norāda vārds ternārs?
  • Kas ir funkcijas “arity”?
  • Kas ir "use strict";? Kādas ir priekšrocības un trūkumi to izmantojot?

####[⬆] jQuery Jautājumi:

  • Izskaidrojiet savirknēšanu (chaining).
  • Izskaidrojiet novēlojumus (deferreds).
  • Kādas ir jQuery specifiskas optimizācijas, ko Jūs spējat ieviest praksē?
  • Ko veic .end()?
  • Kā un kāpēc Jūs nosauktu pievienotu notikumu apdarinātāju (bound event handler)?
  • Nosauciet 4 dažādas vērtības, ko Jūs varat padot jQuery metodei
    • Selektoru (virkne), HTML (virkne), atgriezenisko funkciju (funkcija), HTMLElement, Object, Array, Element Array, Jquery Object u.c.
  • Kas ir efektu (vai fx) rinda?
  • Kāda ir atšķirība starp .get(), [], un .eq()?
  • Kāda ir atšķirība starp .bind(), .live(), un .delegate()?
  • Kāda ir atšķirība starp $ un $.fn? Vai vienkārši kas ir $.fn?
  • Optimizējiet šo selektoru
$(".foo div#bar:eq(0)")

####[⬆] Kodēšanas Jautājumi:

modulo(12, 5) // 2

Jautājums: Izveidojiet modulo funkciju, kas apmierina augstākminēto

"i'm a lasagna hog".split("").reverse().join("");

*Jautājums: Kāda vērtība tiek atgriezta no augšākminētā koda?

Atbilde: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Jautājums: Kāda ir window.foo vērtība?

Atbilde: “bar” (vienīgi°ja window.foo “falsey”, savādāk tas paturētu savu esošo vērtību)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Jautājums: Kāds ir abu augstākminēto paziņojumu iznākums?

Atbilde: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Jautājums: Kāda ir foo.length vērtība?

Atbilde: 2

####[⬆] Interesanti Jautājumi:

  • Kas ir pati foršākā lieta, ko jebkat esiet uzprogrammējis un ar ko lepojaties?
  • Kuras ir Jūsu izstrādes rīku iemīļotākās funkcijas, kuras izmantojiet?
  • Vai Jums ir kādi hobiju projekti? Kādi?
  • Kāda ir Jūsu iecienītakā Internet Explorer raksturiezīme?

####[⬆] Citas Lieliskas Atsauces:

\ No newline at end of file diff --git a/_site/translations/polish/index.html b/_site/translations/polish/index.html index acdd58bc4..3c30a6658 100644 --- a/_site/translations/polish/index.html +++ b/_site/translations/polish/index.html @@ -1 +1 @@ -Pytania kwalifikacyjne na stanowisko front-end web developera ★ Front-end Job Interview Questions

Pytania kwalifikacyjne na stanowisko front-end web developera

Pytania kwalifikacyjne na stanowisko front-end web developera

@version 2.0.0

To repozytorium zawiera wiele pytań weryfikujących wiedzę potencjalnych kandydatów na stanowisko front-end web developera. Nie zaleca się zadawania wszystkich pytań jednej osobie (zajęłoby to godziny). Wybranie pojedynczych pozycji z listy pomoże w sprawdzeniu wymaganych umiejętności.

Rebecca Murphey opracowała Podstawowe wymagania dla Front-End web developerów, które są warte przeczytania zanim udamy się na rozmowę o pracę.

Uwaga: Pamiętaj, że wiele pytań jest otwartych, co prowadzi do ciekawych dyskusji, które powiedzą Ci więcej o możliwościach danej osoby, niż w przypadku prostej odpowiedzi.

Pierwotni autorzy

Większość pytań zaczerpnięto z wątku oksoclap stworzonego pierwotnie przez Paula Irisha (@paul_irish) i rozwijanego przez następujące osoby:

Pytania ogólne:

  • Czego nauczyłeś się wczoraj/w tym tygodniu?
  • Co pobudza lub interesuje cię w programowaniu?
  • Jakie jest Twoje preferowane środowisko programistyczne? (system operacyjny, edytor, przeglądarki, narzędzia itd.)
  • Opisz kolejne zadania podczas tworzenia strony internetowej?
  • Opisz różnicę między stopniowym ulepszaniem (progressive enhancement) i wdzięczną degradacją (graceful degradation)?
    • Dodatkowe punkty za opisanie wykrywania obsługi cech (feature detection)
  • Wyjaśnij, co kryje się za terminem “semantyczny HTML”.
  • Jak optymalizowałbyś zasoby strony internetowej?
    • Myśląc o wielu rozwiązaniach, które zawierają:
      • Łączenie plików
      • Zmniejszenie rozmiaru plików
      • Zasoby CDN
      • Buforowanie
      • itd.
  • Dlaczego serwowanie zasobów strony przez wiele domen jest lepsze?
    • Ile zasobów pobiera przeglądarka z danej domeny w jednej chwili?
  • Podaj 3 sposoby na zmniejszenie czasu ładowania strony. (postrzeganego lub rzeczywistego czasu ładowania)
  • Jeśli dołączasz do projektu, w którym używa się tabulacji, a ty używasz spacji, co wtedy zrobisz?
    • Sugerowanie użycia narzędzi w stylu EditorConfig (http://editorconfig.org)
    • Zgodnie z konwencjami (pozostań konsekwentny)
    • issue :retab! command
  • Napisz prosty pokaz slajdów
    • Dodatkowe punkty, jeśli nie używasz JS.
  • Jakich narzędzi używasz do sprawdzenia wydajności swojego kodu?
    • Profiler, JSPerf, Dromaeo
  • Gdybyś mógł opanować jedną technologię w tym roku, jaka byłaby to technologia?
  • Wyjaśnij znaczenie standardów sieciowych i ich twórców.
  • Czym jest FOUC? Jak unikasz FOUC?

Pytania HTML:

  • Co robi doctype i jakie znasz przykłady?
  • Jaka jest różnica między trybem standardów a trybem dziwactw (quirks mode)?
  • Jakie są ograniczenia w serwowaniu stron XHTML?
    • Czy istnieją problemy z serwowaniem stron jako application/xhtml+xml?
  • Jak serwujesz stronę z treścią w wielu językach?
    • Co jest ważne przy projektowaniu i tworzeniu stron wielojęzycznych?
  • Jaka jest przydatność atrybutów data-
  • Rozpatrujemy HTML5 jako otwartą platformę internetową. Jakie składniki tworzą HTML5?
  • Opisz różnice między cookies, sessionStorage i localStorage.

Pytania JS:

  • Wyjaśnij delegację zdarzeń.
  • Wyjaśnij jak działa this w JavaScripcie.
  • Wyjaśnij jak działa dziedziczenie prototypowe.
  • Jak radzisz sobie z testowaniem swojego kodu JavaScript?
  • AMD kontra CommonJS?
  • Czym jest tablica mieszająca (hashtable)?
  • Co oznaczają komunikaty undefined i undeclared dla zmiennych?
  • Czym są domknięcia, jak i po co są używane?
    • Ulubiony wzorzec używany do ich tworzenia? argyle (Dotyczy tylko IIFE)
  • Jakie znasz typowe użycie funkcji anonimowych?
  • Wyjaśnij pojęcie “Moduł JavaScript” i kiedy jest warte stosowania.
    • Dodatkowe punkty za wzmiankę na temat czystości przestrzeni nazw.
    • Co jeśli Twój kod nie używa przestrzeni nazw?
  • Jak organizujesz swój kod? (moduły, klasyczne dziedziczenie?)
  • Jaka jest różnicza między obiektami typu host i native?
  • Różnica między:
function Person(){} var person = Person() var person = new Person()
  • Jaka jest różnica między .call i .apply?
  • Wyjaśnij Function.prototype.bind?
  • Kiedy optymalizujesz swój kod?
  • Wyjaśnij działanie dziedziczenia w JavaScript?
  • Kiedy użyłbyś document.write()?
    • Wiele generowanych reklam używa document.write() choć nie jest to mile widziane
  • Jakie są różnice między wykrywaniem obsługi funkcji, wnioskowaniem obsługi funkcji i używaniem ciągu UA?
  • Omów AJAX jak najbardziej szczegółowo.
  • Wyjaśnij działanie JSONP (i dlaczego nie jest właściwie AJAX).
  • Czy kiedykolwiek używałeś szablonów w JavaScript?
    • Jeśli tak, jakie to były biblioteki? (Mustache.js, Handlebars itd.)
  • Wyjaśnij pojęcie “hoisting”.
  • Opisz bąbelkowanie zdarzeń.
  • Jak jest różnica między “atrybutem” i “właściwością”?
  • Czemu rozszerzanie obiektów wbudowanych w JavaScript jest złym pomysłem?
  • Czemu rozszerzanie to dobry pomysł?
  • Jak jest różnicą między zdarzeniami load i ready dla strony internetowej?
  • Jaka jest różnica między == i ===?
  • Wyjaśnij ewentualny sposób pobrania parametrów z adresu URL w oknie przeglądarki.
  • Wyjaśnij politykę same-origin w odniesieniu do JavaScript.
  • Opisz wzorce dziedziczenia w JavaScript.
  • Napisz działający kod:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opisz strategię zapamiętywania (unikanie powtarzalnych obliczeń) w JavaScript.
  • Dlaczego mówimy wyrażenie trójkowe, co dokładnie oznacza słowo “trójkowy”?
  • Czym jest arity funkcji?
  • Co oznacza "use strict";? Jakie są zalety i wady takiego rozwiązania?

Przykłady kodu JS:

~~3.14

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: 3

"i'm a lasagna hog".split("").reverse().join("");

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pytanie: Jaka jest wartość window.foo?
Odpowiedź: "bar"
tylko jeśli window.foo było fałszywe, w innym przypadku zwraca swoją wartość.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pytanie: Jaki będzie wyniki wywołania dwóch powyższych poleceń alert?
Odpowiedź: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: 2

var foo = {};
foo.bar = 'hello';

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: undefined

Pytania jQuery:

  • Wyjaśnij termin “chaining”.
  • Wyjaśnij termin “deferreds”.
  • Jakie przykłady optymalizacji jQuery potrafisz wykonać?
  • Co robi .end()?
  • Jak i dlaczego użyjesz przestrzeni nazw przy obsłudze wiązania zdarzeń?
  • Podaj 4 różne wartości, jakie możesz przekazać do metody jQuery.
    • Selektor (string), HTML (string), funkcja zwrotna, HTMLElement, obiekt, tablica, element tablicy, obiekt jQuery itd.
  • Co to jest kolejka effects (lub fx)?
  • Jakie są różnice między .get(), [], i .eq()?
  • Jakie są różnice między .bind(), .live(), i .delegate()?
  • Jakie są różnice między $ i $.fn? Czym jest $.fn?
  • Zoptymalizuj selektor:
$(".foo div#bar:eq(0)")

Pytania CSS:

  • Opisz, czym jest plik “reset” dla CSS i dlaczego jest użyteczny.
  • Opisz jak działa właściwość float.
  • Jakie znasz techniki kasowania (clearing) i kiedy wskazane jest ich stosowanie?
  • Wyjaśnij technikę “CSS sprites” oraz sposób jej wdrożenia na stronie.
  • Jakie są Twoje ulubione techniki zastępowania obrazów i kiedy je stosujesz?
  • Haczyki właściwości CSS, warunkowe dołączanie plików .css lub… coś innego?
  • Jak serwujesz strony dla przeglądarek z ograniczonym wsparciem funkcji?
    • Jakie techniki stosujesz?
  • Jakie istnieją sposoby wizualnego ukrycia treści (uczynienia ich dostępnymi tylko dla czytników ekranu)?
  • Czy kiedykolwiek używałeś systemów siatek, a jeśli tak, to jakie preferujesz?
  • Czy używałeś ‘media queries’ lub tworzyłeś konkretne układy i arkusze dla urządzeń mobilnych?
  • Czy miałeś styczność ze stylizacją SVG?
  • Jak optymalizujesz swoje strony do druku?
  • Jakie stosujesz “sztuczki” przy pisaniu efektywnych CSS?
  • Czy używasz narzędzi do przetwarzania CSS? (SASS, Compass, Stylus, LESS)
    • Jeśli tak, opisz cechy, które lubisz i nie lubisz w używanych narzędziach.
  • Jak tworzysz i wdrażasz projekt używający niestandardowych czcionek?
    • Czcionki sieciowe (serwisy czcionek jak: Google Webfonts, Typekit itd.)
  • Wyjaśnij jak przeglądarka określa elementy pasujące do selektora CSS?

Pytania dodatkowe (zabawne):

  • Opowiedz o najfajniejszej rzeczy jaką kiedykolwiek zakodowałeś. Z czego jesteś najbardziej dumny?
  • Jakie są Twoje ulubione części narzędzi programistycznych, których używasz?
  • Czy masz jakiś swój własny projekt na boku? Jaki?
  • Jaka jest Twoja ulubiona funkcja w Internet Explorer?
\ No newline at end of file +Pytania kwalifikacyjne na stanowisko front-end web developera ★ Front-end Job Interview Questions

Pytania kwalifikacyjne na stanowisko front-end web developera

Pytania kwalifikacyjne na stanowisko front-end web developera

@version 2.0.0

To repozytorium zawiera wiele pytań weryfikujących wiedzę potencjalnych kandydatów na stanowisko front-end web developera. Nie zaleca się zadawania wszystkich pytań jednej osobie (zajęłoby to godziny). Wybranie pojedynczych pozycji z listy pomoże w sprawdzeniu wymaganych umiejętności.

Rebecca Murphey opracowała Podstawowe wymagania dla Front-End web developerów, które są warte przeczytania zanim udamy się na rozmowę o pracę.

Uwaga: Pamiętaj, że wiele pytań jest otwartych, co prowadzi do ciekawych dyskusji, które powiedzą Ci więcej o możliwościach danej osoby, niż w przypadku prostej odpowiedzi.

Pierwotni autorzy

Większość pytań zaczerpnięto z wątku oksoclap stworzonego pierwotnie przez Paula Irisha (@paul_irish) i rozwijanego przez następujące osoby:

Pytania ogólne:

  • Czego nauczyłeś się wczoraj/w tym tygodniu?
  • Co pobudza lub interesuje cię w programowaniu?
  • Jakie jest Twoje preferowane środowisko programistyczne? (system operacyjny, edytor, przeglądarki, narzędzia itd.)
  • Opisz kolejne zadania podczas tworzenia strony internetowej?
  • Opisz różnicę między stopniowym ulepszaniem (progressive enhancement) i wdzięczną degradacją (graceful degradation)?
    • Dodatkowe punkty za opisanie wykrywania obsługi cech (feature detection)
  • Wyjaśnij, co kryje się za terminem “semantyczny HTML”.
  • Jak optymalizowałbyś zasoby strony internetowej?
    • Myśląc o wielu rozwiązaniach, które zawierają:
      • Łączenie plików
      • Zmniejszenie rozmiaru plików
      • Zasoby CDN
      • Buforowanie
      • itd.
  • Dlaczego serwowanie zasobów strony przez wiele domen jest lepsze?
    • Ile zasobów pobiera przeglądarka z danej domeny w jednej chwili?
  • Podaj 3 sposoby na zmniejszenie czasu ładowania strony. (postrzeganego lub rzeczywistego czasu ładowania)
  • Jeśli dołączasz do projektu, w którym używa się tabulacji, a ty używasz spacji, co wtedy zrobisz?
    • Sugerowanie użycia narzędzi w stylu EditorConfig (http://editorconfig.org)
    • Zgodnie z konwencjami (pozostań konsekwentny)
    • issue :retab! command
  • Napisz prosty pokaz slajdów
    • Dodatkowe punkty, jeśli nie używasz JS.
  • Jakich narzędzi używasz do sprawdzenia wydajności swojego kodu?
    • Profiler, JSPerf, Dromaeo
  • Gdybyś mógł opanować jedną technologię w tym roku, jaka byłaby to technologia?
  • Wyjaśnij znaczenie standardów sieciowych i ich twórców.
  • Czym jest FOUC? Jak unikasz FOUC?

Pytania HTML:

  • Co robi doctype i jakie znasz przykłady?
  • Jaka jest różnica między trybem standardów a trybem dziwactw (quirks mode)?
  • Jakie są ograniczenia w serwowaniu stron XHTML?
    • Czy istnieją problemy z serwowaniem stron jako application/xhtml+xml?
  • Jak serwujesz stronę z treścią w wielu językach?
    • Co jest ważne przy projektowaniu i tworzeniu stron wielojęzycznych?
  • Jaka jest przydatność atrybutów data-
  • Rozpatrujemy HTML5 jako otwartą platformę internetową. Jakie składniki tworzą HTML5?
  • Opisz różnice między cookies, sessionStorage i localStorage.

Pytania JS:

  • Wyjaśnij delegację zdarzeń.
  • Wyjaśnij jak działa this w JavaScripcie.
  • Wyjaśnij jak działa dziedziczenie prototypowe.
  • Jak radzisz sobie z testowaniem swojego kodu JavaScript?
  • AMD kontra CommonJS?
  • Czym jest tablica mieszająca (hashtable)?
  • Co oznaczają komunikaty undefined i undeclared dla zmiennych?
  • Czym są domknięcia, jak i po co są używane?
    • Ulubiony wzorzec używany do ich tworzenia? argyle (Dotyczy tylko IIFE)
  • Jakie znasz typowe użycie funkcji anonimowych?
  • Wyjaśnij pojęcie “Moduł JavaScript” i kiedy jest warte stosowania.
    • Dodatkowe punkty za wzmiankę na temat czystości przestrzeni nazw.
    • Co jeśli Twój kod nie używa przestrzeni nazw?
  • Jak organizujesz swój kod? (moduły, klasyczne dziedziczenie?)
  • Jaka jest różnicza między obiektami typu host i native?
  • Różnica między:
function Person(){} var person = Person() var person = new Person()
  • Jaka jest różnica między .call i .apply?
  • Wyjaśnij Function.prototype.bind?
  • Kiedy optymalizujesz swój kod?
  • Wyjaśnij działanie dziedziczenia w JavaScript?
  • Kiedy użyłbyś document.write()?
    • Wiele generowanych reklam używa document.write() choć nie jest to mile widziane
  • Jakie są różnice między wykrywaniem obsługi funkcji, wnioskowaniem obsługi funkcji i używaniem ciągu UA?
  • Omów AJAX jak najbardziej szczegółowo.
  • Wyjaśnij działanie JSONP (i dlaczego nie jest właściwie AJAX).
  • Czy kiedykolwiek używałeś szablonów w JavaScript?
    • Jeśli tak, jakie to były biblioteki? (Mustache.js, Handlebars itd.)
  • Wyjaśnij pojęcie “hoisting”.
  • Opisz bąbelkowanie zdarzeń.
  • Jak jest różnica między “atrybutem” i “właściwością”?
  • Czemu rozszerzanie obiektów wbudowanych w JavaScript jest złym pomysłem?
  • Czemu rozszerzanie to dobry pomysł?
  • Jak jest różnicą między zdarzeniami load i ready dla strony internetowej?
  • Jaka jest różnica między == i ===?
  • Wyjaśnij ewentualny sposób pobrania parametrów z adresu URL w oknie przeglądarki.
  • Wyjaśnij politykę same-origin w odniesieniu do JavaScript.
  • Opisz wzorce dziedziczenia w JavaScript.
  • Napisz działający kod:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opisz strategię zapamiętywania (unikanie powtarzalnych obliczeń) w JavaScript.
  • Dlaczego mówimy wyrażenie trójkowe, co dokładnie oznacza słowo “trójkowy”?
  • Czym jest arity funkcji?
  • Co oznacza "use strict";? Jakie są zalety i wady takiego rozwiązania?

Przykłady kodu JS:

~~3.14

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: 3

"i'm a lasagna hog".split("").reverse().join("");

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pytanie: Jaka jest wartość window.foo?
Odpowiedź: "bar"
tylko jeśli window.foo było fałszywe, w innym przypadku zwraca swoją wartość.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pytanie: Jaki będzie wyniki wywołania dwóch powyższych poleceń alert?
Odpowiedź: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: 2

var foo = {};
foo.bar = 'hello';

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: undefined

Pytania jQuery:

  • Wyjaśnij termin “chaining”.
  • Wyjaśnij termin “deferreds”.
  • Jakie przykłady optymalizacji jQuery potrafisz wykonać?
  • Co robi .end()?
  • Jak i dlaczego użyjesz przestrzeni nazw przy obsłudze wiązania zdarzeń?
  • Podaj 4 różne wartości, jakie możesz przekazać do metody jQuery.
    • Selektor (string), HTML (string), funkcja zwrotna, HTMLElement, obiekt, tablica, element tablicy, obiekt jQuery itd.
  • Co to jest kolejka effects (lub fx)?
  • Jakie są różnice między .get(), [], i .eq()?
  • Jakie są różnice między .bind(), .live(), i .delegate()?
  • Jakie są różnice między $ i $.fn? Czym jest $.fn?
  • Zoptymalizuj selektor:
$(".foo div#bar:eq(0)")

Pytania CSS:

  • Opisz, czym jest plik “reset” dla CSS i dlaczego jest użyteczny.
  • Opisz jak działa właściwość float.
  • Jakie znasz techniki kasowania (clearing) i kiedy wskazane jest ich stosowanie?
  • Wyjaśnij technikę “CSS sprites” oraz sposób jej wdrożenia na stronie.
  • Jakie są Twoje ulubione techniki zastępowania obrazów i kiedy je stosujesz?
  • Haczyki właściwości CSS, warunkowe dołączanie plików .css lub… coś innego?
  • Jak serwujesz strony dla przeglądarek z ograniczonym wsparciem funkcji?
    • Jakie techniki stosujesz?
  • Jakie istnieją sposoby wizualnego ukrycia treści (uczynienia ich dostępnymi tylko dla czytników ekranu)?
  • Czy kiedykolwiek używałeś systemów siatek, a jeśli tak, to jakie preferujesz?
  • Czy używałeś ‘media queries’ lub tworzyłeś konkretne układy i arkusze dla urządzeń mobilnych?
  • Czy miałeś styczność ze stylizacją SVG?
  • Jak optymalizujesz swoje strony do druku?
  • Jakie stosujesz “sztuczki” przy pisaniu efektywnych CSS?
  • Czy używasz narzędzi do przetwarzania CSS? (SASS, Compass, Stylus, LESS)
    • Jeśli tak, opisz cechy, które lubisz i nie lubisz w używanych narzędziach.
  • Jak tworzysz i wdrażasz projekt używający niestandardowych czcionek?
    • Czcionki sieciowe (serwisy czcionek jak: Google Webfonts, Typekit itd.)
  • Wyjaśnij jak przeglądarka określa elementy pasujące do selektora CSS?

Pytania dodatkowe (zabawne):

  • Opowiedz o najfajniejszej rzeczy jaką kiedykolwiek zakodowałeś. Z czego jesteś najbardziej dumny?
  • Jakie są Twoje ulubione części narzędzi programistycznych, których używasz?
  • Czy masz jakiś swój własny projekt na boku? Jaki?
  • Jaka jest Twoja ulubiona funkcja w Internet Explorer?
\ No newline at end of file diff --git a/_site/translations/portuguese/index.html b/_site/translations/portuguese/index.html index 6a4d66097..74086fabf 100644 --- a/_site/translations/portuguese/index.html +++ b/_site/translations/portuguese/index.html @@ -1 +1 @@ -Questões para entrevista de profissionais Front-end ★ Front-end Job Interview Questions

Questões para entrevista de profissionais Front-end

Questões para entrevista de profissionais Front-end

Este repositório contém uma série de perguntas para entrevista de profissionais de front-end que podem ser usadas para avaliar os candidatos. Não é recomendado de maneira alguma usar todas as perguntas aqui no mesmo candidato (que levaria horas). A escolha de alguns itens dessa lista deverá ajudar a identificar as habilidades requeridas do candidato.

O artigo Baseline For Front-End Developers de Rebecca Murphey é também uma ótima fonte para ler antes de entrevistar um candidato.

Note: Tenha em mente que muitas destas questões estão em aberto e poderia levar à discussões interessantes que dizem mais sobre as capacidades do candidato do que a resposta em si.

Tabela de Conteúdos

  1. Contribuintes Originais
  2. Questões Gerais
  3. Questões de HTML
  4. Questões de CSS
  5. Questões de JS
  6. Questões de jQuery
  7. Questões de Código
  8. Questões Divertidas
  9. Outras Grandes Referências
  10. Licença

Contribuintes originais:

A maiorida das questões foram retiradas de um _thread_da oksoclap originalmente criada por Paul Irish (@paul_irish) e com a contribuição das seguintes pessoas: @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

Questões Gerais:

  • O que você aprendeu ontem ou esta semana?
  • O que te excita ou te interessa em programação/codificação?
  • Quais as suas considerações sobre UI, Segurança, Perfomance, Aplicação, Manutenibilidade ou Tecnologia quando você desenvolve uma aplicação web ou site?
  • Fale sobre seu ambiente de desenvolvimento preferido. (SO, Editor, Browser, Ferramentas, etc.)
  • Com quais sistemas de controle de versão você é familiar?
  • Descreva seu trabalho quando cria uma página web.
  • Se você tivesse 5 diferentes arquivos de folhas de estilo, qual seria a melhor forma de integrá-los no site?
    • Concatenação de arquivos
  • Descreva a diferença entre progressive enhancement and graceful degradation.
    • Bônus se descrever ou mencionar detecção de recursos.
  • Como você pode otimizar os recursos de um site?
    • À procura de uma série de soluções que possam incluir:
      • Concatenação de arquivo
      • “Minificação” de arquivo
      • Utilização de CDN
      • Caching
      • etc.
  • Por que é melhor servir recursos de um site de múltiplos domínios?
  • Fale 3 formas de diminuir o page load (tempo de carregamento real e percebido)
  • Se você caísse em um projeto que as pessoas usam tabs para indentação e você usa espaços, o que você faria?
    • Sugerir que o projeto utilize algo como EditorConfig (http://editorconfig.org)
    • Se conformar com as convenções (ficar consistente)
    • issue :retab! command
  • Escreva uma página simples de slideshow
    • Bônus se não usar JS.
  • Quais ferramentas você usa para testar a performance do seu código?
    • Profiler, JSPerf, Dromaeo
  • Se você pudesse dominar uma tecnologia deste ano, qual seria?
  • Quais as diferenças entre Long-Polling, Websockets and SSE?
  • Explique a importância de normas e órgãos normativos.
  • O que é FOUC? Como você evita FOUC?
  • Dê a sua melhor descrição do processo do momento que você digita a URL de um website até o final do carregamento da página na sua tela.

Questões de HTML:

  • O que um doctype faz?
  • Qual a diferença entre standards mode e quirks mode?
  • Quais as limitações quando utilizamos páginas XHTML?
    • Existe algum problema em utilizar páginas como application/xhtml+xml?
  • Como você desenvolve uma página com conteúdo em múltiplos idiomas?
    • Que tipo de coisas que você deve tomar cuidado ao desenvolver um website multi-língua?
  • Quais são os benefícios em utilizar o atributo data-?
  • Considere o HTML5 como uma plataforma web aberta. Quais são os blocos de construção de HTML5?
  • Descreva a diferença entre cookies, sessionStorage e localStorage.
  • Você pode explicar a diferença entre GET e POST?

Questões de CSS:

  • Qual é a diferença entre classes e IDs no CSS?
  • Descreva o que é o arquivo “reset” do CSS e o que ele faz e como ele é útil.
    • Bônus para identicação das desvantagens de um reset e/ou mencionar normalize como uma melhor alternativa.
  • Descreva o que são Floats e como eles funcionam.
  • Descreva z-index e como o empilhamento do contexto é formado.
  • Quais são as várias técnicas para “clearing” e quais delas são apropriadas para qual contexto?
  • Explique o que são CSS Sprites, e como você implementaria eles em um website.
  • Quais são suas técnicas favoritas para troca de imagens e quais dela você usa.
  • CSS Hacks, arquivo condicional .css, ou… alguma outra coisa?
  • Como você desenvolve sua página para browsers com recursos limitados?
    • Quais técnicas/processos você usa?
  • Quais são as diferentes formas de visualizar conteúdo escondido (e como fazer para deixar eles disponíveis apenas para leitores de tela?)
  • Você já utilizou algum sistema de grid, se sim, qual você prefere?
  • Você já utilizou ou implementou media queries ou CSSs específicos para mobile?
  • Qual sua familiaridade com SVG?
  • Como você optimiza suas páginas para impressão?
  • Quais são algumas técnicas para escrever um eficiente CSS?
  • Você já utilizou pré-processadores CSS? (SASS, Compass, Stylus, LESS)
    • Se sim, descreva o que você gostou e o que não gostou com eles.
  • Como você implementaria um website que não utilizaria fontes padrões nos computadores?
    • Webfonts (Serviços como: Google Webfonts, Typekit, etc.)
  • Explique como um browser determina quais os elementos que correspondem a um seletor CSS.
  • Explique o que você entende sobre box model e como você poderia dizer para o navegador en CSS para renderizar seu layout em diferentes box models.
  • O que * { box-sizing: border-box; } faz? Quais são as vantagens?
  • Liste quantas propriedades display você puder lembrar.
  • Qual a diferença entre inline e inline-block?
  • Qual a diferença entre elementos posicionados de forma relativa, fixa, absoluta e estática?
  • Quais frameworks CSS você tem usado localmente ou em produção? (Bootstrap, PureCSS, Foundation, etc.)
    • Se sim, quais deles? Se você puder, como você mudaria/melhoraria ele(s)?
  • Você já brincou com as novas especificações de CSS Flexbox e CSS Grid?
  • Como o design responsivo é diferente do design adaptavel?
  • Você já trabalhou com gráficos retina? Se sim, quando e quais técnicas você usou?

Questões de JS:

  • Explique o evento delegation.
  • Explique como this funciona em JavaScript.
  • Explique como funciona herança prototipada.
  • Como você testa seu JavaScript?
  • AMD vs. CommonJS?
  • Explique por que a seguinte função não funciona como uma IIFE: function foo(){ }();.
    • O que precisa ser alterado para se tornar uma IIFE?
  • Qual a diferença entre uma variável que null, undefined ou undeclared?
    • Como você verificaria esses estados?
  • O que é uma closure, e como/por que você usaria uma?
  • Qual o caso de uso típico para funções anônimas?
  • Como você organiza seu código? (module pattern, herança clássica?)
  • Qual a diferença entre objetos herdados e objetos nativos?
    Qual a diferença entre: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual a diferença entre .call e .apply?
  • Explique Function.prototype.bind.
  • Quando você otimiza seu código?
  • Você pode explicar como funciona a herença no Javascript?
  • Quando você deve usar o document.write()?
    • A maioria dos anúncios de publicidade ainda utilizam document.write() embora seu uso não seja recomendado.
  • Qual a diferença entre feature detection, feature inference, e o uso de UA string?
  • Explique o que é AJAX o mais detalhadamente possível.
  • Explique como o JSONP funciona (e como ele realmente não é AJAX).
  • Você já utilizou templates com Javascript?
    • Se sim, quais bibliotecas foram utilizadas? (Mustache.js, Handlebars, etc.)
  • Explique o que é “hoisting”.
  • Descreva o que é event bubbling.
  • Qual a diferença entre “atributo” e “propriedade”?
  • Porque a extensão de objetos nativos não é uma boa ideia?
  • Qual a diferença entre o evento document load e o evento document ready?
  • Qual a diferença entre == e ===?
  • Explique como você pega um parâmetro na URL do browser.
  • Explique a política de same-origin em relação a Javascript.
  • Faça isso funcionar:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • O que é um operador ternário, o que a palavra “ternário” indica/significa?
  • O que é o "use strict";? Quais a vantagens e desvantagens de sua utilização?
  • Crie um loop for que itere até 100 enquanto retorna fizz em múltiplos de 3, buzz em múltiplos de 5 e fizzbuzz em múltiplos de 3 e 5.

Questões de jQuery:

  • Explique “chaining”.
  • Explique “deferreds”.
  • Quais são algumas otimizações de jQuery que você pode implementar?
  • O que .end() faz?
  • Nomeie 4 valores diferentes que você pode passar para um método jQuery.
    • Seletor (string), HTML (string), Callback (function), HTMLElement, object, array, elemento de array, jQuery Object, etc.
  • Qual a diferença entre .get(), [], e .eq()?

Questões de código:

Questão: Como você faria isso funcionar?

add(2, 5); // 7
add(2)(5); // 7

Questão: Qual valor é retornado da seguinte declaração?

"sou uma lasanha".split("").reverse().join("");

Resposta: "ahnasal amu uos"

Questão: Qual é o valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Resposta: “bar” (apenas se window.foo for falso, se não ele vai retornar o seu valor próprio).

Questão: Qual o retorno dos dois alerts abaixo?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Resposta: “Hello World” & ReferenceError: bar is not defined

Questão: Qual o valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Resposta: 2

Questões Divertidas:

  • Qual a coisa mais legal que você desenvolveu recentement? Qual você ficou mais orgulhoso?
  • Quais suas partes favoritas sobre as ferramentas de desenvolvimento que você usa?
  • Você teve algum projeto para animais de estimação? Qual tipo?
  • Qual sua feature favorita do Internet Explorer?

Outras Grandes Referências:

Licença:

Lançado sobre a Licença MIT. Veja o arquivo LICENSE para detalhes.

\ No newline at end of file +Questões para entrevista de profissionais Front-end ★ Front-end Job Interview Questions

Questões para entrevista de profissionais Front-end

Questões para entrevista de profissionais Front-end

Este repositório contém uma série de perguntas para entrevista de profissionais de front-end que podem ser usadas para avaliar os candidatos. Não é recomendado de maneira alguma usar todas as perguntas aqui no mesmo candidato (que levaria horas). A escolha de alguns itens dessa lista deverá ajudar a identificar as habilidades requeridas do candidato.

O artigo Baseline For Front-End Developers de Rebecca Murphey é também uma ótima fonte para ler antes de entrevistar um candidato.

Note: Tenha em mente que muitas destas questões estão em aberto e poderia levar à discussões interessantes que dizem mais sobre as capacidades do candidato do que a resposta em si.

Tabela de Conteúdos

  1. Contribuintes Originais
  2. Questões Gerais
  3. Questões de HTML
  4. Questões de CSS
  5. Questões de JS
  6. Questões de jQuery
  7. Questões de Código
  8. Questões Divertidas
  9. Outras Grandes Referências
  10. Licença

Contribuintes originais:

A maiorida das questões foram retiradas de um _thread_da oksoclap originalmente criada por Paul Irish (@paul_irish) e com a contribuição das seguintes pessoas: @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

Questões Gerais:

  • O que você aprendeu ontem ou esta semana?
  • O que te excita ou te interessa em programação/codificação?
  • Quais as suas considerações sobre UI, Segurança, Perfomance, Aplicação, Manutenibilidade ou Tecnologia quando você desenvolve uma aplicação web ou site?
  • Fale sobre seu ambiente de desenvolvimento preferido. (SO, Editor, Browser, Ferramentas, etc.)
  • Com quais sistemas de controle de versão você é familiar?
  • Descreva seu trabalho quando cria uma página web.
  • Se você tivesse 5 diferentes arquivos de folhas de estilo, qual seria a melhor forma de integrá-los no site?
    • Concatenação de arquivos
  • Descreva a diferença entre progressive enhancement and graceful degradation.
    • Bônus se descrever ou mencionar detecção de recursos.
  • Como você pode otimizar os recursos de um site?
    • À procura de uma série de soluções que possam incluir:
      • Concatenação de arquivo
      • “Minificação” de arquivo
      • Utilização de CDN
      • Caching
      • etc.
  • Por que é melhor servir recursos de um site de múltiplos domínios?
  • Fale 3 formas de diminuir o page load (tempo de carregamento real e percebido)
  • Se você caísse em um projeto que as pessoas usam tabs para indentação e você usa espaços, o que você faria?
    • Sugerir que o projeto utilize algo como EditorConfig (http://editorconfig.org)
    • Se conformar com as convenções (ficar consistente)
    • issue :retab! command
  • Escreva uma página simples de slideshow
    • Bônus se não usar JS.
  • Quais ferramentas você usa para testar a performance do seu código?
    • Profiler, JSPerf, Dromaeo
  • Se você pudesse dominar uma tecnologia deste ano, qual seria?
  • Quais as diferenças entre Long-Polling, Websockets and SSE?
  • Explique a importância de normas e órgãos normativos.
  • O que é FOUC? Como você evita FOUC?
  • Dê a sua melhor descrição do processo do momento que você digita a URL de um website até o final do carregamento da página na sua tela.

Questões de HTML:

  • O que um doctype faz?
  • Qual a diferença entre standards mode e quirks mode?
  • Quais as limitações quando utilizamos páginas XHTML?
    • Existe algum problema em utilizar páginas como application/xhtml+xml?
  • Como você desenvolve uma página com conteúdo em múltiplos idiomas?
    • Que tipo de coisas que você deve tomar cuidado ao desenvolver um website multi-língua?
  • Quais são os benefícios em utilizar o atributo data-?
  • Considere o HTML5 como uma plataforma web aberta. Quais são os blocos de construção de HTML5?
  • Descreva a diferença entre cookies, sessionStorage e localStorage.
  • Você pode explicar a diferença entre GET e POST?

Questões de CSS:

  • Qual é a diferença entre classes e IDs no CSS?
  • Descreva o que é o arquivo “reset” do CSS e o que ele faz e como ele é útil.
    • Bônus para identicação das desvantagens de um reset e/ou mencionar normalize como uma melhor alternativa.
  • Descreva o que são Floats e como eles funcionam.
  • Descreva z-index e como o empilhamento do contexto é formado.
  • Quais são as várias técnicas para “clearing” e quais delas são apropriadas para qual contexto?
  • Explique o que são CSS Sprites, e como você implementaria eles em um website.
  • Quais são suas técnicas favoritas para troca de imagens e quais dela você usa.
  • CSS Hacks, arquivo condicional .css, ou… alguma outra coisa?
  • Como você desenvolve sua página para browsers com recursos limitados?
    • Quais técnicas/processos você usa?
  • Quais são as diferentes formas de visualizar conteúdo escondido (e como fazer para deixar eles disponíveis apenas para leitores de tela?)
  • Você já utilizou algum sistema de grid, se sim, qual você prefere?
  • Você já utilizou ou implementou media queries ou CSSs específicos para mobile?
  • Qual sua familiaridade com SVG?
  • Como você optimiza suas páginas para impressão?
  • Quais são algumas técnicas para escrever um eficiente CSS?
  • Você já utilizou pré-processadores CSS? (SASS, Compass, Stylus, LESS)
    • Se sim, descreva o que você gostou e o que não gostou com eles.
  • Como você implementaria um website que não utilizaria fontes padrões nos computadores?
    • Webfonts (Serviços como: Google Webfonts, Typekit, etc.)
  • Explique como um browser determina quais os elementos que correspondem a um seletor CSS.
  • Explique o que você entende sobre box model e como você poderia dizer para o navegador en CSS para renderizar seu layout em diferentes box models.
  • O que * { box-sizing: border-box; } faz? Quais são as vantagens?
  • Liste quantas propriedades display você puder lembrar.
  • Qual a diferença entre inline e inline-block?
  • Qual a diferença entre elementos posicionados de forma relativa, fixa, absoluta e estática?
  • Quais frameworks CSS você tem usado localmente ou em produção? (Bootstrap, PureCSS, Foundation, etc.)
    • Se sim, quais deles? Se você puder, como você mudaria/melhoraria ele(s)?
  • Você já brincou com as novas especificações de CSS Flexbox e CSS Grid?
  • Como o design responsivo é diferente do design adaptavel?
  • Você já trabalhou com gráficos retina? Se sim, quando e quais técnicas você usou?

Questões de JS:

  • Explique o evento delegation.
  • Explique como this funciona em JavaScript.
  • Explique como funciona herança prototipada.
  • Como você testa seu JavaScript?
  • AMD vs. CommonJS?
  • Explique por que a seguinte função não funciona como uma IIFE: function foo(){ }();.
    • O que precisa ser alterado para se tornar uma IIFE?
  • Qual a diferença entre uma variável que null, undefined ou undeclared?
    • Como você verificaria esses estados?
  • O que é uma closure, e como/por que você usaria uma?
  • Qual o caso de uso típico para funções anônimas?
  • Como você organiza seu código? (module pattern, herança clássica?)
  • Qual a diferença entre objetos herdados e objetos nativos?
    Qual a diferença entre: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual a diferença entre .call e .apply?
  • Explique Function.prototype.bind.
  • Quando você otimiza seu código?
  • Você pode explicar como funciona a herença no Javascript?
  • Quando você deve usar o document.write()?
    • A maioria dos anúncios de publicidade ainda utilizam document.write() embora seu uso não seja recomendado.
  • Qual a diferença entre feature detection, feature inference, e o uso de UA string?
  • Explique o que é AJAX o mais detalhadamente possível.
  • Explique como o JSONP funciona (e como ele realmente não é AJAX).
  • Você já utilizou templates com Javascript?
    • Se sim, quais bibliotecas foram utilizadas? (Mustache.js, Handlebars, etc.)
  • Explique o que é “hoisting”.
  • Descreva o que é event bubbling.
  • Qual a diferença entre “atributo” e “propriedade”?
  • Porque a extensão de objetos nativos não é uma boa ideia?
  • Qual a diferença entre o evento document load e o evento document ready?
  • Qual a diferença entre == e ===?
  • Explique como você pega um parâmetro na URL do browser.
  • Explique a política de same-origin em relação a Javascript.
  • Faça isso funcionar:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • O que é um operador ternário, o que a palavra “ternário” indica/significa?
  • O que é o "use strict";? Quais a vantagens e desvantagens de sua utilização?
  • Crie um loop for que itere até 100 enquanto retorna fizz em múltiplos de 3, buzz em múltiplos de 5 e fizzbuzz em múltiplos de 3 e 5.

Questões de jQuery:

  • Explique “chaining”.
  • Explique “deferreds”.
  • Quais são algumas otimizações de jQuery que você pode implementar?
  • O que .end() faz?
  • Nomeie 4 valores diferentes que você pode passar para um método jQuery.
    • Seletor (string), HTML (string), Callback (function), HTMLElement, object, array, elemento de array, jQuery Object, etc.
  • Qual a diferença entre .get(), [], e .eq()?

Questões de código:

Questão: Como você faria isso funcionar?

add(2, 5); // 7
add(2)(5); // 7

Questão: Qual valor é retornado da seguinte declaração?

"sou uma lasanha".split("").reverse().join("");

Resposta: "ahnasal amu uos"

Questão: Qual é o valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Resposta: “bar” (apenas se window.foo for falso, se não ele vai retornar o seu valor próprio).

Questão: Qual o retorno dos dois alerts abaixo?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Resposta: “Hello World” & ReferenceError: bar is not defined

Questão: Qual o valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Resposta: 2

Questões Divertidas:

  • Qual a coisa mais legal que você desenvolveu recentement? Qual você ficou mais orgulhoso?
  • Quais suas partes favoritas sobre as ferramentas de desenvolvimento que você usa?
  • Você teve algum projeto para animais de estimação? Qual tipo?
  • Qual sua feature favorita do Internet Explorer?

Outras Grandes Referências:

Licença:

Lançado sobre a Licença MIT. Veja o arquivo LICENSE para detalhes.

\ No newline at end of file diff --git a/_site/translations/romanian/index.html b/_site/translations/romanian/index.html index 6555c4e92..012fea2cb 100644 --- a/_site/translations/romanian/index.html +++ b/_site/translations/romanian/index.html @@ -1 +1 @@ -Întrebări pentru interviu tehnic web front-end ★ Front-end Job Interview Questions

Întrebări pentru interviu tehnic web front-end

Întrebări pentru interviu tehnic web front-end

Acest fișier conține o serie de întrebări pentru interviuri tehnice pe partea
de front-end, care pot fi folosite pentru a verifica un potențial candidat. Nu
este deloc recomandat să fie folosite toate întrebările pentru un singur
candidat (ar lua câteva ore). Alegând câteva întrebări din această listă ar
trebui să te ajute în verificarea calităților pe care le urmărești.

Notă: Ține minte că multe dintre întrebări au răspuns liber și ar
putea duce la discuții interesante care ți-ar putea spune mai multe despre
capacitățile persoanei.

Cuprins

  1. Întrebări generale
  2. Întrebări despre HTML
  3. Întrebări despre CSS
  4. Întrebări despre JS
  5. Întrebări despre testare
  6. Întrebări despre perfomanță
  7. Întrebări despre rețea
  8. Întrebări despre programare
  9. Întrebări amuzante

Procesul de implicare

  1. Contribuitori
  2. Cum să contribui
  3. Licență

####[⬆] Întrebări generale:

  • Ce ai învățat ieri/săptămâna asta?
  • Ce te fascinează sau interesează la programare?
  • Ce provocare technica ai intampinat recent si cum ai rezlovat-o?
  • Ce aspecte de UI, Securitate, Performanță, SEO, Întreținere sau Tehnologie
    iei în cosiderare când construiești o aplicație web sau un site?
  • Povestește despre mediul de lucru preferat.
  • Îți poți descrie fluxul de lucru când creezi o pagină web?
  • Dacă ai 5 fișiere cu cod CSS, cum le poți integra cel mai bine în site?
  • Poți descrie diferența dintre “progressive enhancement” și “graceful
    degradation”?
  • Cum ai optimiza resursele statice ale unui site?
  • Câte resurse poate un browser descărca de la un domeniu la un moment dat?
    • Care sunt excepțiile?
  • Numește 3 moduri pentru a scădea timpul de încarcare a paginii. (perceput
    sau chiar timpul de descărcare)
  • Dacă intri într-un proiect și se folosesc taburi în loc de spații, ce faci?
  • Descrie modul în care ai crea o simplă pagină de prezentare.
  • Ce unelte folosești pentru a testa performanța codului pe care îl scrii?
  • Dacă ai putea învăța o tehnologie anul asta, care ar fi?
  • Explică importanța standardelor și a organismelor de standardizare.
  • Ce este Flash of Unstyled Content? Cum eviți FOUC?
  • Explică ce sunt screenreaders și ARIA și cum faci un site accesibil.
  • Compară părți bune și negative pentru animații CSS versus animații JavaScript.
  • Ce reprezintă CORS si ce probleme incearcă să rezolve?

####[⬆] Întrebări despre HTML:

  • La ce este util doctype?
  • Care este diferența dintre “standards mode” și “quirks mode”?
  • Care este diferența dintre HTML și XHTML?
  • Apar probleme când servești pagini ca application/xhtml+xml?
  • Cum servești o pagină cu conținut în mai multe limbi?
  • La ce trebuie să fii atent când creezi un design sau dezvolți pentru site-uri
    multilingve
  • La ce sunt utile atributele data-?
  • Considerând HTML5 ca o platformă web deschisă, care sunt parțile
    componente alte HTML5?
  • Descrie diferența dintre cookies, sessionStorage și localStorage.
  • Descrie diferența dintre <script>, <script async> și <script defer>.
  • Ce înseamnă randare progresivă?
  • Ai folosit altceva în afară de HTML până acum?

####[⬆] Întrebări despre CSS:

  • Care este diferența dintre clase și ID-uri în CSS?
  • Care este diferența între a ‘reseta’ și a ‘normaliza’ in CSS? Pe care ai
    alege-o și de ce?
  • Descrie ‘Float’ si cum funcționează.
  • Descrie z-index și cum se formează stacking context.
  • Descrie BFC(Block Formatting Context) și cum functionează.
  • Care sunt diferitele metode de a ‘curăța’ (clearing) și care este potrivită
    pentru ce context?
  • Explică conceptul de CSS sprites și cum le-ai implementa pe o pagină sau
    un site.
  • Care sunt tehnicile tale preferate pentru înlocuirea imaginilor și care
    când le folosești?
  • Hack-uri de proprietăți CSS, includerea condițională a fișierelor .css,
    sau… altceva?
  • Cum servești pagini pentru browsere cu capabilități reduse?
    • Ce procese/tehnici folosești?
  • Care sunt diferitele modalități de a ascunde vizual conținut (dar sa-l
    faci disponibil pentru cititoare de ecrane) ?
  • Ai folosit vreodată un sistem ‘grid’ și dacă da, ce preferi?
  • Ai folosit sau implementat ‘media queries’ sau interfețe/CSS specific
    pentru mobile?
  • Ești familiar cu stilizarea unui SVG?
  • Cum optimizezi paginile pentru print?
  • Ceva ‘gotchas’ când scrii CSS eficient?
  • Care sunt avantajele/dezavantajele folosirii preprocesoarelor CSS (SASS,
    Compass, Stylus, LESS)
    • Descrie ce îți place respectiv nu îți place la preprocesoarele CSS pe
      care le-ai folosit
  • Cum ai implementa un design care folosește fonturi non-standard?
  • Explică cum un browser determina ce elemente se potrivesc unui selector CSS?
  • Descrie ‘pseudo-elements’ și explică la ce sunt folosite.
  • Explică, în cuvintele tale, conceptul “box model” si cum ai instrui
    browser-ul, prin CSS, sa randeze layoutul în modele diferite.
  • Ce face * { box-sizing: border-box; }? Care sunt avantajele?
  • Ce proprietăți de display știi?
  • Care este diferența între inline și inline-block?
  • Care este diferența între poziționarea relativă, fixă, absolută și statică
    a unui element?
  • C-ul din CSS vine de la Cascading. Cum este determinată prioritatea în
    atribuirea stilului (câteva exemple)? Cum folosești acest sistem în avantajul
    tău?
  • Ce framework CSS ai folosit local sau în producție? (Bootstrap, PureCSS,
    Foundation etc.)
    • Ce ai schimba / îmbunătăți la ele?
  • Ai avut ocazia să te joci cu noile specificații pentru CSS Flexbox sau Grid?
  • Cum este design-ul ‘responsive’ diferit de cel ‘adaptive’?
  • Ai lucrat vreodata pentru retina display? Dacă da, când și ce tehnici ai
    folosit?
  • Este vreun motiv pentru care ai vrea să folosești translate() în loc de
    posiționare absolută sau invers? De ce?

####[⬆] Întrebări despre JS:

  • Explică “event delegation”.
  • Explică cum funcționează this în JavaScript.
  • Explică cum funcționează moștenirea prototipală.
  • Cum îti testezi codul JavaScript?
  • Ce părere ai despre AMD vs. CommonJS?
  • Explică de ce următoarea nu functionează ca un IIFE: function foo(){ }();
    • Ce trebuie schimbat ca să o transformi într-o IIFE?
  • Care este diferența dintre o variabilă care este: null, undefined sau
    undeclared?
    • Cum ai face sa verifici după fiecare dintre stările acestea?
  • Ce este un “closure” și cum/de ce ai folosi unul?
  • Care este un caz în care sunt folosite funcții anonime?
  • Cum îți organizezi codul? (module pattern, moștenire?)
  • Care este diferența dintre obiecte host si obiecte native?
  • Diferența dintre: function Person(){}, var person = Person() și
    person = new Person()
  • Care este diferența dintre .call și .apply?
  • Explică Function.prototype.bind?
  • Când îți optimizezi codul?
  • Când ai folosi document.write()?
  • Care este diferența dintre ‘feature detection’, ‘feature inference’ și
    folosirea șirului User Agent?
  • Explică AJAX cât mai detaliat posibil.
  • Explică cum funcționează JSONP (și cum nu este chiar AJAX ).
  • Ai folosit vreodată template-uri JavaScript?
    • Dacă da, ce librării ai folosit? (Mustache.js, Handlebars etc.)
  • Explică “hoisting”.
  • Descrie “event bubbling”.
  • Care este diferența dintre un atribut și o proprietate?
  • De ce nu este o idee bună extinderea obiectelor JavaScript “built-in”?
  • Care este diferența dintre evenimentul “document load” și “document ready”?
  • Care este diferența dintre “==” și “===”?
  • Explică politica “same-origins” în legătură cu JavaScript.
  • Fă următorul cod să funcționeze:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ce este o expresie ternară și ce indică cuvântul ternar?
  • Ce este "use strict;" și care sunt avantajele și dezavantajele folosirii
    acestuia?
  • Create a for loop that iterates up to 100 while outputting "fizz"
    at multiples of 3, "buzz" at multiples of 5 and “fizzbuzz” at
    multiples of 3 and 5.
  • De ce este, de regulă, o idee bună să nu poluezi scope-ul global al unui
    website?
  • Explică ce este o ‘single page app’ și cum ai putea să improvizezi SEO-ul?
  • Care este gradul tău de experiență cu ‘Promises’ și/sau ‘polyfills’-ul lor?
  • Care sunt avantajele și dezavantajele in a folosi ‘Promises’ in loc de
    ‘callbacks’ ?
  • Care sunt avantajele și dezavantajele prin a scrie JavaScript într-o limbă ce
    compilează JavaScript?
  • Ce unelte si tehnici foloșeti pentru a ‘depana’ (debug) JavaScript?
  • Ce construcții de limbaj folosești pentru a itera peste proprietățile obiectelor și
    elmentele listelor (array)?
  • Explică diferența dintre obiectele mutabile și imutabile.
  • Ce exmplu de obiect imutabil poți da în JavaScript?
  • Avantaje si dezavantaje a imutabilității?
  • Cum poți obține imutabilitate în propriul cod?
  • Explică diferența dintre funcțiile sincrone (synchronous) și
    asincrone (asynchronous).
  • Ce este un ‘even loop’?
  • Care este diferența dintre ‘call stack’ si ‘task queue’?

####[⬆] Întrebări despre testare:

  • Care sunt avantajele/dezavantajele în a-ți testa codul?
  • Ce unelte ai folosi pentru a testa functionalitatea codului?
  • Care este diferența dintre unitatea de testare (unit test) și testarea de
    funcționalitate/integrare?
  • Care este scopul unei unelte de lintarea a stilului de cod?

####[⬆] Întrebări despre perfomanță:

  • Ce unelte ai folosi pentru a găsi bug-uri de performanță in codul tau?
  • Ce diferite metode prin care ai putea îmbunătăți performanța defilării
    (scroll) a unui site știi?
  • Explică diferența dintre o schemă (layout), desenare (painting) și compoziție
    (compositing).

####[⬆] Întrebări despre rețea:

  • Tradițional, de ce a fost mai bine să servești resurse de pe mai multe domenii?
  • Încearcă să descrii cât mai bine ce se întâmplă din momentul în care scrii
    un URL-ul unui site în browser până când este complet încărcat pe ecranul tău.
  • Care sunt diferențele dintre Long-Polling, WebSockets și Server-Sent Events?
  • Explică semnificația următoarelor antete HTTP:
    • Diferența dintre Expires, Date, Age și If-Modified
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Care sunt acțiunile HTTP? Listează toate acțiunile HTTP pe care le ști și
    explică-le.

####[⬆] Întrebări despre cod:

Întrebare: Care este valoarea lui foo?

var foo = 10 + '20';

Întrebare: Ce valoare returnează următorul cod?

console.log(0.1 + 0.2 == 0.3);

Întrebare: Cum ai face următoarea să funcționeze?

add(2, 5); // 7
add(2)(5); // 7

Întrebare: Ce valoare este returnată de expresia următoare?

"i'm a lasagna hog".split("").reverse().join("");

Întrebare: Care este valoare lui window.foo?

( window.foo || ( window.foo = "bar" ) );

Întrebare: Care este rezultatul celor două apelări ale funcției alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Întrebare: Care este valoarea lui foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Întrebare: Care este valoarea lui foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Întrebare: Ce output printează acest cod?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

####[⬆] Întrebări amuzante:

  • Povestește-mi despre un proiect mișto la care ai lucrat recent?
  • Ce îți place cel mai mult la uneltele de dezvoltare pe care le folosești?
  • Ai proiecte personale? Ce fel?
  • Care este funcționalitatea ta preferată din Internet Explorer?
  • Cum îți place cafeaua?

####[⬆] Contribuitori:

Acest document a început în 2009 ca o colaborare între
@paul_irish
@bentruyman
@cowboy
@ajpiano
@SlexAxton
@boazsender
@miketaylr
@vladikoff
@gf3
@jon_neal
@sambreed și
@iansym.

De atunci au contribuit mai mult de 100 de
persoane
!

\ No newline at end of file +Întrebări pentru interviu tehnic web front-end ★ Front-end Job Interview Questions

Întrebări pentru interviu tehnic web front-end

Întrebări pentru interviu tehnic web front-end

Acest fișier conține o serie de întrebări pentru interviuri tehnice pe partea
de front-end, care pot fi folosite pentru a verifica un potențial candidat. Nu
este deloc recomandat să fie folosite toate întrebările pentru un singur
candidat (ar lua câteva ore). Alegând câteva întrebări din această listă ar
trebui să te ajute în verificarea calităților pe care le urmărești.

Notă: Ține minte că multe dintre întrebări au răspuns liber și ar
putea duce la discuții interesante care ți-ar putea spune mai multe despre
capacitățile persoanei.

Cuprins

  1. Întrebări generale
  2. Întrebări despre HTML
  3. Întrebări despre CSS
  4. Întrebări despre JS
  5. Întrebări despre testare
  6. Întrebări despre perfomanță
  7. Întrebări despre rețea
  8. Întrebări despre programare
  9. Întrebări amuzante

Procesul de implicare

  1. Contribuitori
  2. Cum să contribui
  3. Licență

####[⬆] Întrebări generale:

  • Ce ai învățat ieri/săptămâna asta?
  • Ce te fascinează sau interesează la programare?
  • Ce provocare technica ai intampinat recent si cum ai rezlovat-o?
  • Ce aspecte de UI, Securitate, Performanță, SEO, Întreținere sau Tehnologie
    iei în cosiderare când construiești o aplicație web sau un site?
  • Povestește despre mediul de lucru preferat.
  • Îți poți descrie fluxul de lucru când creezi o pagină web?
  • Dacă ai 5 fișiere cu cod CSS, cum le poți integra cel mai bine în site?
  • Poți descrie diferența dintre “progressive enhancement” și “graceful
    degradation”?
  • Cum ai optimiza resursele statice ale unui site?
  • Câte resurse poate un browser descărca de la un domeniu la un moment dat?
    • Care sunt excepțiile?
  • Numește 3 moduri pentru a scădea timpul de încarcare a paginii. (perceput
    sau chiar timpul de descărcare)
  • Dacă intri într-un proiect și se folosesc taburi în loc de spații, ce faci?
  • Descrie modul în care ai crea o simplă pagină de prezentare.
  • Ce unelte folosești pentru a testa performanța codului pe care îl scrii?
  • Dacă ai putea învăța o tehnologie anul asta, care ar fi?
  • Explică importanța standardelor și a organismelor de standardizare.
  • Ce este Flash of Unstyled Content? Cum eviți FOUC?
  • Explică ce sunt screenreaders și ARIA și cum faci un site accesibil.
  • Compară părți bune și negative pentru animații CSS versus animații JavaScript.
  • Ce reprezintă CORS si ce probleme incearcă să rezolve?

####[⬆] Întrebări despre HTML:

  • La ce este util doctype?
  • Care este diferența dintre “standards mode” și “quirks mode”?
  • Care este diferența dintre HTML și XHTML?
  • Apar probleme când servești pagini ca application/xhtml+xml?
  • Cum servești o pagină cu conținut în mai multe limbi?
  • La ce trebuie să fii atent când creezi un design sau dezvolți pentru site-uri
    multilingve
  • La ce sunt utile atributele data-?
  • Considerând HTML5 ca o platformă web deschisă, care sunt parțile
    componente alte HTML5?
  • Descrie diferența dintre cookies, sessionStorage și localStorage.
  • Descrie diferența dintre <script>, <script async> și <script defer>.
  • Ce înseamnă randare progresivă?
  • Ai folosit altceva în afară de HTML până acum?

####[⬆] Întrebări despre CSS:

  • Care este diferența dintre clase și ID-uri în CSS?
  • Care este diferența între a ‘reseta’ și a ‘normaliza’ in CSS? Pe care ai
    alege-o și de ce?
  • Descrie ‘Float’ si cum funcționează.
  • Descrie z-index și cum se formează stacking context.
  • Descrie BFC(Block Formatting Context) și cum functionează.
  • Care sunt diferitele metode de a ‘curăța’ (clearing) și care este potrivită
    pentru ce context?
  • Explică conceptul de CSS sprites și cum le-ai implementa pe o pagină sau
    un site.
  • Care sunt tehnicile tale preferate pentru înlocuirea imaginilor și care
    când le folosești?
  • Hack-uri de proprietăți CSS, includerea condițională a fișierelor .css,
    sau… altceva?
  • Cum servești pagini pentru browsere cu capabilități reduse?
    • Ce procese/tehnici folosești?
  • Care sunt diferitele modalități de a ascunde vizual conținut (dar sa-l
    faci disponibil pentru cititoare de ecrane) ?
  • Ai folosit vreodată un sistem ‘grid’ și dacă da, ce preferi?
  • Ai folosit sau implementat ‘media queries’ sau interfețe/CSS specific
    pentru mobile?
  • Ești familiar cu stilizarea unui SVG?
  • Cum optimizezi paginile pentru print?
  • Ceva ‘gotchas’ când scrii CSS eficient?
  • Care sunt avantajele/dezavantajele folosirii preprocesoarelor CSS (SASS,
    Compass, Stylus, LESS)
    • Descrie ce îți place respectiv nu îți place la preprocesoarele CSS pe
      care le-ai folosit
  • Cum ai implementa un design care folosește fonturi non-standard?
  • Explică cum un browser determina ce elemente se potrivesc unui selector CSS?
  • Descrie ‘pseudo-elements’ și explică la ce sunt folosite.
  • Explică, în cuvintele tale, conceptul “box model” si cum ai instrui
    browser-ul, prin CSS, sa randeze layoutul în modele diferite.
  • Ce face * { box-sizing: border-box; }? Care sunt avantajele?
  • Ce proprietăți de display știi?
  • Care este diferența între inline și inline-block?
  • Care este diferența între poziționarea relativă, fixă, absolută și statică
    a unui element?
  • C-ul din CSS vine de la Cascading. Cum este determinată prioritatea în
    atribuirea stilului (câteva exemple)? Cum folosești acest sistem în avantajul
    tău?
  • Ce framework CSS ai folosit local sau în producție? (Bootstrap, PureCSS,
    Foundation etc.)
    • Ce ai schimba / îmbunătăți la ele?
  • Ai avut ocazia să te joci cu noile specificații pentru CSS Flexbox sau Grid?
  • Cum este design-ul ‘responsive’ diferit de cel ‘adaptive’?
  • Ai lucrat vreodata pentru retina display? Dacă da, când și ce tehnici ai
    folosit?
  • Este vreun motiv pentru care ai vrea să folosești translate() în loc de
    posiționare absolută sau invers? De ce?

####[⬆] Întrebări despre JS:

  • Explică “event delegation”.
  • Explică cum funcționează this în JavaScript.
  • Explică cum funcționează moștenirea prototipală.
  • Cum îti testezi codul JavaScript?
  • Ce părere ai despre AMD vs. CommonJS?
  • Explică de ce următoarea nu functionează ca un IIFE: function foo(){ }();
    • Ce trebuie schimbat ca să o transformi într-o IIFE?
  • Care este diferența dintre o variabilă care este: null, undefined sau
    undeclared?
    • Cum ai face sa verifici după fiecare dintre stările acestea?
  • Ce este un “closure” și cum/de ce ai folosi unul?
  • Care este un caz în care sunt folosite funcții anonime?
  • Cum îți organizezi codul? (module pattern, moștenire?)
  • Care este diferența dintre obiecte host si obiecte native?
  • Diferența dintre: function Person(){}, var person = Person() și
    person = new Person()
  • Care este diferența dintre .call și .apply?
  • Explică Function.prototype.bind?
  • Când îți optimizezi codul?
  • Când ai folosi document.write()?
  • Care este diferența dintre ‘feature detection’, ‘feature inference’ și
    folosirea șirului User Agent?
  • Explică AJAX cât mai detaliat posibil.
  • Explică cum funcționează JSONP (și cum nu este chiar AJAX ).
  • Ai folosit vreodată template-uri JavaScript?
    • Dacă da, ce librării ai folosit? (Mustache.js, Handlebars etc.)
  • Explică “hoisting”.
  • Descrie “event bubbling”.
  • Care este diferența dintre un atribut și o proprietate?
  • De ce nu este o idee bună extinderea obiectelor JavaScript “built-in”?
  • Care este diferența dintre evenimentul “document load” și “document ready”?
  • Care este diferența dintre “==” și “===”?
  • Explică politica “same-origins” în legătură cu JavaScript.
  • Fă următorul cod să funcționeze:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ce este o expresie ternară și ce indică cuvântul ternar?
  • Ce este "use strict;" și care sunt avantajele și dezavantajele folosirii
    acestuia?
  • Create a for loop that iterates up to 100 while outputting "fizz"
    at multiples of 3, "buzz" at multiples of 5 and “fizzbuzz” at
    multiples of 3 and 5.
  • De ce este, de regulă, o idee bună să nu poluezi scope-ul global al unui
    website?
  • Explică ce este o ‘single page app’ și cum ai putea să improvizezi SEO-ul?
  • Care este gradul tău de experiență cu ‘Promises’ și/sau ‘polyfills’-ul lor?
  • Care sunt avantajele și dezavantajele in a folosi ‘Promises’ in loc de
    ‘callbacks’ ?
  • Care sunt avantajele și dezavantajele prin a scrie JavaScript într-o limbă ce
    compilează JavaScript?
  • Ce unelte si tehnici foloșeti pentru a ‘depana’ (debug) JavaScript?
  • Ce construcții de limbaj folosești pentru a itera peste proprietățile obiectelor și
    elmentele listelor (array)?
  • Explică diferența dintre obiectele mutabile și imutabile.
  • Ce exmplu de obiect imutabil poți da în JavaScript?
  • Avantaje si dezavantaje a imutabilității?
  • Cum poți obține imutabilitate în propriul cod?
  • Explică diferența dintre funcțiile sincrone (synchronous) și
    asincrone (asynchronous).
  • Ce este un ‘even loop’?
  • Care este diferența dintre ‘call stack’ si ‘task queue’?

####[⬆] Întrebări despre testare:

  • Care sunt avantajele/dezavantajele în a-ți testa codul?
  • Ce unelte ai folosi pentru a testa functionalitatea codului?
  • Care este diferența dintre unitatea de testare (unit test) și testarea de
    funcționalitate/integrare?
  • Care este scopul unei unelte de lintarea a stilului de cod?

####[⬆] Întrebări despre perfomanță:

  • Ce unelte ai folosi pentru a găsi bug-uri de performanță in codul tau?
  • Ce diferite metode prin care ai putea îmbunătăți performanța defilării
    (scroll) a unui site știi?
  • Explică diferența dintre o schemă (layout), desenare (painting) și compoziție
    (compositing).

####[⬆] Întrebări despre rețea:

  • Tradițional, de ce a fost mai bine să servești resurse de pe mai multe domenii?
  • Încearcă să descrii cât mai bine ce se întâmplă din momentul în care scrii
    un URL-ul unui site în browser până când este complet încărcat pe ecranul tău.
  • Care sunt diferențele dintre Long-Polling, WebSockets și Server-Sent Events?
  • Explică semnificația următoarelor antete HTTP:
    • Diferența dintre Expires, Date, Age și If-Modified
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Care sunt acțiunile HTTP? Listează toate acțiunile HTTP pe care le ști și
    explică-le.

####[⬆] Întrebări despre cod:

Întrebare: Care este valoarea lui foo?

var foo = 10 + '20';

Întrebare: Ce valoare returnează următorul cod?

console.log(0.1 + 0.2 == 0.3);

Întrebare: Cum ai face următoarea să funcționeze?

add(2, 5); // 7
add(2)(5); // 7

Întrebare: Ce valoare este returnată de expresia următoare?

"i'm a lasagna hog".split("").reverse().join("");

Întrebare: Care este valoare lui window.foo?

( window.foo || ( window.foo = "bar" ) );

Întrebare: Care este rezultatul celor două apelări ale funcției alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Întrebare: Care este valoarea lui foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Întrebare: Care este valoarea lui foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Întrebare: Ce output printează acest cod?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

####[⬆] Întrebări amuzante:

  • Povestește-mi despre un proiect mișto la care ai lucrat recent?
  • Ce îți place cel mai mult la uneltele de dezvoltare pe care le folosești?
  • Ai proiecte personale? Ce fel?
  • Care este funcționalitatea ta preferată din Internet Explorer?
  • Cum îți place cafeaua?

####[⬆] Contribuitori:

Acest document a început în 2009 ca o colaborare între
@paul_irish
@bentruyman
@cowboy
@ajpiano
@SlexAxton
@boazsender
@miketaylr
@vladikoff
@gf3
@jon_neal
@sambreed și
@iansym.

De atunci au contribuit mai mult de 100 de
persoane
!

\ No newline at end of file diff --git a/_site/translations/russian/index.html b/_site/translations/russian/index.html index f629d41dc..00a1e1c96 100644 --- a/_site/translations/russian/index.html +++ b/_site/translations/russian/index.html @@ -1 +1 @@ -Вопросы кандидату на должность front-end разработчика ★ Front-end Job Interview Questions

Вопросы кандидату на должность front-end разработчика

Вопросы кандидату на должность front-end разработчика

Замечание: Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность front-end разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь).

Также имейте в виду, что многие вопросы не требуют однозначного короткого ответа, а лишь помогают завести беседу на ту или иную тему (предоставляя кандидату возможность показать себя во всей красе).

Содержание

  1. Авторы
  2. Общие вопросы
  3. Вопросы по HTML
  4. Вопросы по CSS
  5. Вопросы по JavaScript
  6. Вопросы по тестированию
  7. Вопросы по производительности
  8. Вопросы по сетям
  9. Примеры кода на JavaScript
  10. “Светская беседа”

[⬆] Авторы

Этот проект был запущен в 2009 году в сотрудничестве с @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed и @iansym.

В настоящее время этот проект поддерживают:

С тех пор он был активным благодаря этим замечательным людям.

[⬆] Общие вопросы:

  • Что вы изучили вчера/на этой неделе?
  • Что вас привлекает в программировании?
  • С какой технической сложностью вы недавно столкнулись и как с ней справились?
  • Какие методы для повышения производительности вы использовали при создании или обслуживании сайта?
  • Можете ли вы описать некоторые методы SEO, которые вы использовали в последнее время?
  • Можете ли вы объяснить общие принципы относительно front-end безопасности или недавние проблемы, которые вы решили?
  • Какие действия вы лично предприняли в недавних проектах для повышения удобства использования вашего кода?
  • Расскажите о предпочтительной среде разработки.
  • С какими системами контроля версий вы знакомы?
  • Можете ли вы описать порядок действий при создании новой веб-страницы?
  • Если у вас есть 5 разных файлов со стилями, какой лучший способ интегрировать их в сайт?
  • Можете ли вы описать разницу между прогрессивным улучшением и изящной деградацией?
  • Как можно оптимизировать загрузку внешних ресурсов на странице?
  • Сколько ресурсов браузер может одновременно загружать с одного домена?
    • Какие есть исключения?
  • Назовите три способа уменьшения времени загрузки страницы (воспринимаемого или реального).
  • Если вы присоединились к проекту, где для форматирования используются табы, а вы привыкли использовать пробелы, как вы поступите?
  • Опишите, как бы вы реализовали примитивное слайд-шоу.
  • Если бы у Вас была возможность освоить новую технологию в этом году, что бы это было?
  • Объясните важность стандартов и комитетов по стандартам.
  • Что такое FOUC (Flash Of Unstyled Content)? Как его избежать?
  • Объясните, что такое ARIA и скринридеры, а также как сделать вебсайт доступным.
  • Какие преимущества и недостатки у CSS и JavaScript анимаций?
  • Что означает CORS и какую проблему решает?

[⬆] Вопросы по HTML:

  • Для чего нужен doctype?
  • Как следует оформлять страницу, содержимое которой может быть на разных языках?
  • На что необходимо обратить внимание при разработке мультиязычных сайтов?
  • Для чего отлично подойдут data- атрибуты?
  • Представьте HTML5 как открытую веб-платформу. Из каких блоков состоит HTML5?
  • Объясните разницу между cookie, sessionStorage и localStorage.
  • Объясните разницу между <script>, <script async> и <script defer>.
  • Почему хорошей практикой считается располагать <link> для подключения CSS между <head></head>, а <script> для подключения JS ставить перед </body>? Знаете ли вы исключения?
  • Что такое прогрессивный рендеринг?
  • Для чего используется атрибут srcset в теге изображения? Опишите процесс, который использует браузер при оценке содержимого этого атрибута.
  • Приходилось ли вам работать с языками HTML-шаблонизации?

[⬆] Вопросы по CSS:

  • Что такое специфичность CSS селекторов и как она работает?
  • В чем разница между “сбросом” и “нормализацией” CSS? Что бы вы выбрали и почему?
  • Объясните, что такое плавающие элементы (floats) и как они работают.
  • Объясните, что такое z-index и как формируется контекст наложения.
  • Объясните, что такое блочный контекст форматирования и как он работает.
  • Какие вы знаете методы запрета обтекания (clearing) и в каких случаях они применяются?
  • Как вы решаете стилевые проблемы, связанные с особенностями браузеров?
  • Как вы обеспечиваете отображение страниц в браузерах с ограниченными возможностями?
    • Какие приёмы/процессы вы при этом используете?
  • Какими способами можно визуально скрыть элемент (оставив его доступным только для скринридера)?
  • Использовали ли вы систему сеток, и если да, то какую вы предпочитаете?
  • Приходилось ли Вам использовать или реализовывать медиа-запросы или вёрстку под мобильные устройства?
  • Вы знакомы со стилизацией SVG?
  • Можете ли вы привести пример свойства @media, отличного от screen?
  • На что нужно обратить внимание при написании эффективного CSS?
  • Какие преимущества/недостатки в использовании CSS препроцессоров?
    • Опишите, что вам нравится и не нравится в CSS препроцессорах, которыми вы пользовались.
  • Как вы реализуете макет, который использует нестандартные шрифты?
  • Объясните, как браузер определяет, на какие элементы накладывать CSS стили?
  • Объясните, что такое псевдоэлементы и для чего они нужны.
  • Объясните своими словами, что такое блочная модель.
  • Что делает * { box-sizing: border-box; }? В чем его преимущества?
  • Что означает свойство display и можете ли вы привести несколько примеров его использования?
  • В чем разница между строчным и блочно-строчным элементом?
  • В чем разница между относительным, фиксированным, абсолютным и статически позиционированным элементом?
  • Какими CSS фреймворками вы пользовались? Что бы вы хотели в них изменить/улучшить?
  • Пользовались ли вы Flexbox или Grid?
  • Можете ли вы объяснить разницу между responsive сайтом и mobile-first?
  • Вы имеете опыт работы с ретиновой графикой? Если да, то какие методы вы использовали?
  • В каком случае вы предпочтёте использовать translate() вместо абсолютного позиционирования и наоборот? И почему?

[⬆] Вопросы по JavaScript:

  • Объясните делегирование событий.
  • Объясните, как this работает в JavaScript.
  • Расскажите, как работает прототипное наследование.
  • Что вы думаете о AMD против CommonJS?
  • Объясните, почему это не является IIFE: function foo(){ }();.
    • Что необходимо изменить, чтобы это стало IIFE?
  • В чём различие между переменными, значение которых: null, undefined и не объявлено?
    • Как бы вы проверили их на каждое из этих значений?
  • Что такое замыкание и как/для чего его используют?
  • Можете ли вы описать основное различие между циклом forEach и циклом .map()? И в каких случаях каждый из них используется?
  • В каких случаях обычно используются анонимные функции?
  • Как вы организуете свой код? (module pattern, classical inheritance)
  • В чем разница между host-объектами и нативными объектами?
  • В чем разница между: function Person(){}, var person = Person(), и var person = new Person()?
  • В чем разница между .call и .apply?
  • Что делает и для чего нужна функция Function.prototype.bind?
  • В чем разница между feature detection (определение возможностей браузера), feature inference (предположение возможностей) и анализом строки user-agent?
  • Расскажите об Ajax как можно более подробно.
  • Какие преимущества и недостатки в использовании Ajax?
  • Объясните, как работает JSONP (и почему это не совсем AJAX).
  • Вы когда-нибудь использовали шаблонизацию на JavaScript?
    • Если да, то какие библиотеки вы использовали?
  • Расскажите, что такое “hoisting”.
  • Объясните event bubbling.
  • В чём разница между “атрибутом” (attribute) и “свойством” (property)?
  • Почему не следует расширять нативные JavaScript объекты?
  • В чём разница между событием document load и событием document DOMContentLoaded?
  • В чем разница между == и ===?
  • Объясните same-origin policy в контексте JavaScript.
  • Сделайте так, чтобы этот код работал:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Почему тернарный оператор так называется?
  • Что делает строчка "use strict";? Какие достоинства и недостатки от ее использования?
  • Напишите цикл, который перебирает числа до 100, возвращая “fizz” на числа кратные 3, “buzz” на числа кратные 5 и “fizzbuzz” на числа кратные 3 и 5
  • Почему считается хорошим тоном оставить глобальную область видимости (global scope) в нетронутом состоянии?
  • Для чего используют событие load? Есть ли у этого события недостатки? Знаете ли вы какие-либо альтернативы, и в каких случаях бы стали их использовать?
  • Расскажите, что такое одностраничное приложение, и как сделать его SEO-оптимизированным.
  • Насколько вы опытны в работе с промисами (promises) и/или их полифиллами?
  • Какие преимущества и недостатки при использовании промисов вместо функций обратного вызова (callbacks)?
  • Каковы преимущества и недостатки написания JavaScript кода на языке, который компилируется в JavaScript?
  • Какие инструменты и методы вы используете при отладке кода?
  • Какие языковые конструкции вы используете для итерации по свойствам объекта и элементам массива?
  • Объясните разницу между изменяемыми (mutable) и неизменяемыми (immutable) объектами.
    • Приведите пример неизменяемого объекта в JavaScript.
    • Какие преимущества и недостатки у неизменяемости?
    • Как вы можете достигнуть неизменяемости в вашем коде?
  • Объясните разницу между синхронными и асинхронными функциями.
  • Что такое цикл событий (event loop)?
    • В чем разница между стеком вызовов (call stack) и очередью событий (task queue)?
  • Объясните разницу при использовании foo в function foo() {} и var foo = function() {}
  • В чём различие между переменными, созданными при помощи let, var и const?
  • В чём разница между классом в ES6 и функцией-конструктором в ES5?
  • Можете ли вы привести пример использования стрелочных функции =>? Чем они отличаются от других функций?
  • Дайте определение функции высшего порядка.
  • Можете ли вы привести пример деструктуризации объекта или массива?
  • Шаблонные строки в ES6 намного упрощают создание строк, можете ли вы привести пример их использования?
  • Можете ли вы привести пример каррированной функции (curry function) и в чём их преимущество?
  • В чём преимущества использования spread оператора и чем он отличается от rest оператора?
  • Каким образом можно обмениваться кодом между файлами?
  • Для чего используются статические члены класса?

[⬆] Вопросы по тестированию:

  • Какие преимущества/недостатки в тестировании собственного кода?
  • Какие инструменты вы будете использовать для тестирования работоспособности своего кода?
  • В чём различие между юнит-тестами и функциональными/интеграционными тестами?
  • Для чего предназначены линтеры (code style linting tool)?

[⬆] Вопросы по производительности:

  • Какие инструменты вы используете, чтобы найти недостатки в производительности вашего кода?
  • Какие вы знаете способы улучшения производительности при скроллинге на вебсайте?
  • Объясните разницу между layout, painting и compositing.

[⬆] Вопросы по сетям:

  • Почему лучше загружать ресурсы для сайта с нескольких доменов?
  • Опишите весь процесс, начиная с ввода адреса сайта в адресную строку до окончания его загрузки на экране.
  • В чём различия между Long-Polling, Websockets и Server-Sent Events?
  • Опишите следующие заголовки HTTP-запросов и ответов:
    • Разницу между Expires, Date, Age и If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Что такое HTTP методы? Перечислите все HTTP-методы, которые вы знаете, и объясните их.

[⬆] Примеры кода на JavaScript

Вопрос: Чему равно foo?

var foo = 10 + '20';

Вопрос: Что выводит код ниже?

console.log(0.1 + 0.2 == 0.3);

Вопрос: Как сделать, чтобы это выражение работало?

add(2, 5); // 7
add(2)(5); // 7

Вопрос: Какое значение возвращает данное выражение?

"i'm a lasagna hog".split("").reverse().join("");

Вопрос: Чему равно window.foo?

( window.foo || ( window.foo = "bar" ) );

Вопрос: Что покажут эти два alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Вопрос: Чему равно foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Вопрос: Чему равно foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Вопрос: Что выводит код ниже?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Вопрос: В чем разница между этими четырьмя промисами (promises)?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);

[⬆] “Светская беседа”:

  • Самое крутое, что вы когда-либо делали и чем гордитесь?
  • Что вы больше всего любите в ваших инструментах разработки?
  • Кто из фронтенд-сообщества вас вдохновляет?
  • У вас есть какие-нибудь личные проекты? Какого рода?
  • Какая ваша любимая “фишка” Internet Explorer?
  • Какой кофе вы предпочитаете?
\ No newline at end of file +Вопросы кандидату на должность front-end разработчика ★ Front-end Job Interview Questions

Вопросы кандидату на должность front-end разработчика

Вопросы кандидату на должность front-end разработчика

Замечание: Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность front-end разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь).

Также имейте в виду, что многие вопросы не требуют однозначного короткого ответа, а лишь помогают завести беседу на ту или иную тему (предоставляя кандидату возможность показать себя во всей красе).

Содержание

  1. Авторы
  2. Общие вопросы
  3. Вопросы по HTML
  4. Вопросы по CSS
  5. Вопросы по JavaScript
  6. Вопросы по тестированию
  7. Вопросы по производительности
  8. Вопросы по сетям
  9. Примеры кода на JavaScript
  10. “Светская беседа”

[⬆] Авторы

Этот проект был запущен в 2009 году в сотрудничестве с @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed и @iansym.

В настоящее время этот проект поддерживают:

С тех пор он был активным благодаря этим замечательным людям.

[⬆] Общие вопросы:

  • Что вы изучили вчера/на этой неделе?
  • Что вас привлекает в программировании?
  • С какой технической сложностью вы недавно столкнулись и как с ней справились?
  • Какие методы для повышения производительности вы использовали при создании или обслуживании сайта?
  • Можете ли вы описать некоторые методы SEO, которые вы использовали в последнее время?
  • Можете ли вы объяснить общие принципы относительно front-end безопасности или недавние проблемы, которые вы решили?
  • Какие действия вы лично предприняли в недавних проектах для повышения удобства использования вашего кода?
  • Расскажите о предпочтительной среде разработки.
  • С какими системами контроля версий вы знакомы?
  • Можете ли вы описать порядок действий при создании новой веб-страницы?
  • Если у вас есть 5 разных файлов со стилями, какой лучший способ интегрировать их в сайт?
  • Можете ли вы описать разницу между прогрессивным улучшением и изящной деградацией?
  • Как можно оптимизировать загрузку внешних ресурсов на странице?
  • Сколько ресурсов браузер может одновременно загружать с одного домена?
    • Какие есть исключения?
  • Назовите три способа уменьшения времени загрузки страницы (воспринимаемого или реального).
  • Если вы присоединились к проекту, где для форматирования используются табы, а вы привыкли использовать пробелы, как вы поступите?
  • Опишите, как бы вы реализовали примитивное слайд-шоу.
  • Если бы у Вас была возможность освоить новую технологию в этом году, что бы это было?
  • Объясните важность стандартов и комитетов по стандартам.
  • Что такое FOUC (Flash Of Unstyled Content)? Как его избежать?
  • Объясните, что такое ARIA и скринридеры, а также как сделать вебсайт доступным.
  • Какие преимущества и недостатки у CSS и JavaScript анимаций?
  • Что означает CORS и какую проблему решает?

[⬆] Вопросы по HTML:

  • Для чего нужен doctype?
  • Как следует оформлять страницу, содержимое которой может быть на разных языках?
  • На что необходимо обратить внимание при разработке мультиязычных сайтов?
  • Для чего отлично подойдут data- атрибуты?
  • Представьте HTML5 как открытую веб-платформу. Из каких блоков состоит HTML5?
  • Объясните разницу между cookie, sessionStorage и localStorage.
  • Объясните разницу между <script>, <script async> и <script defer>.
  • Почему хорошей практикой считается располагать <link> для подключения CSS между <head></head>, а <script> для подключения JS ставить перед </body>? Знаете ли вы исключения?
  • Что такое прогрессивный рендеринг?
  • Для чего используется атрибут srcset в теге изображения? Опишите процесс, который использует браузер при оценке содержимого этого атрибута.
  • Приходилось ли вам работать с языками HTML-шаблонизации?

[⬆] Вопросы по CSS:

  • Что такое специфичность CSS селекторов и как она работает?
  • В чем разница между “сбросом” и “нормализацией” CSS? Что бы вы выбрали и почему?
  • Объясните, что такое плавающие элементы (floats) и как они работают.
  • Объясните, что такое z-index и как формируется контекст наложения.
  • Объясните, что такое блочный контекст форматирования и как он работает.
  • Какие вы знаете методы запрета обтекания (clearing) и в каких случаях они применяются?
  • Как вы решаете стилевые проблемы, связанные с особенностями браузеров?
  • Как вы обеспечиваете отображение страниц в браузерах с ограниченными возможностями?
    • Какие приёмы/процессы вы при этом используете?
  • Какими способами можно визуально скрыть элемент (оставив его доступным только для скринридера)?
  • Использовали ли вы систему сеток, и если да, то какую вы предпочитаете?
  • Приходилось ли Вам использовать или реализовывать медиа-запросы или вёрстку под мобильные устройства?
  • Вы знакомы со стилизацией SVG?
  • Можете ли вы привести пример свойства @media, отличного от screen?
  • На что нужно обратить внимание при написании эффективного CSS?
  • Какие преимущества/недостатки в использовании CSS препроцессоров?
    • Опишите, что вам нравится и не нравится в CSS препроцессорах, которыми вы пользовались.
  • Как вы реализуете макет, который использует нестандартные шрифты?
  • Объясните, как браузер определяет, на какие элементы накладывать CSS стили?
  • Объясните, что такое псевдоэлементы и для чего они нужны.
  • Объясните своими словами, что такое блочная модель.
  • Что делает * { box-sizing: border-box; }? В чем его преимущества?
  • Что означает свойство display и можете ли вы привести несколько примеров его использования?
  • В чем разница между строчным и блочно-строчным элементом?
  • В чем разница между относительным, фиксированным, абсолютным и статически позиционированным элементом?
  • Какими CSS фреймворками вы пользовались? Что бы вы хотели в них изменить/улучшить?
  • Пользовались ли вы Flexbox или Grid?
  • Можете ли вы объяснить разницу между responsive сайтом и mobile-first?
  • Вы имеете опыт работы с ретиновой графикой? Если да, то какие методы вы использовали?
  • В каком случае вы предпочтёте использовать translate() вместо абсолютного позиционирования и наоборот? И почему?

[⬆] Вопросы по JavaScript:

  • Объясните делегирование событий.
  • Объясните, как this работает в JavaScript.
  • Расскажите, как работает прототипное наследование.
  • Что вы думаете о AMD против CommonJS?
  • Объясните, почему это не является IIFE: function foo(){ }();.
    • Что необходимо изменить, чтобы это стало IIFE?
  • В чём различие между переменными, значение которых: null, undefined и не объявлено?
    • Как бы вы проверили их на каждое из этих значений?
  • Что такое замыкание и как/для чего его используют?
  • Можете ли вы описать основное различие между циклом forEach и циклом .map()? И в каких случаях каждый из них используется?
  • В каких случаях обычно используются анонимные функции?
  • Как вы организуете свой код? (module pattern, classical inheritance)
  • В чем разница между host-объектами и нативными объектами?
  • В чем разница между: function Person(){}, var person = Person(), и var person = new Person()?
  • В чем разница между .call и .apply?
  • Что делает и для чего нужна функция Function.prototype.bind?
  • В чем разница между feature detection (определение возможностей браузера), feature inference (предположение возможностей) и анализом строки user-agent?
  • Расскажите об Ajax как можно более подробно.
  • Какие преимущества и недостатки в использовании Ajax?
  • Объясните, как работает JSONP (и почему это не совсем AJAX).
  • Вы когда-нибудь использовали шаблонизацию на JavaScript?
    • Если да, то какие библиотеки вы использовали?
  • Расскажите, что такое “hoisting”.
  • Объясните event bubbling.
  • В чём разница между “атрибутом” (attribute) и “свойством” (property)?
  • Почему не следует расширять нативные JavaScript объекты?
  • В чём разница между событием document load и событием document DOMContentLoaded?
  • В чем разница между == и ===?
  • Объясните same-origin policy в контексте JavaScript.
  • Сделайте так, чтобы этот код работал:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Почему тернарный оператор так называется?
  • Что делает строчка "use strict";? Какие достоинства и недостатки от ее использования?
  • Напишите цикл, который перебирает числа до 100, возвращая “fizz” на числа кратные 3, “buzz” на числа кратные 5 и “fizzbuzz” на числа кратные 3 и 5
  • Почему считается хорошим тоном оставить глобальную область видимости (global scope) в нетронутом состоянии?
  • Для чего используют событие load? Есть ли у этого события недостатки? Знаете ли вы какие-либо альтернативы, и в каких случаях бы стали их использовать?
  • Расскажите, что такое одностраничное приложение, и как сделать его SEO-оптимизированным.
  • Насколько вы опытны в работе с промисами (promises) и/или их полифиллами?
  • Какие преимущества и недостатки при использовании промисов вместо функций обратного вызова (callbacks)?
  • Каковы преимущества и недостатки написания JavaScript кода на языке, который компилируется в JavaScript?
  • Какие инструменты и методы вы используете при отладке кода?
  • Какие языковые конструкции вы используете для итерации по свойствам объекта и элементам массива?
  • Объясните разницу между изменяемыми (mutable) и неизменяемыми (immutable) объектами.
    • Приведите пример неизменяемого объекта в JavaScript.
    • Какие преимущества и недостатки у неизменяемости?
    • Как вы можете достигнуть неизменяемости в вашем коде?
  • Объясните разницу между синхронными и асинхронными функциями.
  • Что такое цикл событий (event loop)?
    • В чем разница между стеком вызовов (call stack) и очередью событий (task queue)?
  • Объясните разницу при использовании foo в function foo() {} и var foo = function() {}
  • В чём различие между переменными, созданными при помощи let, var и const?
  • В чём разница между классом в ES6 и функцией-конструктором в ES5?
  • Можете ли вы привести пример использования стрелочных функции =>? Чем они отличаются от других функций?
  • Дайте определение функции высшего порядка.
  • Можете ли вы привести пример деструктуризации объекта или массива?
  • Шаблонные строки в ES6 намного упрощают создание строк, можете ли вы привести пример их использования?
  • Можете ли вы привести пример каррированной функции (curry function) и в чём их преимущество?
  • В чём преимущества использования spread оператора и чем он отличается от rest оператора?
  • Каким образом можно обмениваться кодом между файлами?
  • Для чего используются статические члены класса?

[⬆] Вопросы по тестированию:

  • Какие преимущества/недостатки в тестировании собственного кода?
  • Какие инструменты вы будете использовать для тестирования работоспособности своего кода?
  • В чём различие между юнит-тестами и функциональными/интеграционными тестами?
  • Для чего предназначены линтеры (code style linting tool)?

[⬆] Вопросы по производительности:

  • Какие инструменты вы используете, чтобы найти недостатки в производительности вашего кода?
  • Какие вы знаете способы улучшения производительности при скроллинге на вебсайте?
  • Объясните разницу между layout, painting и compositing.

[⬆] Вопросы по сетям:

  • Почему лучше загружать ресурсы для сайта с нескольких доменов?
  • Опишите весь процесс, начиная с ввода адреса сайта в адресную строку до окончания его загрузки на экране.
  • В чём различия между Long-Polling, Websockets и Server-Sent Events?
  • Опишите следующие заголовки HTTP-запросов и ответов:
    • Разницу между Expires, Date, Age и If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Что такое HTTP методы? Перечислите все HTTP-методы, которые вы знаете, и объясните их.

[⬆] Примеры кода на JavaScript

Вопрос: Чему равно foo?

var foo = 10 + '20';

Вопрос: Что выводит код ниже?

console.log(0.1 + 0.2 == 0.3);

Вопрос: Как сделать, чтобы это выражение работало?

add(2, 5); // 7
add(2)(5); // 7

Вопрос: Какое значение возвращает данное выражение?

"i'm a lasagna hog".split("").reverse().join("");

Вопрос: Чему равно window.foo?

( window.foo || ( window.foo = "bar" ) );

Вопрос: Что покажут эти два alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Вопрос: Чему равно foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Вопрос: Чему равно foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Вопрос: Что выводит код ниже?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Вопрос: В чем разница между этими четырьмя промисами (promises)?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);

[⬆] “Светская беседа”:

  • Самое крутое, что вы когда-либо делали и чем гордитесь?
  • Что вы больше всего любите в ваших инструментах разработки?
  • Кто из фронтенд-сообщества вас вдохновляет?
  • У вас есть какие-нибудь личные проекты? Какого рода?
  • Какая ваша любимая “фишка” Internet Explorer?
  • Какой кофе вы предпочитаете?
\ No newline at end of file diff --git a/_site/translations/serbian/index.html b/_site/translations/serbian/index.html index 1a4fe9bae..de8b1fbc0 100644 --- a/_site/translations/serbian/index.html +++ b/_site/translations/serbian/index.html @@ -1 +1 @@ -Intervju za posao Front-end Developer-a ★ Front-end Job Interview Questions

Intervju za posao Front-end Developer-a

Intervju za posao Front-end Developer-a

@version 0.0.1

Ovaj repo sadrži mnogobrojna pitanja za intervju iz oblasti front-end develpment-a koja možete koristiti u proceni mogućih kandidata.
Ne preporučuje se korišćenje svih pitanja jer bi intervju trajao dugo. Izbor od nekoliko pitanja sa ove liste bi Vam pomogao.

Pre intevjua, preporučujemo da proučite članak: Rebecca Murphey Baseline For Front-End Developers.

Napomena: Uzmite u obzir da veliki broj dole navedenih pitanja može biti korisna tema za razgovor koja će Vam možda reći vise o sposobnostima osobe nego direktni odgovori.

####Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je originalno pokrenuo Paul Irish (@paul_irish) i kojoj su doprineli:

Opšta pitanja:

  • Opišite Vaš omiljeni radni prostor. (OS, Editor, Browseri, Alati itd.)
  • Opišite Vaš proces izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektovanje mogućnosti browsera
  • Objasnite šta je to “Semantički HTML”.
  • Kako biste optimizirali infrastrukturu i resurse web stranice?
    • Traže se više rešenja, na primer:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korišćenje CDN-a
      • Keširanje (Caching)
      • itd.
  • Zbog čega je bolje preuzimati delove stranice sa više domena?
    • Koliko resursa browser može preuzeti istovremeno sa jednog domena?
  • Navedite tri načina za smanjivanje vremena učitavanja strane. (uočeno ili stvarno vrieme učitavanja)
  • Ako bi došli na projekt gde se koriste tabovi a Vi koristite razmake, šta biste uradili?
    • Preporučili korištenja EditorConfig-a (http://editorconfig.org)
    • Prilagodili se postojećoj praksi (zadržavanje konzistentnosti)
    • koristili :retab! naredbu
  • Napravite jednostavnu stranicu za prezentacije
    • Bonus bodovi ako se ne koristi JavaScript.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kada bi ste odabrati jednu tehologiju koju ćete naučiti ove godine, koja bi to bila?
  • Objasnite važnost standarda i organizacija za standardizaciju
  • Šta je to FOUC? Kako možete izbeći FOUC?

HTML pitanja:

  • Koja je funkcija doctype?
  • Koja je razlika između standardnog i quirks moda?
  • Koja su ograničenja u obsluživanju XHTML standarda?
    • Postoje li problemi kod obsluživanju stranica sa header-om application/xhtml+xml?
  • Kako biste obslužili stranicu sa višejezičnim sadržajem?
    • Na što morate obratit pažnju prilikom dizajna ili razvoja višejezične stranicu?
  • Čemu služe data- atributi?
  • Posmatrajte HTML5 kao platformu otvorenog koda. Koji su gradivni elementi HTML-a 5?
  • Objasnite razliku između kolačića, podataka sesije (sessionStorage) i lokalnog snimanja.

CSS pitanja:

  • Objasnite čemu služi “reset” CSS i zašto je koristan.
  • Opišite šta su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i u kojim slučajevima bi ste ih koristili?
  • Objasnite CSS sprite-ove i kako se koriste na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamene slike i kada ih koristite?
  • Koje su Vaše omiljene tehnike: CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako obslužujete sadržaj za browser-e slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (vidljivi su samo za screen reader-e)?
  • Da li ste ikada koristili grid system, i ako jeste koji Vam je omiljeni?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifične za mobilne?
  • Imate li iskustva u stilizovanju SVG slika?
  • Kako prilagođavate stranicu za štampu?
  • Šta se podrazumeva pod dobrom praksom za pisanje efikasnog CSS-a?
  • Koje su prednosti/nedostatci korišćenja CSS pred-procesora? (SASS, Compass, Stylus, LESS)
    • Opišite što vam se sviđa ili ne sviđa kod CSS pred-procesora koje ste koristili.
  • Objasnite kako bi ste napravili stranicu čiji dizajn ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.
  • Objasnite Vaše razumevanje “box model”-a i na koji način bi ste naveli browser da prikaže (render) izgled vaše strane?

JavaScript pitanja:

  • Objasnite delegaciju događaja
  • Objasnite kako se u Javascriptu koristi this
  • Objasnite nasleđivanje prototype-a
  • Kako testirate JavaScript?
  • AMD ili CommonJS?
  • Šta je to hash tabela?
  • Objasnite zašto sledeća funkcija neće raditi kao IIFE: function foo(){ }();?
    • Šta treba izmeniti da bi radila kao IIFE?
  • U čemu je razlika između null, undefined i undeclared?
    • Kako bi ste promenili ova stanja?
  • Šta je closure, kako i zašto se koristi?
  • Koja je uobičajena primena anonimne funkcije?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za predlog namespacing-a
    • Šta ako su moduli bez namespacing-a?
  • Kako organizujete Vaš kod? (module pattern, klasično nasleđivanje?)
  • Koja je razlika između host i native objekta?
  • Koja je razlika između function Person(){}, var person = Person(), i var person = new Person()?
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kada optimizirate Vaš kod?
  • Možete li objasniti nasleđivanje u JavaScriptu?
  • Kada koristite document.write()?
    • Većina oglasa još uvijek koristi document.write() iako se to ne preporučuje.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korišćenja UA string-a?
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i u čemu se razlikuje od pravog AJAX-a)
  • Da li ste ikad koristili JavaScript template?
    • Ako da, koje ste koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi ste pročitali parametar URL adrese
  • Objasnite pravilo jednog izvora gledano sa staništa JavaScript-a.
  • Opišite načine nasleđivanja u JavaScript-u.
  • Popravite: [1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Objasnite memoization strategiju (izbegavanje ponavljanja računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Šta je arity funkcije?
  • Šta radi "use strict";? Koje su mane, koje prednosti?

jQuery pitanja:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korišćenja jQuery-a znate?
  • Čemu služi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u namespace?
  • Navedite četri vrednosti koje možete poslati jQuery metodu.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Čemu služi red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor: $(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Kod vežbe:

modulo(12, 5) // 2

Pitanje: Napišite modulo funkciju koja daje rezultat prikazan iznad

"i'm a lasagna hog".split("").reverse().join("");

Pitanje: Šta će biti vraćeno iz funkcije prikazane iznad?

Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koja je vrednost window.foo?

Odgovor: "bar"

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Šta će se desiti kao rezultat 2 alerta iznad?

Odgovor: “Hello World” i ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrednost foo.length?

Odgovor: 2

Zanimljiva pitanja:

  • Šta je najzanimljivije što ste napravili do sad? na čemu ste najponosniji?
  • Šta Vam je najinteresantnije u alatima koje koristite za rad?
  • Imate li neke hobi projekte? Koje?
  • Šta Vam se najviše sviđa kod Internet Explorer?

Dodatni clanci

\ No newline at end of file +Intervju za posao Front-end Developer-a ★ Front-end Job Interview Questions

Intervju za posao Front-end Developer-a

Intervju za posao Front-end Developer-a

@version 0.0.1

Ovaj repo sadrži mnogobrojna pitanja za intervju iz oblasti front-end develpment-a koja možete koristiti u proceni mogućih kandidata.
Ne preporučuje se korišćenje svih pitanja jer bi intervju trajao dugo. Izbor od nekoliko pitanja sa ove liste bi Vam pomogao.

Pre intevjua, preporučujemo da proučite članak: Rebecca Murphey Baseline For Front-End Developers.

Napomena: Uzmite u obzir da veliki broj dole navedenih pitanja može biti korisna tema za razgovor koja će Vam možda reći vise o sposobnostima osobe nego direktni odgovori.

####Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je originalno pokrenuo Paul Irish (@paul_irish) i kojoj su doprineli:

Opšta pitanja:

  • Opišite Vaš omiljeni radni prostor. (OS, Editor, Browseri, Alati itd.)
  • Opišite Vaš proces izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektovanje mogućnosti browsera
  • Objasnite šta je to “Semantički HTML”.
  • Kako biste optimizirali infrastrukturu i resurse web stranice?
    • Traže se više rešenja, na primer:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korišćenje CDN-a
      • Keširanje (Caching)
      • itd.
  • Zbog čega je bolje preuzimati delove stranice sa više domena?
    • Koliko resursa browser može preuzeti istovremeno sa jednog domena?
  • Navedite tri načina za smanjivanje vremena učitavanja strane. (uočeno ili stvarno vrieme učitavanja)
  • Ako bi došli na projekt gde se koriste tabovi a Vi koristite razmake, šta biste uradili?
    • Preporučili korištenja EditorConfig-a (http://editorconfig.org)
    • Prilagodili se postojećoj praksi (zadržavanje konzistentnosti)
    • koristili :retab! naredbu
  • Napravite jednostavnu stranicu za prezentacije
    • Bonus bodovi ako se ne koristi JavaScript.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kada bi ste odabrati jednu tehologiju koju ćete naučiti ove godine, koja bi to bila?
  • Objasnite važnost standarda i organizacija za standardizaciju
  • Šta je to FOUC? Kako možete izbeći FOUC?

HTML pitanja:

  • Koja je funkcija doctype?
  • Koja je razlika između standardnog i quirks moda?
  • Koja su ograničenja u obsluživanju XHTML standarda?
    • Postoje li problemi kod obsluživanju stranica sa header-om application/xhtml+xml?
  • Kako biste obslužili stranicu sa višejezičnim sadržajem?
    • Na što morate obratit pažnju prilikom dizajna ili razvoja višejezične stranicu?
  • Čemu služe data- atributi?
  • Posmatrajte HTML5 kao platformu otvorenog koda. Koji su gradivni elementi HTML-a 5?
  • Objasnite razliku između kolačića, podataka sesije (sessionStorage) i lokalnog snimanja.

CSS pitanja:

  • Objasnite čemu služi “reset” CSS i zašto je koristan.
  • Opišite šta su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i u kojim slučajevima bi ste ih koristili?
  • Objasnite CSS sprite-ove i kako se koriste na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamene slike i kada ih koristite?
  • Koje su Vaše omiljene tehnike: CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako obslužujete sadržaj za browser-e slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (vidljivi su samo za screen reader-e)?
  • Da li ste ikada koristili grid system, i ako jeste koji Vam je omiljeni?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifične za mobilne?
  • Imate li iskustva u stilizovanju SVG slika?
  • Kako prilagođavate stranicu za štampu?
  • Šta se podrazumeva pod dobrom praksom za pisanje efikasnog CSS-a?
  • Koje su prednosti/nedostatci korišćenja CSS pred-procesora? (SASS, Compass, Stylus, LESS)
    • Opišite što vam se sviđa ili ne sviđa kod CSS pred-procesora koje ste koristili.
  • Objasnite kako bi ste napravili stranicu čiji dizajn ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.
  • Objasnite Vaše razumevanje “box model”-a i na koji način bi ste naveli browser da prikaže (render) izgled vaše strane?

JavaScript pitanja:

  • Objasnite delegaciju događaja
  • Objasnite kako se u Javascriptu koristi this
  • Objasnite nasleđivanje prototype-a
  • Kako testirate JavaScript?
  • AMD ili CommonJS?
  • Šta je to hash tabela?
  • Objasnite zašto sledeća funkcija neće raditi kao IIFE: function foo(){ }();?
    • Šta treba izmeniti da bi radila kao IIFE?
  • U čemu je razlika između null, undefined i undeclared?
    • Kako bi ste promenili ova stanja?
  • Šta je closure, kako i zašto se koristi?
  • Koja je uobičajena primena anonimne funkcije?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za predlog namespacing-a
    • Šta ako su moduli bez namespacing-a?
  • Kako organizujete Vaš kod? (module pattern, klasično nasleđivanje?)
  • Koja je razlika između host i native objekta?
  • Koja je razlika između function Person(){}, var person = Person(), i var person = new Person()?
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kada optimizirate Vaš kod?
  • Možete li objasniti nasleđivanje u JavaScriptu?
  • Kada koristite document.write()?
    • Većina oglasa još uvijek koristi document.write() iako se to ne preporučuje.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korišćenja UA string-a?
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i u čemu se razlikuje od pravog AJAX-a)
  • Da li ste ikad koristili JavaScript template?
    • Ako da, koje ste koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi ste pročitali parametar URL adrese
  • Objasnite pravilo jednog izvora gledano sa staništa JavaScript-a.
  • Opišite načine nasleđivanja u JavaScript-u.
  • Popravite: [1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Objasnite memoization strategiju (izbegavanje ponavljanja računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Šta je arity funkcije?
  • Šta radi "use strict";? Koje su mane, koje prednosti?

jQuery pitanja:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korišćenja jQuery-a znate?
  • Čemu služi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u namespace?
  • Navedite četri vrednosti koje možete poslati jQuery metodu.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Čemu služi red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor: $(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Kod vežbe:

modulo(12, 5) // 2

Pitanje: Napišite modulo funkciju koja daje rezultat prikazan iznad

"i'm a lasagna hog".split("").reverse().join("");

Pitanje: Šta će biti vraćeno iz funkcije prikazane iznad?

Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koja je vrednost window.foo?

Odgovor: "bar"

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Šta će se desiti kao rezultat 2 alerta iznad?

Odgovor: “Hello World” i ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrednost foo.length?

Odgovor: 2

Zanimljiva pitanja:

  • Šta je najzanimljivije što ste napravili do sad? na čemu ste najponosniji?
  • Šta Vam je najinteresantnije u alatima koje koristite za rad?
  • Imate li neke hobi projekte? Koje?
  • Šta Vam se najviše sviđa kod Internet Explorer?

Dodatni clanci

\ No newline at end of file diff --git a/_site/translations/slovakian/index.html b/_site/translations/slovakian/index.html index 1b75eba5f..47bae3558 100644 --- a/_site/translations/slovakian/index.html +++ b/_site/translations/slovakian/index.html @@ -1 +1 @@ -Otázky k pohovoru; front-end vývojár ★ Front-end Job Interview Questions

Otázky k pohovoru; front-end vývojár

Otázky k pohovoru: front-end vývojár

Tento repozitár obsahuje rad otázok, ktoré môžete položiť pri pohovore kandidátovi na pozíciu front-end vývojár a overiť si tak jeho znalosti v tomto odbore. Nie je zamýšľané položiť všetky tieto otázky (ich korektné zodpovedanie by trvalo hodiny), bohato postačí len určitú časť vyhovujúci vašim potrebám.

Za prečítanie stojí tiež Baseline For Front-End Developers (anglicky) od Rebecci Murphey.

Poznámka: Majte na pamäti, že tieto otázky majú viesť skôr k diskusii na danú tému a prezradiť tak niečo viac o schopnostiach daného vývojára, než aby boli zodpovedané jedným slovom alebo vetou.

Obsah

  1. Pôvodní prispievatelia
  2. Všeobecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky
  9. Ďalšie zaujímave referencie

####[⬆] Pôvodní prispievatelia:

Väčšina otázok bola prevzatá z oksoclap pôvodne vytvoreného Paulom Irishom (@paul_irish) a následne doplnená týmito osobami:

####[⬆] Všeobecné otázky:

  • Čo ste sa naučili včera/minulý týždeň nové?
  • Čo vás vzrušuje alebo zaujíma na kódovaní?
  • Povedzte niečo o vašom obľúbenom vývojovom prostredí (operačný systém, editor, prehliadač, nástroje, …).
  • Opíšte ako postupujete pri vytváraní novej webovej stránky.
  • Dokážete vysvetliť rozdiel medzi pozvoľným degradováním (graceful degradation) a postupným vylepšovaním (progressive enhancement)?
      * Body navyše za opis detekcie pokročilej funkcionality
  • Vysvetlite pojem “sémantické HTML”.
  • Ako by ste optimalizovali zdroje (obrázky, JS, CSS, …) webovej stránky?
      * K dispozícii je celý rad optimalizácií napr.:
        * spájanie súborov
        * minifikácia súborov
        * CDN hosťovanie
        * caching, …
  • Prečo je lepšie posielať zdroje webovej stránky z viacerých domén?
      * Koľko súborov môže z danej domény sťahovať prehliadač naraz?
  • Vymenujte tri spôsoby ako znížiť dobu nahrávania webovej stránky (vnímanú alebo skutočnú dobu nahrávania).
  • Ak nastúpite do projektu, kde sa namiesto odsadzovania tabulátormi používajú medzery, čo urobíte?
      * Navrhnutie, že projekt by mohol využívať niečo ako EditorConfig (http://editorconfig.org)
      * Prispôsobenie sa konvencii (ale zostať konzistentný).
      * issue :retab ! command
  • Napíšte jednoduchú stránku so slideshow.
      * Body navyše pokiaľ nepoužíva JS.
  • Aké nástroje používate pre testovanie rýchlosti vášho kódu?
      * Profiler, JSPerf, Dromaeo
  • Ak by ste sa chcel/chcela tento rok naučiť jednu novú technológiu, ktorá by to bola?
  • Vysvetlite dôležitosť štandardov a štandardizačných orgánov.
  • Čo to je FOUC? Ako je možné sa vyhnúť FOUC?

####[⬆] HTML otázky:

  • Čo robí doctype?
  • Aký je rozdiel medzi štandardným a tkz. quirks módom?
  • Aké sú obmedzenia pri poskytovaní XHTML stránok?
      * Existuje nejaký problém pri poskytovaní stránok ako application/xhtml+xml?
  • Ako poskytujete stránku s viacjazyčným obsahom?
      * Na čo všetko si musíte dať pozor pri vytváraní viacjazyčnej stránky?
  • K čomu sú dobré atribúty data-?
  • Uvažujte o HTML5 ako o otvorenej platorme. Aké sú základné stavebné kamene HTML5?
  • Opíšte rozdiel medzi cookies, sessionStorage a localStorage.

####[⬆] CSS otázky:

  • Opíšte čo robí a na čo je dobrý “reset” CSS súbor.
  • Opíšte obtekanie (floats) a ako funguje.
  • Popíšte rôzne techniky pre zastavenie obtekanie (clear fixing) a povedzte, ktoré sa hodia v ktorom kontexte.
  • Vysvetlite, čo to sú CSS sprites a ako by ste ich implementovali.
  • Aká je vaša obľúbená technika pre nahrádzanie obrázkov a ktorú a kedy používate?
  • CSS property hacks, podmienené vkladanie .css súborov alebo niečo ďalšie?
  • Ako poskytujete stránky pre funkcionálne/vlastnosťami obmedzený prehliadač?
      * Akú techniku​/proces používate?
  • Aké sú spôsoby pre zneviditeľnie obsahu (a zachovanie jeho dostupnosti pre čítačky)?
  • Použili ste niekedy grid systém a ak áno, ktorý uprednostňujete?
  • Použili ste niekedy mediálne selektory (media query) alebo špecifický layout/CSS pre mobilné zariadenia?
  • Máte nejaké skúsenosti so štýlovaním SVG?
  • Ako optimalizujete stránky pre tlač?
  • Aké sú zásady pre písanie efektnivního CSS?
  • Aké sú výhody/nevýhody použítia CSS preprocesorov (SASS, Compass, Stylus, LESS)?
      * Popíšte, čo sa Vám na CSS preprocesoroch, ktoré ste použili, páči/nepáči.
  • Ako by ste implementovali návrh webovej stránky, ktorá používa neštandardné rezy písma?
      * Webfonts (služby typu: Google Webfonts, Typekit, …)
  • Vysvetlite ako prehliadač určuje, ktorý element zodpovedá CSS selektoru.
  • Vysvetlite vaše chápanie box modelu a ako poviete pomocou CSS prehliadaču, aby váš layout vykreslil v odlišnom box modele

####[⬆] JS otázky:

  • Vysvetlite delegáciu udalostí.
  • Vysvetlite ako funguje this v JavaScripte.
  • Vysvetlite ako funguje prototypová dedičnosť.
  • Ako testujete JavaScript?
  • AMD vs. CommonJS?
  • Čo je hashovacia tabuľka?
  • Vysvetlite prečo nasledujúce volanie nebude fungovať ako IIFE : function foo(){ }();.
      * Čo musíte zmeniť, aby volania zafungovalo ako IIFE?
  • Vysvetlite rozdiel medzi premennou, ktorá je null, undefined alebo undeclared?
      * Akým spôsobom by ste overili tieto jednotlivé stavy?
  • Čo to je “closure” a ako/prečo by sme ich mali používať?
  • Aké je typické využitie pre anonymné funkcie?
  • Vysvetlite “JavaScript module pattern” a kedy by ste ho mali použiť.
      * Body navyše za zmienku o čistých menných priestoroch.
      * Čo ak sú vaše moduly bez menného priestora?
  • Ako organizujete váš kód? (module pattern, klasická dedičnosť?)
  • Aký je rozdiel medzi natívnymi a hostiteľskými objektami?
  • Rozdiel medzi:
function Person(){}
var person = Person()
var person = new Person()
  • Aký je rozdiel medzi .call a .apply?
  • Aký je rozdiel medzi undefined a null?
  • Vysvetlite Function.prototype.bind.
  • Kedy optimalizujete váš kód?
  • Vysvetlite ako funguje dedičnosť v JavaScripte.
  • Kedy by ste použili document.write()?
      * Väčšina generovaných reklám stále používa tento prístup aj napriek tomu, že je to dlhodobo odsudzované.
  • Aký je rozdiel medzi detekciou vlastností, odvodenie vlastností a použitie UA reťazca?
  • Vysvetlite AJAX čo najpodrobnejšie to ide.
  • Vysvetlite ako funguje JSONP (a prečo to nie je naozajstný AJAX).
  • Použili ste niekedy JavaScriptové šablóny?
      * Ak áno, ktoré knižnice ste použili (mustache.js, Handlebars, …)?
  • Vysvetlite “hoisting”.
  • Vysvetlite prebublávanie udalostí.
  • Aký je rozdiel medzi atribútom (attribute) a vlastnosťou (property)?
  • Prečo nie je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Prečo je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Aký je rozdiel medzi udalosťami “document load” a “document ready”?
  • Aký je rozdiel medzi == a ===?
  • Vysvetlite akým spôsobom získate parameter z URL zadaného v okne prehliadača.
  • Vysvetlite JavaScriptové pravidlo rovnakého pôvodu (same-origin policy).
  • Opíšte prístupy dedenia v JavaScripte.
  • Nasledujúci kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opíšte stratégia pre memorizáciu (odstránenie opakovaných výpočtov) v JavaScripte.
  • Prečo sa hovorí ternárny operátor, čo označuje slovo ternárny?
  • Čo je označované ako “arita” funkcie?
  • Čo znamená "use strict";? Aké sú výhody a nevýhody použitia?

####[⬆] jQuery otázky:

  • Vysvetlite reťazenie (chaining).
  • Vysvetlite odkladanie (deferreds).
  • Aké poznáte a viete implementovať optimalizácie špeciálne pre jQuery?
  • Čo robí .end()?
  • Ako a prečo by ste váš “event handler” zaopatrili menným priestorom?
  • Vymenujte štyri rôzne typy hodnôt, ktoré môžete odovzdať ako vstupný parameter metód v jQuery.
      * selektor (reťazec), HTML (reťazec), callback (funkcia), HTMLElement, object, polia, polia elementu, jQuery Object, …
  • Čo to je fronta efektov (alebo fx front)?
  • Aký je rozdiel medzi .get(), [] a .eq()?
  • Aký je rozdiel medzi .bind(), .live() a .delegate()?
  • Aký je rozdiel medzi $ a $.fn? Alebo len, čo je $.fn?
  • Zoptimalizujte tento selektor :
$(".foo div#bar:eq(0)");
  • Aký je rozdiel medzi .delegate() a .live()?

####[⬆] Otázky z kódu:

modulo(12, 5) // 2

Otázka: Implementujte funkciu modulo tak, aby splnila zadanie.

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Akú hodnotu vráti uvedený výraz?

Odpoveď:" goh angasal a m’i"

(window.foo || (window.foo = "bar"));

Otázka: Akú hodnotu má window.foo?

Odpoveď: “bar” (iba ak window.foo bolo false, inak vráti svojou hodnotu)

var foo = "Hello";
(function() {
var bar = "World";
alert(foo + bar);
})();
alert(foo + bar);

Otázka: Čo zobrazia uvedené dva alerty?

Odpoveď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Aká je hodnota foo.length?

Odpoveď: 2

####[⬆] Zábavné otázky:

  • Aká je najúžasnejšia vec, ktorú ste kedy nakódovali, alebo na ktorú ste najviac pyšní?
  • Aké sú vaše obľúbené časti vývojárskych nástrojov, ktoré používate?
  • Máte nejaký vlastný hobby projekt?
  • Aká je Vaša obľúbená vlastnosť Internet Exploreru?

####[⬆] Ďalšie zaujímave referencie:

\ No newline at end of file +Otázky k pohovoru; front-end vývojár ★ Front-end Job Interview Questions

Otázky k pohovoru; front-end vývojár

Otázky k pohovoru: front-end vývojár

Tento repozitár obsahuje rad otázok, ktoré môžete položiť pri pohovore kandidátovi na pozíciu front-end vývojár a overiť si tak jeho znalosti v tomto odbore. Nie je zamýšľané položiť všetky tieto otázky (ich korektné zodpovedanie by trvalo hodiny), bohato postačí len určitú časť vyhovujúci vašim potrebám.

Za prečítanie stojí tiež Baseline For Front-End Developers (anglicky) od Rebecci Murphey.

Poznámka: Majte na pamäti, že tieto otázky majú viesť skôr k diskusii na danú tému a prezradiť tak niečo viac o schopnostiach daného vývojára, než aby boli zodpovedané jedným slovom alebo vetou.

Obsah

  1. Pôvodní prispievatelia
  2. Všeobecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky
  9. Ďalšie zaujímave referencie

####[⬆] Pôvodní prispievatelia:

Väčšina otázok bola prevzatá z oksoclap pôvodne vytvoreného Paulom Irishom (@paul_irish) a následne doplnená týmito osobami:

####[⬆] Všeobecné otázky:

  • Čo ste sa naučili včera/minulý týždeň nové?
  • Čo vás vzrušuje alebo zaujíma na kódovaní?
  • Povedzte niečo o vašom obľúbenom vývojovom prostredí (operačný systém, editor, prehliadač, nástroje, …).
  • Opíšte ako postupujete pri vytváraní novej webovej stránky.
  • Dokážete vysvetliť rozdiel medzi pozvoľným degradováním (graceful degradation) a postupným vylepšovaním (progressive enhancement)?
      * Body navyše za opis detekcie pokročilej funkcionality
  • Vysvetlite pojem “sémantické HTML”.
  • Ako by ste optimalizovali zdroje (obrázky, JS, CSS, …) webovej stránky?
      * K dispozícii je celý rad optimalizácií napr.:
        * spájanie súborov
        * minifikácia súborov
        * CDN hosťovanie
        * caching, …
  • Prečo je lepšie posielať zdroje webovej stránky z viacerých domén?
      * Koľko súborov môže z danej domény sťahovať prehliadač naraz?
  • Vymenujte tri spôsoby ako znížiť dobu nahrávania webovej stránky (vnímanú alebo skutočnú dobu nahrávania).
  • Ak nastúpite do projektu, kde sa namiesto odsadzovania tabulátormi používajú medzery, čo urobíte?
      * Navrhnutie, že projekt by mohol využívať niečo ako EditorConfig (http://editorconfig.org)
      * Prispôsobenie sa konvencii (ale zostať konzistentný).
      * issue :retab ! command
  • Napíšte jednoduchú stránku so slideshow.
      * Body navyše pokiaľ nepoužíva JS.
  • Aké nástroje používate pre testovanie rýchlosti vášho kódu?
      * Profiler, JSPerf, Dromaeo
  • Ak by ste sa chcel/chcela tento rok naučiť jednu novú technológiu, ktorá by to bola?
  • Vysvetlite dôležitosť štandardov a štandardizačných orgánov.
  • Čo to je FOUC? Ako je možné sa vyhnúť FOUC?

####[⬆] HTML otázky:

  • Čo robí doctype?
  • Aký je rozdiel medzi štandardným a tkz. quirks módom?
  • Aké sú obmedzenia pri poskytovaní XHTML stránok?
      * Existuje nejaký problém pri poskytovaní stránok ako application/xhtml+xml?
  • Ako poskytujete stránku s viacjazyčným obsahom?
      * Na čo všetko si musíte dať pozor pri vytváraní viacjazyčnej stránky?
  • K čomu sú dobré atribúty data-?
  • Uvažujte o HTML5 ako o otvorenej platorme. Aké sú základné stavebné kamene HTML5?
  • Opíšte rozdiel medzi cookies, sessionStorage a localStorage.

####[⬆] CSS otázky:

  • Opíšte čo robí a na čo je dobrý “reset” CSS súbor.
  • Opíšte obtekanie (floats) a ako funguje.
  • Popíšte rôzne techniky pre zastavenie obtekanie (clear fixing) a povedzte, ktoré sa hodia v ktorom kontexte.
  • Vysvetlite, čo to sú CSS sprites a ako by ste ich implementovali.
  • Aká je vaša obľúbená technika pre nahrádzanie obrázkov a ktorú a kedy používate?
  • CSS property hacks, podmienené vkladanie .css súborov alebo niečo ďalšie?
  • Ako poskytujete stránky pre funkcionálne/vlastnosťami obmedzený prehliadač?
      * Akú techniku​/proces používate?
  • Aké sú spôsoby pre zneviditeľnie obsahu (a zachovanie jeho dostupnosti pre čítačky)?
  • Použili ste niekedy grid systém a ak áno, ktorý uprednostňujete?
  • Použili ste niekedy mediálne selektory (media query) alebo špecifický layout/CSS pre mobilné zariadenia?
  • Máte nejaké skúsenosti so štýlovaním SVG?
  • Ako optimalizujete stránky pre tlač?
  • Aké sú zásady pre písanie efektnivního CSS?
  • Aké sú výhody/nevýhody použítia CSS preprocesorov (SASS, Compass, Stylus, LESS)?
      * Popíšte, čo sa Vám na CSS preprocesoroch, ktoré ste použili, páči/nepáči.
  • Ako by ste implementovali návrh webovej stránky, ktorá používa neštandardné rezy písma?
      * Webfonts (služby typu: Google Webfonts, Typekit, …)
  • Vysvetlite ako prehliadač určuje, ktorý element zodpovedá CSS selektoru.
  • Vysvetlite vaše chápanie box modelu a ako poviete pomocou CSS prehliadaču, aby váš layout vykreslil v odlišnom box modele

####[⬆] JS otázky:

  • Vysvetlite delegáciu udalostí.
  • Vysvetlite ako funguje this v JavaScripte.
  • Vysvetlite ako funguje prototypová dedičnosť.
  • Ako testujete JavaScript?
  • AMD vs. CommonJS?
  • Čo je hashovacia tabuľka?
  • Vysvetlite prečo nasledujúce volanie nebude fungovať ako IIFE : function foo(){ }();.
      * Čo musíte zmeniť, aby volania zafungovalo ako IIFE?
  • Vysvetlite rozdiel medzi premennou, ktorá je null, undefined alebo undeclared?
      * Akým spôsobom by ste overili tieto jednotlivé stavy?
  • Čo to je “closure” a ako/prečo by sme ich mali používať?
  • Aké je typické využitie pre anonymné funkcie?
  • Vysvetlite “JavaScript module pattern” a kedy by ste ho mali použiť.
      * Body navyše za zmienku o čistých menných priestoroch.
      * Čo ak sú vaše moduly bez menného priestora?
  • Ako organizujete váš kód? (module pattern, klasická dedičnosť?)
  • Aký je rozdiel medzi natívnymi a hostiteľskými objektami?
  • Rozdiel medzi:
function Person(){}
var person = Person()
var person = new Person()
  • Aký je rozdiel medzi .call a .apply?
  • Aký je rozdiel medzi undefined a null?
  • Vysvetlite Function.prototype.bind.
  • Kedy optimalizujete váš kód?
  • Vysvetlite ako funguje dedičnosť v JavaScripte.
  • Kedy by ste použili document.write()?
      * Väčšina generovaných reklám stále používa tento prístup aj napriek tomu, že je to dlhodobo odsudzované.
  • Aký je rozdiel medzi detekciou vlastností, odvodenie vlastností a použitie UA reťazca?
  • Vysvetlite AJAX čo najpodrobnejšie to ide.
  • Vysvetlite ako funguje JSONP (a prečo to nie je naozajstný AJAX).
  • Použili ste niekedy JavaScriptové šablóny?
      * Ak áno, ktoré knižnice ste použili (mustache.js, Handlebars, …)?
  • Vysvetlite “hoisting”.
  • Vysvetlite prebublávanie udalostí.
  • Aký je rozdiel medzi atribútom (attribute) a vlastnosťou (property)?
  • Prečo nie je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Prečo je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Aký je rozdiel medzi udalosťami “document load” a “document ready”?
  • Aký je rozdiel medzi == a ===?
  • Vysvetlite akým spôsobom získate parameter z URL zadaného v okne prehliadača.
  • Vysvetlite JavaScriptové pravidlo rovnakého pôvodu (same-origin policy).
  • Opíšte prístupy dedenia v JavaScripte.
  • Nasledujúci kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opíšte stratégia pre memorizáciu (odstránenie opakovaných výpočtov) v JavaScripte.
  • Prečo sa hovorí ternárny operátor, čo označuje slovo ternárny?
  • Čo je označované ako “arita” funkcie?
  • Čo znamená "use strict";? Aké sú výhody a nevýhody použitia?

####[⬆] jQuery otázky:

  • Vysvetlite reťazenie (chaining).
  • Vysvetlite odkladanie (deferreds).
  • Aké poznáte a viete implementovať optimalizácie špeciálne pre jQuery?
  • Čo robí .end()?
  • Ako a prečo by ste váš “event handler” zaopatrili menným priestorom?
  • Vymenujte štyri rôzne typy hodnôt, ktoré môžete odovzdať ako vstupný parameter metód v jQuery.
      * selektor (reťazec), HTML (reťazec), callback (funkcia), HTMLElement, object, polia, polia elementu, jQuery Object, …
  • Čo to je fronta efektov (alebo fx front)?
  • Aký je rozdiel medzi .get(), [] a .eq()?
  • Aký je rozdiel medzi .bind(), .live() a .delegate()?
  • Aký je rozdiel medzi $ a $.fn? Alebo len, čo je $.fn?
  • Zoptimalizujte tento selektor :
$(".foo div#bar:eq(0)");
  • Aký je rozdiel medzi .delegate() a .live()?

####[⬆] Otázky z kódu:

modulo(12, 5) // 2

Otázka: Implementujte funkciu modulo tak, aby splnila zadanie.

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Akú hodnotu vráti uvedený výraz?

Odpoveď:" goh angasal a m’i"

(window.foo || (window.foo = "bar"));

Otázka: Akú hodnotu má window.foo?

Odpoveď: “bar” (iba ak window.foo bolo false, inak vráti svojou hodnotu)

var foo = "Hello";
(function() {
var bar = "World";
alert(foo + bar);
})();
alert(foo + bar);

Otázka: Čo zobrazia uvedené dva alerty?

Odpoveď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Aká je hodnota foo.length?

Odpoveď: 2

####[⬆] Zábavné otázky:

  • Aká je najúžasnejšia vec, ktorú ste kedy nakódovali, alebo na ktorú ste najviac pyšní?
  • Aké sú vaše obľúbené časti vývojárskych nástrojov, ktoré používate?
  • Máte nejaký vlastný hobby projekt?
  • Aká je Vaša obľúbená vlastnosť Internet Exploreru?

####[⬆] Ďalšie zaujímave referencie:

\ No newline at end of file diff --git a/_site/translations/slovenian/index.html b/_site/translations/slovenian/index.html index 90d043e88..6bc6b14c4 100644 --- a/_site/translations/slovenian/index.html +++ b/_site/translations/slovenian/index.html @@ -1 +1 @@ -Intervju vprašanja za front-end programerja ★ Front-end Job Interview Questions

Intervju vprašanja za front-end programerja

Intervju vprašanja za front-end programerja

@verzija 1.0

Obvestilo: Ta repositorij vsebuje vrsto front-end vprašanj, ki se lahko uporabijo za preverjanje potencialnih kandidatov. Ni priporočljivo, da se vsa vprašanja uporabijo za vsakega kandidata (to bi trajalo ure). Izberite nekaj vprašanj, ki vam bodo pomagala preveriti kandidata za znanja, ki jih potrebujete.

Mnogo teh vprašanj je odprtega tipa in lahko pripeljejo do zanimivih diskusij, ki vam bodo o kandidatih sporočili več, kot pa navaden kratek odgovor.

####Originalni Avtorji

Obvestilo: večino teh vprašanj je bilo pobranih iz foruma, ustvarjenega in vzdrževanega od nasljednjih ljudi:

Splošna vprašanja:

  • Ali uporabljaš Twitter?
    • Če ja, katerim osebam slediš?
  • Ali uporabljaš GitHub?
    • Če ja, katerim repositorijem slediš?
  • Katere bloge spremljaš?
  • Katere programe za hranjenje verzij si uporabljal/a (Git, SVN, …)?
  • Katero okolje najraje uporabljaš za razvoj? (OS, editor, brskalnik, orodja, …)
  • Lahko opišeš tvoj potek dela, ko kreiraš novo spletno stran?
  • Lahko opišeš razliko med “progressive enhancement” in “graceful degradation”?
    • bonus točke za opis “feature detection”-a
  • Razloži pojem “Semantic HTML”.
  • V katerem brskalniku primarno razvijaš in katera orodja uporabljaš?
  • Kako bi optimiziral/a nalaganje spletne strani (s stališča zahtevanih datotek)?
    • Iščemo več rešitev, ki med drugimi vklučujejo tudi:
      • Združevanje datotek
      • Minifikacija datotek
      • CDN gostovanje
      • Caching
  • Zakaj je bolje statične vsebine servirati z večih domen?
    • Koliko različnih datotek bo brskalnik prenesel iz ene domene na enkrat?
  • Naštej 3 načine za zmanjšanje “page load time”-a. (dejanski ali zaznavan “load time”).
  • Če bi se pridružil/a projektu, kjer uporabljajo “tab”-e, ti pa uporabljaš presledke, kaj bi storil/a?
  • Ustvari preprosto prezentacijsko stran (slide-show).
    • Bonus točke, če ne uporablja JS.
  • Katera orodja uporabljaš za testiranje performančnosti kode?
  • Če bi to leto lahko popolnoma osvojil/a novo tehnologijo, katera bi to bila?
  • Razloži pomembnost standardov in organov za nadzorovanje standardov.
  • Kaj je FOUC? Kako se izogneš FOUC-u?

HTML vprašanja:

  • Kaj naredi doctype in koliko različtih lahko našteješ?
  • Kaj je razlika med “standards mode” in “quirks mode”?
  • Kaj so omejitve pri serviranju XHTML strani?
    • Ali so kakšni problemi pri servviranju strani z application/xhtml+xml?
  • Kako serviraš stran z vsebino v večih jezikih?
    • Na katere stvari moraš paziti ko dizajniraš ali programiraš večjezično stran?
  • Ali lahko uporabljaš XHTML sintakso v HTML5?
  • Kako uporabljaš XML v HTML5?
  • Zakaj lahko uporabimo data- atribute?
  • Kaj so “content models” v HTML4 in ali so različni v HTML5?
  • Predpostavi da je HTML5 odprta spletna platforma. Kaj so gradniki HTML5?
  • Opiši razliko med “cookies”, “sessionStorage” in “localStorage”.

JavaScript vprašanja:

  • Katere JavaScript knjižnice si že uporabljal/a?
  • Si kdaj gledal/a izvorno kodo knjižnic/ogrodij, ki si jih uporabljal/a?
  • Razlika med Java in JavaScript?
  • Kaj je “hashtable”?
  • Kaj sta undefined in undeclared spremenljivki?
  • Kaj je “closure”, in zakaj/kako bi jo uporabil/a?
  • Tipičen primer uporabe anonimnih funkcij?
  • Razloži “JavaScript module pattern” in kdaj bi ga uporabil/a.
    • Bonus točke če omeni “clean namespacing”.
  • Kako organiziraš svojo kodo? (module pattern, classical inheritance?)
  • Razlika med “host object” in “native object”?
  • Razlika med:
function Person(){} var person = Person() var person = new Person()
  • Razlika med .call in .apply?
  • Razloži Function.prototype.bind?
  • Kdaj optimiziraš kodo?
  • Ali lahko razložiš dedovanje v JavaScript-u?
  • Kdaj bi uporabil/a document.write()?
  • Razlika med zaznavanjem funkcionalnosti, sklepanjem o funkcionalnosti in uporabljanjem UA niza.
  • Razloži AJAX s čim več detajli.
  • Razloži kako deluje JSONP (in zakaj to ni res AJAX).
  • Si že kdaj uporabil/a JavaScript “templates”-e?
    • Če ja, katere knjižnice si uporabil/a? (Mustache.js, Handlebars etc.)
  • Razloži “hoisting”.
  • Opiši “event bubbling”.
  • Razlika med “attribute” in “property”?
  • Zakaj je razširjanje vgrajenih JS objektov slaba ideja?
  • Zakaj je razširjanje vgrajenih JS objektov dobra ideja?
  • Razlika med “document load” in “document ready”?
  • Razlika med == in ===?
  • Kako bi dobil URL GET parameter?
  • Razloži “same-origin policy”.
  • Razloži “event delegation”.
  • Razloži različne načine doseganja dedovanja.
  • Napiši kodo za “duplicator()” funkcijo:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Opiši strategijo za pomnenje (izogibanje ponovnemu računanju).
  • Od kod ime “Ternary statement”, kaj označuje beseda “Ternary”?
  • Kaj je “arity” funkcije?
  • Kaj je "use strict";? Prednosti/slabosti?

JavaScript koda primeri:

~~3.14

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: 3

"i'm a lasagna hog".split("").reverse().join("");

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Vprašanje: Kaj je vrednost window.foo?
Odgovor: "bar"
samo če je bil window.foo “lažen”, drugače bo ohranil svojo vrednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Vprašanje: Kaj je rezultat zgornjih dveh alert-ov?
Odgovor: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vprašanje: Kaj je vrednost od foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Vprašanje: Kaj je vrednost od foo.length?
**Answer: undefined

foo = foo||bar

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
*Odgovor: if(!foo) foo = bar

foo>>1

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: Math.floor(foo/2)

foo|0
foo+.5|0

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Vprašanje: Kako dobiti število paremetrov podanih v funkcijo?
**Odgovor: foo.length // 3 za ta primer

jQuery vprašanja:

  • Razloži “chaining”.
  • Razloži “deferreds”.
  • Naštej nekaj, za jQuery specifičnih, optimizacij.
  • Kaj naredi .end()?
  • Kako, in zakaj, bi uporabil/a “namespace”-e za “event handler”-je?
  • Naštej 4 različne vrednosti, ki jih lahko podaš jQuery funkciji.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object, …
  • Kaj je “effects” vrsta (oz. fx)?
  • Razlika med .get(), [], in .eq()?
  • Razlika med .bind(), .live(), in .delegate()?
  • Razlika med $ in $.fn? Oz. kaj je $.fn?
  • Optimiziraj naslednji selektor:
$(".foo div#bar:eq(0)")
  • Razlika med ‘delegate()’ in ‘live()’?

CSS vprašanja:

  • Opiši namen CSS “reset” datoteke in zakaj je uporabna.
  • Opiši “float”-e in kako delujejo.
  • Opiši različne “clearing” tehnike.
  • Razloži CSS “sprite”-e in kako bi jih implementiral/a.
  • Tvoje najljubše tehnike za zamenjavo slik?
  • CSS hacki, pogojno vključene .css datoteke ali kaj drugega?
  • Kako serviraš strani brskalnikom ki imajo omejen nabor funkcionalnosti?
    • Katere tehnike/procese uporabljaš?
  • Na katere načine lahko vizualno skriješ vsebino (tako da je navoljo samo “screen reader”-jem)?
  • Si že kdaj uporabil/a “grid” sistem. Če ja, kateri ti je najljubši?
  • Si že implementiral/a “media queries” ali za mobilnike specifičen HTML/CSS?
  • Imaš kaj izkušenj s CSSjem v navezi s SVGjem?
  • Kako optimizeraš strani za tiskanje?
  • Naštej nekaj pasti pri pisanju efektivnega CSSja.
  • Ali uporabljaš CSS pred-procesor (sass, compass, Stylus, LESS)?
    • Če ja, opiši kaj ti je/ni všeč.
  • Kako bi implementiral/a spletno stran, ki uporablja nestandardno tipografijo?
    • Webfonts (google webfonts, typekit, …)
  • Razloži kako brskalnik ugotovi kateri element pripada kateremu CSS selektorju.

Opcijska zabavna vprašanja:

  • Kaj je najbolj “cool” stvar, ki si jo sprogramiral/a? Na kaj si najbolj ponosen/a?
  • Poznaš znak (logo) za HTML5?
  • Ali si trenutno, oz. si kdaj bil/a, na ladji?
  • Najljubše stvari tvojih razvojnih orodij?
  • Imaš kak zasebni projekt? Kakšen?
  • Razloži pomembnost “cornify”.
  • Na list papirja napiši vertikalno črke A B C D E . Sedaj pa jih postavi v spuščajoči vrstni red, brez da napišeš vrstico kode.
    • Počakaj če bo obrnil/a list papirja na glavo
  • Pirat ali Ninja?
    • Bonus točke če je kombiniran/a in je dal/a dober razlog (+2 za zombi opica pirat ninja)
  • Če nebi bil/a web-developer, kaj bi počel/a?
  • Najljubša lastnost Internet Explorerja?
  • Dokončaj naslednji stavek: Brendan Eich in Doug Crockford sta __________ javascript-a.
  • jQuery: dobra ali najboljša knjižnica? Debata.
  • http://www.w3schools.com/ ali http://w3fools.com/
\ No newline at end of file +Intervju vprašanja za front-end programerja ★ Front-end Job Interview Questions

Intervju vprašanja za front-end programerja

Intervju vprašanja za front-end programerja

@verzija 1.0

Obvestilo: Ta repositorij vsebuje vrsto front-end vprašanj, ki se lahko uporabijo za preverjanje potencialnih kandidatov. Ni priporočljivo, da se vsa vprašanja uporabijo za vsakega kandidata (to bi trajalo ure). Izberite nekaj vprašanj, ki vam bodo pomagala preveriti kandidata za znanja, ki jih potrebujete.

Mnogo teh vprašanj je odprtega tipa in lahko pripeljejo do zanimivih diskusij, ki vam bodo o kandidatih sporočili več, kot pa navaden kratek odgovor.

####Originalni Avtorji

Obvestilo: večino teh vprašanj je bilo pobranih iz foruma, ustvarjenega in vzdrževanega od nasljednjih ljudi:

Splošna vprašanja:

  • Ali uporabljaš Twitter?
    • Če ja, katerim osebam slediš?
  • Ali uporabljaš GitHub?
    • Če ja, katerim repositorijem slediš?
  • Katere bloge spremljaš?
  • Katere programe za hranjenje verzij si uporabljal/a (Git, SVN, …)?
  • Katero okolje najraje uporabljaš za razvoj? (OS, editor, brskalnik, orodja, …)
  • Lahko opišeš tvoj potek dela, ko kreiraš novo spletno stran?
  • Lahko opišeš razliko med “progressive enhancement” in “graceful degradation”?
    • bonus točke za opis “feature detection”-a
  • Razloži pojem “Semantic HTML”.
  • V katerem brskalniku primarno razvijaš in katera orodja uporabljaš?
  • Kako bi optimiziral/a nalaganje spletne strani (s stališča zahtevanih datotek)?
    • Iščemo več rešitev, ki med drugimi vklučujejo tudi:
      • Združevanje datotek
      • Minifikacija datotek
      • CDN gostovanje
      • Caching
  • Zakaj je bolje statične vsebine servirati z večih domen?
    • Koliko različnih datotek bo brskalnik prenesel iz ene domene na enkrat?
  • Naštej 3 načine za zmanjšanje “page load time”-a. (dejanski ali zaznavan “load time”).
  • Če bi se pridružil/a projektu, kjer uporabljajo “tab”-e, ti pa uporabljaš presledke, kaj bi storil/a?
  • Ustvari preprosto prezentacijsko stran (slide-show).
    • Bonus točke, če ne uporablja JS.
  • Katera orodja uporabljaš za testiranje performančnosti kode?
  • Če bi to leto lahko popolnoma osvojil/a novo tehnologijo, katera bi to bila?
  • Razloži pomembnost standardov in organov za nadzorovanje standardov.
  • Kaj je FOUC? Kako se izogneš FOUC-u?

HTML vprašanja:

  • Kaj naredi doctype in koliko različtih lahko našteješ?
  • Kaj je razlika med “standards mode” in “quirks mode”?
  • Kaj so omejitve pri serviranju XHTML strani?
    • Ali so kakšni problemi pri servviranju strani z application/xhtml+xml?
  • Kako serviraš stran z vsebino v večih jezikih?
    • Na katere stvari moraš paziti ko dizajniraš ali programiraš večjezično stran?
  • Ali lahko uporabljaš XHTML sintakso v HTML5?
  • Kako uporabljaš XML v HTML5?
  • Zakaj lahko uporabimo data- atribute?
  • Kaj so “content models” v HTML4 in ali so različni v HTML5?
  • Predpostavi da je HTML5 odprta spletna platforma. Kaj so gradniki HTML5?
  • Opiši razliko med “cookies”, “sessionStorage” in “localStorage”.

JavaScript vprašanja:

  • Katere JavaScript knjižnice si že uporabljal/a?
  • Si kdaj gledal/a izvorno kodo knjižnic/ogrodij, ki si jih uporabljal/a?
  • Razlika med Java in JavaScript?
  • Kaj je “hashtable”?
  • Kaj sta undefined in undeclared spremenljivki?
  • Kaj je “closure”, in zakaj/kako bi jo uporabil/a?
  • Tipičen primer uporabe anonimnih funkcij?
  • Razloži “JavaScript module pattern” in kdaj bi ga uporabil/a.
    • Bonus točke če omeni “clean namespacing”.
  • Kako organiziraš svojo kodo? (module pattern, classical inheritance?)
  • Razlika med “host object” in “native object”?
  • Razlika med:
function Person(){} var person = Person() var person = new Person()
  • Razlika med .call in .apply?
  • Razloži Function.prototype.bind?
  • Kdaj optimiziraš kodo?
  • Ali lahko razložiš dedovanje v JavaScript-u?
  • Kdaj bi uporabil/a document.write()?
  • Razlika med zaznavanjem funkcionalnosti, sklepanjem o funkcionalnosti in uporabljanjem UA niza.
  • Razloži AJAX s čim več detajli.
  • Razloži kako deluje JSONP (in zakaj to ni res AJAX).
  • Si že kdaj uporabil/a JavaScript “templates”-e?
    • Če ja, katere knjižnice si uporabil/a? (Mustache.js, Handlebars etc.)
  • Razloži “hoisting”.
  • Opiši “event bubbling”.
  • Razlika med “attribute” in “property”?
  • Zakaj je razširjanje vgrajenih JS objektov slaba ideja?
  • Zakaj je razširjanje vgrajenih JS objektov dobra ideja?
  • Razlika med “document load” in “document ready”?
  • Razlika med == in ===?
  • Kako bi dobil URL GET parameter?
  • Razloži “same-origin policy”.
  • Razloži “event delegation”.
  • Razloži različne načine doseganja dedovanja.
  • Napiši kodo za “duplicator()” funkcijo:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Opiši strategijo za pomnenje (izogibanje ponovnemu računanju).
  • Od kod ime “Ternary statement”, kaj označuje beseda “Ternary”?
  • Kaj je “arity” funkcije?
  • Kaj je "use strict";? Prednosti/slabosti?

JavaScript koda primeri:

~~3.14

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: 3

"i'm a lasagna hog".split("").reverse().join("");

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Vprašanje: Kaj je vrednost window.foo?
Odgovor: "bar"
samo če je bil window.foo “lažen”, drugače bo ohranil svojo vrednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Vprašanje: Kaj je rezultat zgornjih dveh alert-ov?
Odgovor: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vprašanje: Kaj je vrednost od foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Vprašanje: Kaj je vrednost od foo.length?
**Answer: undefined

foo = foo||bar

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
*Odgovor: if(!foo) foo = bar

foo>>1

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: Math.floor(foo/2)

foo|0
foo+.5|0

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Vprašanje: Kako dobiti število paremetrov podanih v funkcijo?
**Odgovor: foo.length // 3 za ta primer

jQuery vprašanja:

  • Razloži “chaining”.
  • Razloži “deferreds”.
  • Naštej nekaj, za jQuery specifičnih, optimizacij.
  • Kaj naredi .end()?
  • Kako, in zakaj, bi uporabil/a “namespace”-e za “event handler”-je?
  • Naštej 4 različne vrednosti, ki jih lahko podaš jQuery funkciji.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object, …
  • Kaj je “effects” vrsta (oz. fx)?
  • Razlika med .get(), [], in .eq()?
  • Razlika med .bind(), .live(), in .delegate()?
  • Razlika med $ in $.fn? Oz. kaj je $.fn?
  • Optimiziraj naslednji selektor:
$(".foo div#bar:eq(0)")
  • Razlika med ‘delegate()’ in ‘live()’?

CSS vprašanja:

  • Opiši namen CSS “reset” datoteke in zakaj je uporabna.
  • Opiši “float”-e in kako delujejo.
  • Opiši različne “clearing” tehnike.
  • Razloži CSS “sprite”-e in kako bi jih implementiral/a.
  • Tvoje najljubše tehnike za zamenjavo slik?
  • CSS hacki, pogojno vključene .css datoteke ali kaj drugega?
  • Kako serviraš strani brskalnikom ki imajo omejen nabor funkcionalnosti?
    • Katere tehnike/procese uporabljaš?
  • Na katere načine lahko vizualno skriješ vsebino (tako da je navoljo samo “screen reader”-jem)?
  • Si že kdaj uporabil/a “grid” sistem. Če ja, kateri ti je najljubši?
  • Si že implementiral/a “media queries” ali za mobilnike specifičen HTML/CSS?
  • Imaš kaj izkušenj s CSSjem v navezi s SVGjem?
  • Kako optimizeraš strani za tiskanje?
  • Naštej nekaj pasti pri pisanju efektivnega CSSja.
  • Ali uporabljaš CSS pred-procesor (sass, compass, Stylus, LESS)?
    • Če ja, opiši kaj ti je/ni všeč.
  • Kako bi implementiral/a spletno stran, ki uporablja nestandardno tipografijo?
    • Webfonts (google webfonts, typekit, …)
  • Razloži kako brskalnik ugotovi kateri element pripada kateremu CSS selektorju.

Opcijska zabavna vprašanja:

  • Kaj je najbolj “cool” stvar, ki si jo sprogramiral/a? Na kaj si najbolj ponosen/a?
  • Poznaš znak (logo) za HTML5?
  • Ali si trenutno, oz. si kdaj bil/a, na ladji?
  • Najljubše stvari tvojih razvojnih orodij?
  • Imaš kak zasebni projekt? Kakšen?
  • Razloži pomembnost “cornify”.
  • Na list papirja napiši vertikalno črke A B C D E . Sedaj pa jih postavi v spuščajoči vrstni red, brez da napišeš vrstico kode.
    • Počakaj če bo obrnil/a list papirja na glavo
  • Pirat ali Ninja?
    • Bonus točke če je kombiniran/a in je dal/a dober razlog (+2 za zombi opica pirat ninja)
  • Če nebi bil/a web-developer, kaj bi počel/a?
  • Najljubša lastnost Internet Explorerja?
  • Dokončaj naslednji stavek: Brendan Eich in Doug Crockford sta __________ javascript-a.
  • jQuery: dobra ali najboljša knjižnica? Debata.
  • http://www.w3schools.com/ ali http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/spanish/index.html b/_site/translations/spanish/index.html index 3883b2547..7f87e3cc1 100644 --- a/_site/translations/spanish/index.html +++ b/_site/translations/spanish/index.html @@ -1 +1 @@ -GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO ★ Front-end Job Interview Questions

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

Este repositorio contiene preguntas de entrevistas a programadores front-end, que pueden ser usadas para revisar a candidatos potenciales. Bajo ningún concepto se recomienda usar todas las preguntas aquí expuestas con el mismo candidato (eso llevaría horas). Escoger algunos elementos de esta lista debería ayudarle a revisar las habilidades que requiere.

Nota: Tenga en mente que muchas de estas preguntas son abiertas y pueden llevar a interesantes discusiones que le pueden decir más sobre las capacidades de la persona que una simple respuesta.

Índice

  1. Preguntas generales
  2. Preguntas específicas de HTML
  3. Preguntas específicas de CSS
  4. Preguntas específicas de JavaScript
  5. Preguntas sobre pruebas de código
  6. Preguntas sobre rendimiento
  7. Preguntas sobre conectividad
  8. Preguntas de código
  9. Preguntas divertidas

Contribuyendo

  1. Contribuyentes
  2. Cómo contribuir
  3. Licencia

Preguntas generales:

  • ¿Qué has aprendido en esta semana?
  • ¿Qué es lo que te interesa de la programación?
  • ¿Podría describir algún problema técnico que haya resuelto recientemente?
  • ¿Cuáles son las consideraciones del área de interfaces, rendimiento, posicionamiento, mantenimiento o seguridad que toma en cuenta al desarrollar sitios o aplicaciones web?
  • Hable acerca de su ambiente de desarrollo preferido.
  • ¿Qué sistemas de control de versiones ha usado?
  • ¿Puede describir el proceso que sigue cuando crea una página web?
  • Si tuviera cinco hojas de estilo distintas, ¿cómo las integraría a su página web?
  • ¿Puede describir la diferencia entre “Progressive Enhancement” y “Graceful Degradation”?
  • ¿Cómo optimizaría los recursos de un sitio web?
  • ¿Cuántos recursos se pueden descargar simultáneamente de un mismo dominio?
  • ¿Cuáles son las excepciones?
  • Mencione tres formas para disminuir el tiempo de carga de una página (tiempo real o percibido).
  • Si se ha unido a un proyecto y los desarrolladores usan tabs y usted usa espacios, ¿qué hace?
  • Describa como elaboraría una página con una galería sencilla.
  • Si pudiera elegir una tecnología para dominar este año, ¿cuál sería?
  • Explique la importancia de estándares y los grupos que los definen.
  • ¿Sabe que es el Flash Of Unstyled Content?, ¿cómo lo evita?
  • Explique qué son las Aplicaciones de internet enriquecidas y accesibles y los lectores de pantalla, además de cómo hacer una página web accesible
  • Explique las ventajas y desventajas de usar animaciones en CSS contrario a usar animaciones hechas con JavaScript.
  • ¿Qué significa CORS y a qué problema está relacionado?

Preguntas específicas de HTML:

  • ¿Qué función cumple el doctype y cuántos tipos puede nombrar?
  • ¿Cuál es la diferencia entre el modo convencional y el “quirks mode”?
  • ¿Cuál es la diferencia entre HTML y XHTML?
  • ¿Hay algún problema al servir las páginas usando: application/xhtml+xml?
  • ¿Cómo presentaría una página con contenido en varios lenguajes?
  • ¿Qué consideraciones se deben tener cuando se diseñan/desarrollan sitios multi-lenguajes?
  • ¿Para qué son buenos los atributos data-?
  • ¿Puede usar sintaxis de XHTML en HTML5?
  • ¿Cómo usa XML en HTML5?
  • Si consideramos HTML5 como una plataforma web abierta, ¿cuáles son los componentes que constituyen HTML5?
  • Describa la diferencia entre cookies, sessionStorage y localStorage.
  • Describa la diferencia entre <script>, <script async> y <script defer>.
  • Generalmente, ¿por qué es una buena idea agregar la etiqueta <link> dentro de la etiqueta <head> y la etiqueta <script> justo antes de cerrar la etiqueta <body>. ¿Conoces algún caso excepcional?
  • ¿Qué es el renderizado progresivo?
  • ¿Haz usado algún motor para creado de plantillas HTML?

Preguntas específicas de CSS:

  • ¿Cuál es la diferencia entre clases e identificadores en CSS?
  • ¿Cuál es la diferencia entre normalizar y anular el CSS?, ¿cuál usarías y por qué?
  • Describa qué son los “floats” y su funcionamiento.
  • Describa el z-index y como se decide el contexto de apilado de elementos.
  • Describa el contexto de formato de bloques (BFC) y como funciona.
  • ¿Cuáles son las técnicas para usar la propiedad clear y cuál funciona para cuál contexto?
  • Explique ¿qué son los sprites en CSS y cómo los implementarías en una página?
  • ¿Cuál es su técnica favorita para reemplazar imágenes y cuando usa cada una?
  • ¿Cómo intentaría resolver problemas de estilo para navegadores específicos?
  • ¿Cuál es su enfoque al desarrollar páginas que dan soporte a navegadores con capacidades limitadas?
  • ¿Qué técnicas o procesos usas?
  • ¿Cuáles son las distintas formas para esconder contenido, pero mantenerlo disponible únicamente para lectores de pantalla?
  • ¿Ha usado algún sistema para cuadrículas (grids) y cuál prefiere?
  • ¿Ha usado o implementado “media queries” o reglas específicas para dispositivos móviles?
  • ¿Está familiarizado con aplicar estilos a SVGs?
  • ¿Cómo optimiza sus páginas para la impresión?
  • ¿Cuáles son algunos de los “trucos” para escribir CSS eficiente?
  • Menciona las ventajas y desventajas de usar preprocesadores de CSS
  • Menciona lo que te agrada y desagrada de los preprocesadores que usas.
  • ¿Cómo implementaría un diseño que usa fuentes que no son web-safe?
  • ¿Puede explicar cómo determina un navegador qué elementos coinciden con un selector de CSS?
  • Describa los pseudo-elementos y discuta sus usos.
  • ¿Puede explicar cómo entiende el box model (modelo de cajas) y como podría hacer que un navegador renderize su esquema usando diferentes modelos de cajas?
  • ¿Qué sucede al usar * {box-sizing: border-box;}. ¿Qué desventajas supone su uso?
  • Por favor enliste todos los valores para la propiedad display que pueda recordar
  • ¿Cuál es la diferencia entre inline y inline-block?
  • ¿Cuál es la diferencia entre las posiciones relative, fixed, absolute y static para un elemento dado?
  • La C en CSS significa cascading (en cascada). ¿Cómo se determina la prioridad al asignar los estilos? ¿Cómo podemos aprovechar ese sistema?
  • ¿Cuáles frameworks de CSS has usado en desarrollo y producción? ¿Cómo los mejoraría?
  • ¿Qué sabe sobre CSS Flexbox y cuáles son sus ventajas?
  • ¿En que difiere el diseño responsivo del diseño adaptativo?
  • ¿Has trabajado con tecnología retina?, ¿qué técnicas usaste?
  • ¿Hay alguna razón por la cual preferirías usar translate() en vez de el posicionamiento absoluto? ¿Alguna razón para hacer lo contrario?

Preguntas específicas de JavaScript:

  • Explique “event delegation”.
  • Explique cómo funciona this en JavaScript.
  • Explique cómo funciona la herencia de prototipos (prototypal inheritance) en JavaScript.
  • ¿Qué opina de AMD en comparación con CommonJS?
  • Explique por qué function foo(){ }(); no funciona como un IIFE.
  • ¿Qué se necesita cambiar para que funcione como una IIFE?
  • ¿Cuál es la diferencia entre variables null, undefined y undeclared?
  • ¿Cómo comprobarías que una variable refiere a alguno de esos valores?
  • ¿Qué es un “closure” y cuando, o por qué usaría uno?
  • ¿Puede hablar de un uso típico para una función anónima?
  • ¿Cómo organiza su código, patrón módulo, herencia clásica?
  • ¿Cuál es la diferencia entre objetos huésped (host objects) y objetos nativos?
  • ¿Cuál es la diferencia entre: function Person(){}, var person = Person() y var person = new Person()?
  • ¿Cuál es la diferencia entre .call y .apply?
  • ¿Puede explicar el uso de Function.prototype.bind?
  • ¿Cuándo usarías document.write()?
  • ¿Cuál es la diferencia entre detección de capacidades, inferencia de capacidades y usar la cadena del user agent?.
  • Explique AJAX con tanto detalle como pueda.
  • Explique cómo funciona JSONP (y cómo no es AJAX realmente)
  • ¿Ha utilizado alguna vez templates en JavaScript?
    • De ser así, ¿qué bibliotecas ha usado?
  • ¿Puede explicar en qué consiste el “hoisting”?
  • ¿Puede hablar sobre “event bubbling”?
  • ¿Cuál es la diferencia entre un “atributo” y una “propiedad”?
  • ¿Por qué es una mala idea extender objetos nativos de JavaScript?
  • ¿Cuál es la diferencia entre el evento “document load” y el evento “document ready"?
  • ¿Cuál es la diferencia entre == y ===?
  • Explique la política de mismo origen (same-origin policy) y sus repercusiones en JavaScript.
  • Haga que este código funcione:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • ¿Por qué reciben el nombre de sentencias ternarias? ¿Qué significa la palabra “ternaria”?
  • ¿Qué es "use strict";? ¿Cuáles son las ventajas y desventajas de usarlo?
  • Haga un ciclo for de 100 iteraciones que imprima “fizz” en los múltiplos de 3, “buzz” en los múltiplos de 5 y “fizzbuzz” en los múltiplos de 3 y 5
  • De manera general, ¿por qué es una buena idea no usar el “ámbito” (scope) global de un sitio web?
  • ¿Por qué usaría el evento load?, ¿usarlo representa alguna ventaja?, ¿conoce alternativas y el por qué usaría dichas alternativas?
  • Explique en qué consiste una aplicación de una sola página y como hacer una que bajo los términos del posicionamiento en los buscadores.
  • ¿Qué tanto sabes acerca de las promesas en javascript? ¿Conoce alternativas a ellas?
  • Mencione las ventajas y desventajas de usar promesas en vez de callbacks.
  • Menciona las ventajas y desventajas de escribir Javascript a través de otro lenguaje que compile y su resultado sea Javascript.
  • ¿Qué herramientas y técnicas usa para depurar código Javascript?
  • ¿Qué código utiliza para iterar sobre propiedades de un objeto y sobre arreglos?
  • Explique la diferencia entre objetos mutables y objetos inmutables.
  • Mencione un ejemplo de un objeto inmutable en javascript.
  • Mencione las ventajas y desventajas de la inmutabilidad.
  • ¿Cómo puede usar la inmutabilidad en su código?
  • Explique la diferencia entre funciones síncronas y asíncronas.
  • ¿Qué es el event loop?
  • ¿Cuál es la diferencia entre la pila de llamadas y la cola de tareas?

Preguntas sobre pruebas de código:

  • Menciona ventajas y desventajas de realizar pruebas en el código
  • ¿Qué herramientas usarías para probar la funcionalidad de tu código?
  • ¿Cuál es la diferencia entre una prueba unitaria y una prueba de funcionalidad?
  • ¿Cuál es el propósito de usar herramientas para verificar los estilos usados en el código?

Preguntas sobre rendimiento:

  • ¿Qué herramientas usarías para detectar un error en el rendimiento de tu código?
  • ¿De qué formas podrías mejorar el rendimiento del scrolling en tu sitio web?
  • Menciona las diferencias entre los términos layout, painting y compositing.

Preguntas sobre conectividad:

  • Tradicionalmente, ¿Por qué es mejor servir los recursos estáticos del sitio desde múltiples dominios?
  • Intenta explicar el proceso desde el momento en el cual ingresas una URL en el navegador hasta que termina de cargar la página en tu pantalla.
  • ¿Cuáles son las diferencias entre Long-polling, websockets y server-sent events?
  • Explique las siguientes cabeceras de respuesta y envío.
  • Expires, Date, Age y If-Modified-
  • Do Not Track
  • Cache-Control
  • Transfer-Encoding
  • Etag
  • X-Frame-Options
  • ¿Qué son las acciones HTTP? explique las acciones HTTP que conozca.

Preguntas de código:

Pregunta: ¿Cuál es el valor de foo?

var foo = 10 + '20';

Pregunta: ¿Cómo harías funcionar esto?

add(2, 5); // 7
add(2)(5); // 7

Pregunta: ¿Cuál es el resultado de la siguiente sentencia?

"i'm a lasagna hog".split("").reverse().join("");

Pregunta: ¿Cuál es el valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Pregunta: ¿Cuál es el resultado de los dos alerts?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pregunta: ¿Cuál es el valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Pregunta: ¿Cuál es el valor de foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pregunta: ¿Qué imprime el siguiente código?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Preguntas divertidas:

  • ¿Qué es lo más genial que ha programado y qué es lo que más le enorgullece de ello?
  • ¿Cuáles son sus partes favoritas de las herramientas de desarrollo que usa?
  • ¿Tiene algún proyecto personal? ¿De qué tipo?
  • ¿Cuál es su funcionalidad favorita de Internet Explorer?
  • ¿Cómo te gusta tu café?

Contribuyentes

Este documento se creó en 2009 como una colaboración de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed y @iansym.

Ha recibido contribuciones de 100 desarrolladores.

\ No newline at end of file +GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO ★ Front-end Job Interview Questions

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

Este repositorio contiene preguntas de entrevistas a programadores front-end, que pueden ser usadas para revisar a candidatos potenciales. Bajo ningún concepto se recomienda usar todas las preguntas aquí expuestas con el mismo candidato (eso llevaría horas). Escoger algunos elementos de esta lista debería ayudarle a revisar las habilidades que requiere.

Nota: Tenga en mente que muchas de estas preguntas son abiertas y pueden llevar a interesantes discusiones que le pueden decir más sobre las capacidades de la persona que una simple respuesta.

Índice

  1. Preguntas generales
  2. Preguntas específicas de HTML
  3. Preguntas específicas de CSS
  4. Preguntas específicas de JavaScript
  5. Preguntas sobre pruebas de código
  6. Preguntas sobre rendimiento
  7. Preguntas sobre conectividad
  8. Preguntas de código
  9. Preguntas divertidas

Contribuyendo

  1. Contribuyentes
  2. Cómo contribuir
  3. Licencia

Preguntas generales:

  • ¿Qué has aprendido en esta semana?
  • ¿Qué es lo que te interesa de la programación?
  • ¿Podría describir algún problema técnico que haya resuelto recientemente?
  • ¿Cuáles son las consideraciones del área de interfaces, rendimiento, posicionamiento, mantenimiento o seguridad que toma en cuenta al desarrollar sitios o aplicaciones web?
  • Hable acerca de su ambiente de desarrollo preferido.
  • ¿Qué sistemas de control de versiones ha usado?
  • ¿Puede describir el proceso que sigue cuando crea una página web?
  • Si tuviera cinco hojas de estilo distintas, ¿cómo las integraría a su página web?
  • ¿Puede describir la diferencia entre “Progressive Enhancement” y “Graceful Degradation”?
  • ¿Cómo optimizaría los recursos de un sitio web?
  • ¿Cuántos recursos se pueden descargar simultáneamente de un mismo dominio?
  • ¿Cuáles son las excepciones?
  • Mencione tres formas para disminuir el tiempo de carga de una página (tiempo real o percibido).
  • Si se ha unido a un proyecto y los desarrolladores usan tabs y usted usa espacios, ¿qué hace?
  • Describa como elaboraría una página con una galería sencilla.
  • Si pudiera elegir una tecnología para dominar este año, ¿cuál sería?
  • Explique la importancia de estándares y los grupos que los definen.
  • ¿Sabe que es el Flash Of Unstyled Content?, ¿cómo lo evita?
  • Explique qué son las Aplicaciones de internet enriquecidas y accesibles y los lectores de pantalla, además de cómo hacer una página web accesible
  • Explique las ventajas y desventajas de usar animaciones en CSS contrario a usar animaciones hechas con JavaScript.
  • ¿Qué significa CORS y a qué problema está relacionado?

Preguntas específicas de HTML:

  • ¿Qué función cumple el doctype y cuántos tipos puede nombrar?
  • ¿Cuál es la diferencia entre el modo convencional y el “quirks mode”?
  • ¿Cuál es la diferencia entre HTML y XHTML?
  • ¿Hay algún problema al servir las páginas usando: application/xhtml+xml?
  • ¿Cómo presentaría una página con contenido en varios lenguajes?
  • ¿Qué consideraciones se deben tener cuando se diseñan/desarrollan sitios multi-lenguajes?
  • ¿Para qué son buenos los atributos data-?
  • ¿Puede usar sintaxis de XHTML en HTML5?
  • ¿Cómo usa XML en HTML5?
  • Si consideramos HTML5 como una plataforma web abierta, ¿cuáles son los componentes que constituyen HTML5?
  • Describa la diferencia entre cookies, sessionStorage y localStorage.
  • Describa la diferencia entre <script>, <script async> y <script defer>.
  • Generalmente, ¿por qué es una buena idea agregar la etiqueta <link> dentro de la etiqueta <head> y la etiqueta <script> justo antes de cerrar la etiqueta <body>. ¿Conoces algún caso excepcional?
  • ¿Qué es el renderizado progresivo?
  • ¿Haz usado algún motor para creado de plantillas HTML?

Preguntas específicas de CSS:

  • ¿Cuál es la diferencia entre clases e identificadores en CSS?
  • ¿Cuál es la diferencia entre normalizar y anular el CSS?, ¿cuál usarías y por qué?
  • Describa qué son los “floats” y su funcionamiento.
  • Describa el z-index y como se decide el contexto de apilado de elementos.
  • Describa el contexto de formato de bloques (BFC) y como funciona.
  • ¿Cuáles son las técnicas para usar la propiedad clear y cuál funciona para cuál contexto?
  • Explique ¿qué son los sprites en CSS y cómo los implementarías en una página?
  • ¿Cuál es su técnica favorita para reemplazar imágenes y cuando usa cada una?
  • ¿Cómo intentaría resolver problemas de estilo para navegadores específicos?
  • ¿Cuál es su enfoque al desarrollar páginas que dan soporte a navegadores con capacidades limitadas?
  • ¿Qué técnicas o procesos usas?
  • ¿Cuáles son las distintas formas para esconder contenido, pero mantenerlo disponible únicamente para lectores de pantalla?
  • ¿Ha usado algún sistema para cuadrículas (grids) y cuál prefiere?
  • ¿Ha usado o implementado “media queries” o reglas específicas para dispositivos móviles?
  • ¿Está familiarizado con aplicar estilos a SVGs?
  • ¿Cómo optimiza sus páginas para la impresión?
  • ¿Cuáles son algunos de los “trucos” para escribir CSS eficiente?
  • Menciona las ventajas y desventajas de usar preprocesadores de CSS
  • Menciona lo que te agrada y desagrada de los preprocesadores que usas.
  • ¿Cómo implementaría un diseño que usa fuentes que no son web-safe?
  • ¿Puede explicar cómo determina un navegador qué elementos coinciden con un selector de CSS?
  • Describa los pseudo-elementos y discuta sus usos.
  • ¿Puede explicar cómo entiende el box model (modelo de cajas) y como podría hacer que un navegador renderize su esquema usando diferentes modelos de cajas?
  • ¿Qué sucede al usar * {box-sizing: border-box;}. ¿Qué desventajas supone su uso?
  • Por favor enliste todos los valores para la propiedad display que pueda recordar
  • ¿Cuál es la diferencia entre inline y inline-block?
  • ¿Cuál es la diferencia entre las posiciones relative, fixed, absolute y static para un elemento dado?
  • La C en CSS significa cascading (en cascada). ¿Cómo se determina la prioridad al asignar los estilos? ¿Cómo podemos aprovechar ese sistema?
  • ¿Cuáles frameworks de CSS has usado en desarrollo y producción? ¿Cómo los mejoraría?
  • ¿Qué sabe sobre CSS Flexbox y cuáles son sus ventajas?
  • ¿En que difiere el diseño responsivo del diseño adaptativo?
  • ¿Has trabajado con tecnología retina?, ¿qué técnicas usaste?
  • ¿Hay alguna razón por la cual preferirías usar translate() en vez de el posicionamiento absoluto? ¿Alguna razón para hacer lo contrario?

Preguntas específicas de JavaScript:

  • Explique “event delegation”.
  • Explique cómo funciona this en JavaScript.
  • Explique cómo funciona la herencia de prototipos (prototypal inheritance) en JavaScript.
  • ¿Qué opina de AMD en comparación con CommonJS?
  • Explique por qué function foo(){ }(); no funciona como un IIFE.
  • ¿Qué se necesita cambiar para que funcione como una IIFE?
  • ¿Cuál es la diferencia entre variables null, undefined y undeclared?
  • ¿Cómo comprobarías que una variable refiere a alguno de esos valores?
  • ¿Qué es un “closure” y cuando, o por qué usaría uno?
  • ¿Puede hablar de un uso típico para una función anónima?
  • ¿Cómo organiza su código, patrón módulo, herencia clásica?
  • ¿Cuál es la diferencia entre objetos huésped (host objects) y objetos nativos?
  • ¿Cuál es la diferencia entre: function Person(){}, var person = Person() y var person = new Person()?
  • ¿Cuál es la diferencia entre .call y .apply?
  • ¿Puede explicar el uso de Function.prototype.bind?
  • ¿Cuándo usarías document.write()?
  • ¿Cuál es la diferencia entre detección de capacidades, inferencia de capacidades y usar la cadena del user agent?.
  • Explique AJAX con tanto detalle como pueda.
  • Explique cómo funciona JSONP (y cómo no es AJAX realmente)
  • ¿Ha utilizado alguna vez templates en JavaScript?
    • De ser así, ¿qué bibliotecas ha usado?
  • ¿Puede explicar en qué consiste el “hoisting”?
  • ¿Puede hablar sobre “event bubbling”?
  • ¿Cuál es la diferencia entre un “atributo” y una “propiedad”?
  • ¿Por qué es una mala idea extender objetos nativos de JavaScript?
  • ¿Cuál es la diferencia entre el evento “document load” y el evento “document ready"?
  • ¿Cuál es la diferencia entre == y ===?
  • Explique la política de mismo origen (same-origin policy) y sus repercusiones en JavaScript.
  • Haga que este código funcione:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • ¿Por qué reciben el nombre de sentencias ternarias? ¿Qué significa la palabra “ternaria”?
  • ¿Qué es "use strict";? ¿Cuáles son las ventajas y desventajas de usarlo?
  • Haga un ciclo for de 100 iteraciones que imprima “fizz” en los múltiplos de 3, “buzz” en los múltiplos de 5 y “fizzbuzz” en los múltiplos de 3 y 5
  • De manera general, ¿por qué es una buena idea no usar el “ámbito” (scope) global de un sitio web?
  • ¿Por qué usaría el evento load?, ¿usarlo representa alguna ventaja?, ¿conoce alternativas y el por qué usaría dichas alternativas?
  • Explique en qué consiste una aplicación de una sola página y como hacer una que bajo los términos del posicionamiento en los buscadores.
  • ¿Qué tanto sabes acerca de las promesas en javascript? ¿Conoce alternativas a ellas?
  • Mencione las ventajas y desventajas de usar promesas en vez de callbacks.
  • Menciona las ventajas y desventajas de escribir Javascript a través de otro lenguaje que compile y su resultado sea Javascript.
  • ¿Qué herramientas y técnicas usa para depurar código Javascript?
  • ¿Qué código utiliza para iterar sobre propiedades de un objeto y sobre arreglos?
  • Explique la diferencia entre objetos mutables y objetos inmutables.
  • Mencione un ejemplo de un objeto inmutable en javascript.
  • Mencione las ventajas y desventajas de la inmutabilidad.
  • ¿Cómo puede usar la inmutabilidad en su código?
  • Explique la diferencia entre funciones síncronas y asíncronas.
  • ¿Qué es el event loop?
  • ¿Cuál es la diferencia entre la pila de llamadas y la cola de tareas?

Preguntas sobre pruebas de código:

  • Menciona ventajas y desventajas de realizar pruebas en el código
  • ¿Qué herramientas usarías para probar la funcionalidad de tu código?
  • ¿Cuál es la diferencia entre una prueba unitaria y una prueba de funcionalidad?
  • ¿Cuál es el propósito de usar herramientas para verificar los estilos usados en el código?

Preguntas sobre rendimiento:

  • ¿Qué herramientas usarías para detectar un error en el rendimiento de tu código?
  • ¿De qué formas podrías mejorar el rendimiento del scrolling en tu sitio web?
  • Menciona las diferencias entre los términos layout, painting y compositing.

Preguntas sobre conectividad:

  • Tradicionalmente, ¿Por qué es mejor servir los recursos estáticos del sitio desde múltiples dominios?
  • Intenta explicar el proceso desde el momento en el cual ingresas una URL en el navegador hasta que termina de cargar la página en tu pantalla.
  • ¿Cuáles son las diferencias entre Long-polling, websockets y server-sent events?
  • Explique las siguientes cabeceras de respuesta y envío.
  • Expires, Date, Age y If-Modified-
  • Do Not Track
  • Cache-Control
  • Transfer-Encoding
  • Etag
  • X-Frame-Options
  • ¿Qué son las acciones HTTP? explique las acciones HTTP que conozca.

Preguntas de código:

Pregunta: ¿Cuál es el valor de foo?

var foo = 10 + '20';

Pregunta: ¿Cómo harías funcionar esto?

add(2, 5); // 7
add(2)(5); // 7

Pregunta: ¿Cuál es el resultado de la siguiente sentencia?

"i'm a lasagna hog".split("").reverse().join("");

Pregunta: ¿Cuál es el valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Pregunta: ¿Cuál es el resultado de los dos alerts?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pregunta: ¿Cuál es el valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Pregunta: ¿Cuál es el valor de foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pregunta: ¿Qué imprime el siguiente código?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Preguntas divertidas:

  • ¿Qué es lo más genial que ha programado y qué es lo que más le enorgullece de ello?
  • ¿Cuáles son sus partes favoritas de las herramientas de desarrollo que usa?
  • ¿Tiene algún proyecto personal? ¿De qué tipo?
  • ¿Cuál es su funcionalidad favorita de Internet Explorer?
  • ¿Cómo te gusta tu café?

Contribuyentes

Este documento se creó en 2009 como una colaboración de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed y @iansym.

Ha recibido contribuciones de 100 desarrolladores.

\ No newline at end of file diff --git a/_site/translations/swedish/index.html b/_site/translations/swedish/index.html index d2e2eed69..41491756e 100644 --- a/_site/translations/swedish/index.html +++ b/_site/translations/swedish/index.html @@ -1 +1 @@ -Front-end Anställningsfrågor ★ Front-end Job Interview Questions

Front-end Anställningsfrågor

Front-end Anställningsfrågor

Detta arkiv innehåller ett urval av frågor som kan ställas till den arbetssökande. Det är verkligen inte rekommenderat att ställa alla frågor här till samma person (det skulle ta timmar). Att välja ut ett par stycken från listan bör hjälpa dig besluta huruvida den arbetssökande uppfyller dina krav.

Att tänka på: Kom ihåg att många av de här frågorna är öppna och kan leda till intressanta diskussioner som berättar mer om personens kunskaper än vad en sluten fråga skulle.

Innehållsförteckning

  1. Allmänna frågor
  2. HTML-frågor
  3. CSS-frågor
  4. JS-frågor
  5. Nätverksgrågor
  6. Kodfrågor
  7. Roliga frågor

Hjälpa till

  1. Bidragande skribenter
  2. Att hjälpa till
  3. Licens

Allmänna frågor:

  • Vad lärde du dig igår/den här veckan?
  • Vad tycker du är spännande eller intressant med kodning?
  • Berätta om en teknisk utmaning du haft nyligen och hur du löste den.
  • Vilka övervägningar gör du angående gränssnitt, säkerhet, prestanda, SEO, underhållsmässighet och tekniker när du bygger en webbapplikation eller -plats?
  • Berätta lite om den utvecklingsmiljö du helst sitter i.
  • Vilka versionshanteringssystem har du använt?
  • Kan du beskriva ditt arbetsflöde när du skapar en hemsida?
  • Om du har fem olika stilmallar, hur skulle du bäst integrera dem i sajten?
  • Kan du beskriva skillnaden mellan “progressive enhancement” och “graceful degradation”?
  • Hur skulle du optimera en webbplats resurser?
  • Hur många resurser kan en webbläsare ladda från en specifik domän åt gången?
    • Vilka är undantagen?
  • Nämn tre sätt att minska laddningstiden för en webbsida (uppfattad eller faktisk laddningstid).
  • Om du hoppade på ett projekt och de använde tabbar och du mellanslag, vad skulle du då göra?
  • Beskriv hur du skulle göra ett enkelt bildspel.
  • Om du kunde bemästra en teknologi i år, vad skulle det vara?
  • Beskriv varför det är viktigt med standarder och standardiseringsorganisationer.
  • Vad är “Flash of Unstyled Content”? Hur undviker du FOUC?
  • Förklara vad ARIA och skärmläsare är och hur man gör en webbplats tillgänglig.
  • Förklara några av fördelarna och nackdelarna mellan CSS- och JavaScript-animationer.

HTML-frågor:

  • Vad gör en dokumenttyp (doctype)?
  • Vad är skillnaden mellan standardläge och quirksläge?
  • Vad är skillnaden mellan HTML och XHTML?
  • Finns det några problem med att skicka sidor som application/xhtml+xml?
  • Hur skickar du en sida innehållandes flera språk?
  • Vad måste du vara försiktig med när du designar eller utvecklar för flerspråkssidor?
  • Vad är data--attribut bra för?
  • Tänk dig HTML5 som en öppen webbplattform. Vad är byggstenarna i HTML5?
  • Beskriv skillnaden mellan en cookie, sessionStorage och localStorage.
  • Beskriv skillnaden mellan <script>, <script async> och <script defer>.
  • Varför är det generellt en bra idé att lägga CSS-<link>ar mellan <head></head> och JS-<script>ar precis före </body>? Känner du till några undantag?
  • Vad är progressiv rendering?
  • Har du använt dig av några HTML-mallspråk tidigare?

CSS-frågor:

  • Vad är skillnaden mellan klasser och ID:n i CSS?
  • Vad är skillnaden mellan att “nollställa” och att “normalisera” CSS? Vad skulle du välja och varför?
  • Beskriv floats och hur de fungerar.
  • Beskriv z-index och hur stacking context skapas.
  • Beskriv BFC (Block Formatting Context) och hur det fungerar?
  • Vilka olika clearing-tekniker finns det och vilka passar för vilka sammanhang?
  • Förklara CSS-sprites och hur du skulle implementera dem på en sida.
  • Vilka är dina favorittekniker för bildersättning och vilka använder du i vilka situationer?
  • Hur skulle du fixa webbläsarspecifika stilproblem?
  • Hur skickar du sidor till funktionsbegränsade webbläsare?
    • Vilka tekniker/processer använder du?
  • Vilka olika sätt finns det att visuellt dölja element (och bara göra dem tillgängliga för skärmläsare)?
  • Har du någonsin använt ett rutnätsystem, och i sådana fall vilket föredrar du?
  • Har du använt eller implementerat mediafrågor eller mobilspecifika layouter/CSS:er?
  • Har du någon erfarenhet av att styla SVG?
  • Hur optimerar du dina webbplatser för utskrift?
  • Vilka är några av de fallgropar som finns för att skriva effektiv CSS?
  • Vilka är fördelarna/nackdelarna med att använda CSS-preprocessorer?
    • Beskriv vad du gillar och ogillar med de CSS-preprocessorer du använt.
  • Hur skulle du implementera en webbdesign som använder icke-standardiserade typsnitt?
  • Förklara hur en webbläsare bestämmer vilka element som matchar en selektor.
  • Beskriv pseudoelement och vad de används till.
  • Förklara boxmodellen och hur du skulle göra i CSS för att få webbläsaren att rendera din layout i olika boxmodeller.
  • Vad gör * { box-sizing: border-box; }? Vad är dess fördelar?
  • Lista så många värden för display-egenskapen som du kan komma ihåg.
  • Vad är skillnaden mellan inline och inline-block?
  • Vad är skillnaden mellan element som är positionerade med relative, fixed, absolute och static?
  • C:et i CSS står för “Cascading”. Hur bestäms prioritet när stilar sätts (några exempel)? Hur kan du använda det här systemet till din fördel?
  • Vilka CSS-ramverk har du använt lokalt eller i produktion? Hur skulle du förändra/förbättra dem?
  • Har du lekt något med de nya CSS-specifikationerna för Flexbox och Grid?
  • På vilket sätt skiljer sig responsiv design från adaptiv design?
  • Har du någon gång arbetat med retinagrafik? I så fall, när var det och vilka tekniker använde du?
  • Finns det någon anledning till att du skulle vilja använda translate() i stället för absolut positionering och vice-versa? I så fall varför?

JS-frågor:

  • Förklara eventdelegering.
  • Förklara hur this fungerar i JavaScript
  • Förklara hur prototypiskt arv fungerar.
  • AMD eller CommonJS?
  • Förklara varför följande inte fungerar som en IIFE: function foo(){ }();.
    • Vad behöver ändras för att göra den till en fungerande IIFE?
  • Vad är skillnaden mellan en variabel som är: null, undefined eller undeclared?
    • Hur skulle du göra för att kolla efter någon av dessa?
  • Vad är en “closure” och hur/varför vill du använda det?
  • Vad är ett typiskt användningsområde för en anonym funktion?
  • Hur organiserar du din kod? (Modulmönstret, klassiskt arv?)
  • Vad är skillnaden mellan “host objects” och “native objects”?
  • Skillnaden mellan: function Person(){}, var person = Person() och var person = new Person()?
  • Vad är skillnaden mellan .call och .apply?
  • Förklara Function.prototype.bind?
  • När skulle du använda document.write()?
  • Vad är skillnaden mellan “feature detection”, “feature inference”, och att använda UA-strängen?
  • Förklara AJAX så noggrant som möjligt.
  • Förklara hur JSONP fungerar (och varför det egentligen inte är AJAX).
  • Har du någonsin använt “JavaScript templating”?
    • Om så är fallet, vilka bibliotek har du använt?
  • Förklara “hoisting”.
  • Beskriv “event bubbling”.
  • Vad är skillnaden mellan “attribute” och “property”?
  • Varför är det inte bra att utvidga (extend) inbyggda JavaScript-objekt?
  • Skillnaden mellan “document load event” och “document ready event”?
  • Vad är skillnaden mellan == och ===?
  • Förklara “same-origin policy” med hänsyn till JavaScript.
  • Få det här att fungera
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Varför kallas det för “ternary expression”, vad menas med ordet “ternary”?
  • Vad är "use strict";? Vilka är för- och nackdelarna med att använda det?
  • Skapa en for-loop som itererar upp till 100 medan den skriver ut “fizz” vid multiplar av 3, “buzz” vid multiplar av 5 och “fizzbuzz” vid multiplar av 3 och 5.
  • Varför är det generellt sett en bra idé att aldrig röra det globala scopet på en webbsida?
  • Varför skulle man vilja använda något som load-eventet? Har det eventet några nackdelar? Känner du till några alternativ och varför skulle man i så fall vilja använda dem?
  • Förklara vad en single page-app är och hur en sådan kan göras SEO-vänlig.
  • Hur stor erfarenhet har du av Promises och/eller polyfills för dem?
  • Vad är fördelarna och nackdelarna med att använda Promises i stället för callbacks?
  • Nämn några för- och nackdelar med att skriva JavaScript-kod i ett språk som kompilerar till JavaScript.

Testfrågor:

  • Nämn några för- och nackdelar med att testa sin kod.
  • Vilka verktyg skulle du använda för att testa din kods funktionalitet?
  • Vad är skillnaden mellan ett enhetstest och ett integrations-/funktionellt test?
  • Vad är syftet med ett verktyg för lintning av kodstil?

Prestandafrågor:

  • Vilka verktyg skulle du använda för att hitta en prestandabugg i din kod?
  • Nämn några sätt att förbättra din sajts skrollningsprestanda.
  • Beskriv skillnaden mellan “layout”, “painting” och “compositing”.

Nätverksfrågor:

  • Varför har det traditionellt sett varit bättre att servera webbplatsen från flera domäner?
  • Förklara så noggrannt du kan processen från att du skriver in en webbsidas URL till att sidan har laddats färdigt på din skärm.
  • Vad är skillnaderna mellan long-polling, WebSockets och Server-Sent Events?
  • Förklara följande svarshuvuden:
    • Skillnaden mellan Expires, Date, Age och If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Vad är “HTTP actions”? Lista alla “HTTP actions” du känner till och förklara dem.

Kodfrågor

Fråga: Vad är värdet av foo?

var foo = 10 + '20';

Fråga: Hur skulle du få det här att fungera?

add(2, 5); // 7
add(2)(5); // 7

Fråga: Vilket värde returneras från nedanstående?

"i'm a lasagna hog".split("").reverse().join("");

Fråga: Vad är värdet av window.foo?

( window.foo || ( window.foo = "bar" ) );

Fråga: Vad kommer de två alerterna att ropa ut?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Fråga: Vad är värdet av foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Fråga: Vad är värdet av foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Roliga frågor:

  • Nämn en cool sak du kodat nyligen.
  • Nämn några delar som du gillar hos de utvecklarverktyg du använder?
  • Har du några egna projekt som du sköter om? I sådana fall vilken typ av projekt?
  • Vilken är din favoritfunktion i Internet Explorer?
  • Hur gillar du ditt kaffe?

Bidragande skribenter:

Det här dokumentet startades 2009 som ett samarbete mellan @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed och @iansym.

Det har sedan dess fått bidrag från över 100 utvecklare.

\ No newline at end of file +Front-end Anställningsfrågor ★ Front-end Job Interview Questions

Front-end Anställningsfrågor

Front-end Anställningsfrågor

Detta arkiv innehåller ett urval av frågor som kan ställas till den arbetssökande. Det är verkligen inte rekommenderat att ställa alla frågor här till samma person (det skulle ta timmar). Att välja ut ett par stycken från listan bör hjälpa dig besluta huruvida den arbetssökande uppfyller dina krav.

Att tänka på: Kom ihåg att många av de här frågorna är öppna och kan leda till intressanta diskussioner som berättar mer om personens kunskaper än vad en sluten fråga skulle.

Innehållsförteckning

  1. Allmänna frågor
  2. HTML-frågor
  3. CSS-frågor
  4. JS-frågor
  5. Nätverksgrågor
  6. Kodfrågor
  7. Roliga frågor

Hjälpa till

  1. Bidragande skribenter
  2. Att hjälpa till
  3. Licens

Allmänna frågor:

  • Vad lärde du dig igår/den här veckan?
  • Vad tycker du är spännande eller intressant med kodning?
  • Berätta om en teknisk utmaning du haft nyligen och hur du löste den.
  • Vilka övervägningar gör du angående gränssnitt, säkerhet, prestanda, SEO, underhållsmässighet och tekniker när du bygger en webbapplikation eller -plats?
  • Berätta lite om den utvecklingsmiljö du helst sitter i.
  • Vilka versionshanteringssystem har du använt?
  • Kan du beskriva ditt arbetsflöde när du skapar en hemsida?
  • Om du har fem olika stilmallar, hur skulle du bäst integrera dem i sajten?
  • Kan du beskriva skillnaden mellan “progressive enhancement” och “graceful degradation”?
  • Hur skulle du optimera en webbplats resurser?
  • Hur många resurser kan en webbläsare ladda från en specifik domän åt gången?
    • Vilka är undantagen?
  • Nämn tre sätt att minska laddningstiden för en webbsida (uppfattad eller faktisk laddningstid).
  • Om du hoppade på ett projekt och de använde tabbar och du mellanslag, vad skulle du då göra?
  • Beskriv hur du skulle göra ett enkelt bildspel.
  • Om du kunde bemästra en teknologi i år, vad skulle det vara?
  • Beskriv varför det är viktigt med standarder och standardiseringsorganisationer.
  • Vad är “Flash of Unstyled Content”? Hur undviker du FOUC?
  • Förklara vad ARIA och skärmläsare är och hur man gör en webbplats tillgänglig.
  • Förklara några av fördelarna och nackdelarna mellan CSS- och JavaScript-animationer.

HTML-frågor:

  • Vad gör en dokumenttyp (doctype)?
  • Vad är skillnaden mellan standardläge och quirksläge?
  • Vad är skillnaden mellan HTML och XHTML?
  • Finns det några problem med att skicka sidor som application/xhtml+xml?
  • Hur skickar du en sida innehållandes flera språk?
  • Vad måste du vara försiktig med när du designar eller utvecklar för flerspråkssidor?
  • Vad är data--attribut bra för?
  • Tänk dig HTML5 som en öppen webbplattform. Vad är byggstenarna i HTML5?
  • Beskriv skillnaden mellan en cookie, sessionStorage och localStorage.
  • Beskriv skillnaden mellan <script>, <script async> och <script defer>.
  • Varför är det generellt en bra idé att lägga CSS-<link>ar mellan <head></head> och JS-<script>ar precis före </body>? Känner du till några undantag?
  • Vad är progressiv rendering?
  • Har du använt dig av några HTML-mallspråk tidigare?

CSS-frågor:

  • Vad är skillnaden mellan klasser och ID:n i CSS?
  • Vad är skillnaden mellan att “nollställa” och att “normalisera” CSS? Vad skulle du välja och varför?
  • Beskriv floats och hur de fungerar.
  • Beskriv z-index och hur stacking context skapas.
  • Beskriv BFC (Block Formatting Context) och hur det fungerar?
  • Vilka olika clearing-tekniker finns det och vilka passar för vilka sammanhang?
  • Förklara CSS-sprites och hur du skulle implementera dem på en sida.
  • Vilka är dina favorittekniker för bildersättning och vilka använder du i vilka situationer?
  • Hur skulle du fixa webbläsarspecifika stilproblem?
  • Hur skickar du sidor till funktionsbegränsade webbläsare?
    • Vilka tekniker/processer använder du?
  • Vilka olika sätt finns det att visuellt dölja element (och bara göra dem tillgängliga för skärmläsare)?
  • Har du någonsin använt ett rutnätsystem, och i sådana fall vilket föredrar du?
  • Har du använt eller implementerat mediafrågor eller mobilspecifika layouter/CSS:er?
  • Har du någon erfarenhet av att styla SVG?
  • Hur optimerar du dina webbplatser för utskrift?
  • Vilka är några av de fallgropar som finns för att skriva effektiv CSS?
  • Vilka är fördelarna/nackdelarna med att använda CSS-preprocessorer?
    • Beskriv vad du gillar och ogillar med de CSS-preprocessorer du använt.
  • Hur skulle du implementera en webbdesign som använder icke-standardiserade typsnitt?
  • Förklara hur en webbläsare bestämmer vilka element som matchar en selektor.
  • Beskriv pseudoelement och vad de används till.
  • Förklara boxmodellen och hur du skulle göra i CSS för att få webbläsaren att rendera din layout i olika boxmodeller.
  • Vad gör * { box-sizing: border-box; }? Vad är dess fördelar?
  • Lista så många värden för display-egenskapen som du kan komma ihåg.
  • Vad är skillnaden mellan inline och inline-block?
  • Vad är skillnaden mellan element som är positionerade med relative, fixed, absolute och static?
  • C:et i CSS står för “Cascading”. Hur bestäms prioritet när stilar sätts (några exempel)? Hur kan du använda det här systemet till din fördel?
  • Vilka CSS-ramverk har du använt lokalt eller i produktion? Hur skulle du förändra/förbättra dem?
  • Har du lekt något med de nya CSS-specifikationerna för Flexbox och Grid?
  • På vilket sätt skiljer sig responsiv design från adaptiv design?
  • Har du någon gång arbetat med retinagrafik? I så fall, när var det och vilka tekniker använde du?
  • Finns det någon anledning till att du skulle vilja använda translate() i stället för absolut positionering och vice-versa? I så fall varför?

JS-frågor:

  • Förklara eventdelegering.
  • Förklara hur this fungerar i JavaScript
  • Förklara hur prototypiskt arv fungerar.
  • AMD eller CommonJS?
  • Förklara varför följande inte fungerar som en IIFE: function foo(){ }();.
    • Vad behöver ändras för att göra den till en fungerande IIFE?
  • Vad är skillnaden mellan en variabel som är: null, undefined eller undeclared?
    • Hur skulle du göra för att kolla efter någon av dessa?
  • Vad är en “closure” och hur/varför vill du använda det?
  • Vad är ett typiskt användningsområde för en anonym funktion?
  • Hur organiserar du din kod? (Modulmönstret, klassiskt arv?)
  • Vad är skillnaden mellan “host objects” och “native objects”?
  • Skillnaden mellan: function Person(){}, var person = Person() och var person = new Person()?
  • Vad är skillnaden mellan .call och .apply?
  • Förklara Function.prototype.bind?
  • När skulle du använda document.write()?
  • Vad är skillnaden mellan “feature detection”, “feature inference”, och att använda UA-strängen?
  • Förklara AJAX så noggrant som möjligt.
  • Förklara hur JSONP fungerar (och varför det egentligen inte är AJAX).
  • Har du någonsin använt “JavaScript templating”?
    • Om så är fallet, vilka bibliotek har du använt?
  • Förklara “hoisting”.
  • Beskriv “event bubbling”.
  • Vad är skillnaden mellan “attribute” och “property”?
  • Varför är det inte bra att utvidga (extend) inbyggda JavaScript-objekt?
  • Skillnaden mellan “document load event” och “document ready event”?
  • Vad är skillnaden mellan == och ===?
  • Förklara “same-origin policy” med hänsyn till JavaScript.
  • Få det här att fungera
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Varför kallas det för “ternary expression”, vad menas med ordet “ternary”?
  • Vad är "use strict";? Vilka är för- och nackdelarna med att använda det?
  • Skapa en for-loop som itererar upp till 100 medan den skriver ut “fizz” vid multiplar av 3, “buzz” vid multiplar av 5 och “fizzbuzz” vid multiplar av 3 och 5.
  • Varför är det generellt sett en bra idé att aldrig röra det globala scopet på en webbsida?
  • Varför skulle man vilja använda något som load-eventet? Har det eventet några nackdelar? Känner du till några alternativ och varför skulle man i så fall vilja använda dem?
  • Förklara vad en single page-app är och hur en sådan kan göras SEO-vänlig.
  • Hur stor erfarenhet har du av Promises och/eller polyfills för dem?
  • Vad är fördelarna och nackdelarna med att använda Promises i stället för callbacks?
  • Nämn några för- och nackdelar med att skriva JavaScript-kod i ett språk som kompilerar till JavaScript.

Testfrågor:

  • Nämn några för- och nackdelar med att testa sin kod.
  • Vilka verktyg skulle du använda för att testa din kods funktionalitet?
  • Vad är skillnaden mellan ett enhetstest och ett integrations-/funktionellt test?
  • Vad är syftet med ett verktyg för lintning av kodstil?

Prestandafrågor:

  • Vilka verktyg skulle du använda för att hitta en prestandabugg i din kod?
  • Nämn några sätt att förbättra din sajts skrollningsprestanda.
  • Beskriv skillnaden mellan “layout”, “painting” och “compositing”.

Nätverksfrågor:

  • Varför har det traditionellt sett varit bättre att servera webbplatsen från flera domäner?
  • Förklara så noggrannt du kan processen från att du skriver in en webbsidas URL till att sidan har laddats färdigt på din skärm.
  • Vad är skillnaderna mellan long-polling, WebSockets och Server-Sent Events?
  • Förklara följande svarshuvuden:
    • Skillnaden mellan Expires, Date, Age och If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Vad är “HTTP actions”? Lista alla “HTTP actions” du känner till och förklara dem.

Kodfrågor

Fråga: Vad är värdet av foo?

var foo = 10 + '20';

Fråga: Hur skulle du få det här att fungera?

add(2, 5); // 7
add(2)(5); // 7

Fråga: Vilket värde returneras från nedanstående?

"i'm a lasagna hog".split("").reverse().join("");

Fråga: Vad är värdet av window.foo?

( window.foo || ( window.foo = "bar" ) );

Fråga: Vad kommer de två alerterna att ropa ut?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Fråga: Vad är värdet av foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Fråga: Vad är värdet av foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Roliga frågor:

  • Nämn en cool sak du kodat nyligen.
  • Nämn några delar som du gillar hos de utvecklarverktyg du använder?
  • Har du några egna projekt som du sköter om? I sådana fall vilken typ av projekt?
  • Vilken är din favoritfunktion i Internet Explorer?
  • Hur gillar du ditt kaffe?

Bidragande skribenter:

Det här dokumentet startades 2009 som ett samarbete mellan @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed och @iansym.

Det har sedan dess fått bidrag från över 100 utvecklare.

\ No newline at end of file diff --git a/_site/translations/turkish/index.html b/_site/translations/turkish/index.html index ec8ba7f1d..a93c9b276 100644 --- a/_site/translations/turkish/index.html +++ b/_site/translations/turkish/index.html @@ -1 +1 @@ -Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları ★ Front-end Job Interview Questions

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Burada ön yüz yazılım -ya da front-end- iş başvurularınızda karşınıza çıkabilecek sorular yer almaktadır. Her sorunun iş başvurularınızda karşınıza çıkması garanti değil ancak ihtimali var. Ayrıca buradaki sorular sadece iş başvurusu yapanlar için değil, bu branşta kendini geliştirmeyi düşünenler için de kaynak niteliğindedir.

Not: Buradaki birçok sorunun ucunun açık olduğunu, bu sebeple vereceğiniz cevaba göre ilginç tartışmalara yol açabileceğini unutmayın.

İçindekiler

  1. Genel Sorular
  2. HTML Soruları
  3. CSS Soruları
  4. JS Soruları
  5. Test Soruları
  6. Performans Soruları
  7. Ağ Soruları
  8. Kodlama Soruları
  9. Eğlenceli Sorular

Dahil Olmak İçin

  1. Katkıda bulunanlar
  2. Nasıl katkıda bulunabilirim?
  3. Lisans

Genel Sorular:

  • Dün -ya da bu hafta- neler öğrendin?
  • Kod yazmanda seni cezbeden şey ne?
  • Deneyimlediğin son teknik meydan okuma / problem neydi ve onu nasıl çözdün?
  • Website yada web application hazırlarken UI, güvenlik, performans, SEO, sürdürülebilirlik veya teknoloji için nelere dikkat edersin?
  • Bize biraz geliştirme ortamından bahset. -İşletim Sistemi, Web Tarayıcı, Araçlar, Kod Editörü/IDE, vb.-
  • Haangi version kontrol sistemlerine aşinasın?
  • Web sayfasını oluştururken hangi adımları takip edersin?
  • Eğer 5 farklı stil dosyası varsa, bunları siteye entegre etmenin en iyi yolu nedir?
  • “Aşamalı geliştirme (progressive enhancement)” ile “kontrollü azalma (graceful degradation)” arasında ne fark vardır?
  • Web sitesindeki dosyaları nasıl optimize edersin?
  • Belli bir zamanda, tek bir alanadı üzerinden web tarayıcısı ne kadar kaynak indirebilir?
    • İstisnalar nelerdir?
  • Sayfa yüklenme hızını azaltmanın yollarından 3 tanesini söyleyebilir misin?
  • Yeni dahil olduğunuz bir projede, kodlama için Tab boşluk kullanılıyor ama siz Space ile boşluk bırakmayı tercih ediyorsunuz. Bu durumda ne yaparsınız?
  • Basit bir slayt/galeri sayfası oluşturun
  • Eğer bu yıl bir teknolojide en iyi olmak isteseydin, hangisini seçerdin?
  • Yazılım standartlarının öneminden bahseder misin?
  • FOUC nedir? FOUC’a nasıl engel olabilirsin?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • CSS animasyonlarının JavaScript animasyonlara göre artılarını ve eksiklerini açıklayabilir misin?
  • CORS ne anlama geliyor ve nasıl bir problemi çözüyor?

HTML Soruları:

  • doctypeın işlevi nedir?
  • Full standards mode, almost standards mode ve quirks mode arasındaki farklar nelerdir?
  • HTML ve XHTML arasındaki farkler nelerdir?
  • Sayfaların application/xhtml+xml olarak çalıştırılmasında herhangi bir sakınca var mıdır?
  • Sayfa içeriği çoklu dil olan siteyi nasıl sunabilirsin?
  • Çoklu dil olan sayfalarda tasarım veya kodlama olarak nelerden kaçılmalısın?
  • data- özelliği ne faydalar sağlar?
  • HTML5’i ‘open web platform’ olarak düşün. HTML5’in yapı taşları/temelleri nelerdir?
  • cookie, sessionStorage ve localStorage arasındaki farkları açıklayabilir misin?
  • <script>, <script async> ve <script defer> arasındaki farkları açıklayabilir misin?
  • CSS <link>lerin <head></head> arasında ve JS <script>lerinin </body> etiketinden önce olması niye genelde iyi bir fikirdir? Herhangi bir istisna biliyor musun?
  • Progressive rendering nedir?
  • Önceden farklı bir HTML templating dili kullandın mı?

CSS Soruları:

  • CSS’te class ve ID arasındaki farklar nelerdir?
  • “Resetting” ve “normalizing” CSS’ler arasındaki farklar nelerdir? Hangisini kullanmamız gerekir, neden?
  • Floats özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • z-index özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • BFC (Block Formatting Context)'nin ne olduğunu ve nasıl çalıştığından bahsedin.
  • Çeşitli ‘clearing’ teknikleri nelerdir ve hangi teknik hangi içerik için uygundur?
  • CSS Sprites özelliğini ve sayfanıza veya web uygulamanıza nasıl entegre edeceğinizi anlatın.
  • En favori imaj yerini değiştirme (image replacement) tekniği sizce hangisidir ve ne gibi durumlarda kullanırsınız?
  • Browser tabanlı (browser-specific) stil problemlerini nasıl çözersiniz?
  • Özellik kısıtlamalı (feature-constrained) tarayıcılar için websitenizi nasıl hazırlarsınız?
    • Hangi teknikleri/işlemleri kullanırsınız?
  • İçerikleri görsel olarak gizlemek hangi yollar bulunmakta? (İçerik sadece ekran okuyucular (screen readers) için gözükecek.)
  • Şimdiye kadar grid sistemi kullandınız mı? Eğer kullandıysanız, ne tercih edersiniz?
  • Şimdiye kadar ‘media queries’ veya mobil bazlı CSS/tasarım kullanıdınız mı?
  • SVG stillendirme hakkında deneyiminiz var mı?
  • Yazdırmak için (print) sitenizi ne şekilde en uygun hale getirdiniz?
  • Kaliteli CSS yazmak için ‘işte bu!’ dediğiniz şeyler nelerdir?
  • CSS 'preprocessor’ler kullanmanın artı-eksileri nelerdir? (SASS, Compass, Stylus, LESS)
    • Şimdiye kadar kullandıklarınızda en çok beğendiğiniz/beğenmediğiniz özellikler nelerdi?
  • Standart fontları kullanmayan web tasarımlarını nasıl sayfanıze entegre ediyorsunuz?
  • Tarayıcılar HTML elementlerin CSS seçicilerle (selector) eşleştiğini nasıl algılıyor, açıklar mısınız?
  • Sözde elementleri (pseudo-elements) ve ne için kullandıklarını açıklayın.
  • ‘box model’ konusunu bildiğiniz kadar açıklayın ve tasarımınızı farklı bir ‘box model’ ile göstermek istediğinizde CSS tarafında tarayıcıya ne belirtmeniz gerekir?
  • * { box-sizing: border-box; } ne yapar? Avantajları nelerdir?
  • ‘Display’ özelliğinin aldığı değerleri hatırladığınız kadar sayın.
  • ‘inline’ ile ‘inline-block’ arasındaki farklılıklar nelerdir?
  • ‘relative’, ‘fixed’, ‘absolute’ ve ‘static’ konumlandırılmış elementlerin farkı nedir?
  • CSS kelimesindeki C harfi "Cascading"in (basamaklı) kısaltmasıdır. Yönlendirilen stillerde öncelikler nasıl belirlenir (birkaç örnekle birlikte)? Bunu nasıl kendi avantajınıza göre kullanabilirsiniz?
  • Kullanmış olduğunuz, daha tanınmayan - lokal CSS çatılar (frameworks) var mı? Bunları nasıl değiştirmek / geliştirmek isterdiniz?
  • Yeni CSS Flebox veya Grid özellikleriyle deneyip bir şeyler yaptınız mı?
  • Responsive tasarımın adaptive tasarımdan farkı nedir?
  • Hiç retina grafiklerle çalıştınız mı? Eğer çalıştıysanız ne zaman ve hangi teknikleri kullandınız?
  • translate() yerine absolute positioning, veya tam tersini kullanmak için bir sebebiniz olabilir mi? Ve neden?

JS Soruları:

  • ‘Event delegation’ özelliğini anlatın.
  • JavaScript’te this nasıl çalışıyor?
  • ‘prototypal inheritance’ nasıl çalışır?
  • AMD ile CommonJS’in farkı nelerdir?
  • IIFE olarak neden bu fonksiyonun çalışmadığını açıklayın: function foo(){ }();.
    • IIFE olarak çalışması için ne yapmak gerekiyor?
  • null, undefined ve undeclared arasında ne farklar var?
    • Bu değerleri kontrol ederken neler yapmalıyız?
  • ‘Closure’ nedir, ve nasıl/neden kullanırız?
  • Anonim fonksiyonları kullanma durumları nelerdir?
  • Kodunuzu nasıl organize edersiniz? (module pattern, classical inheritance?)
  • host objects ve native objects arasında ne fark var?
  • function Person(){}, var person = Person(), ve var person = new Person() arasındaki farklar nelerdir?
  • .call ve .apply arasındaki fark nedir?
  • Function.prototype.bind özelliğinin ne olduğunu açıklayınız.
  • undefined ve null arasındaki fark nedir?
  • document.write() fonksiyonunu ne zaman kullanmalıyız?
  • Özellik tespiti (feature detection), özellik çıkarım (feature inference) ve UA string kullanımı arasındaki farklar nelerdir?
  • AJAX’ı olabildiğince detaylı şekilde açıklayın.
  • Ajax kullanmanın avantajları ve dezavantajları nelerdir?
  • JSONP nasıl çalışır? (ve neden tam olarak AJAX olmadığını da açıklayınız.)
  • JavaScript ‘template’ yapısını hiç kullandınız mı?
    • Eğer kullandıysanız, Hangi 'library’leri kullandınız? (Mustache.js, Handlebars, vb.)
  • “Hoisting” özelliğini açıklayın.
  • ‘Event bubbling’ özelliğini açıklayın.
  • “Attribute” ve “property” arasındaki farklar nelerdir?
  • JavaScript objeleri genişletmek neden iyi fikir değildir?
  • “document load event” ile “document DOMContentLoaded event” arasındaki farklar nelerdir?
  • == ve === arasında ne fark vardır?
  • JavaScript için ‘same-origin policy’ konusunu açıklayın.
  • Çalışacak şekilde kodu yazın:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Neden ‘Ternary expression’ olarak çağrılmaktadır? “Ternary” kelimesi neyi belirtmektedir?
  • "use strict"; nedir? Bunu kullanmanın artı/eksileri nelerdir?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Websitenin genel skopundan ayrılmak ve dokunmamak neden genelde iyi bir fikirdir?
  • Neden load gibi bir event kullanırsınız? Bunun dezavantajları var mı? Bildiğiniz alternatifleri var mı ve neden onları kullanıyorsunuz?
  • Tek sayfa uygulama (single page app) nedir ve nasıl arama motoru uyumlu (SEO-friendly) yapılır, açıklayın.
  • “Promises” ve/veya onun polyfilleriyle alakalı deneyimler nedir?
  • "Callback"ler yerine “Promises” kullanmanın artıları ve eksileri nelerdir?
  • JavaScript’in derlendiği bir dilde JavaScript yazmanın avantajları ve dezavantajlarından bazıları nelerdir?
  • JavaScript kodunuzda hata ayıklarken (debugging) kullandığınız teknikler ve araçlar nelerdir?
  • What language constructions do you use for iterating over object properties and array items?
  • Kesilebilir (mutable) ve değişmez (immutable) nesneler arasındaki farkları açıklayın.
    • JavaScript’te değişmez (immutable) objeye bir örnek veriniz.
    • Değişmezliğin (immutability) artıları ve eksileri nedir?
    • Değişmezliği (immutability) kendi kodunuzda nasıl başarırsınız?
  • Senkron ve asenkron fonksiyonlar arasındaki farkları açıklayın.
  • Olay döngüsü (event loop) nedir?
    • Çağrı yığını (call stack) ve görev kuyruğu (task queue) arasındaki fark nedir?
  • foo, function foo() {} ve var foo = function() {} arasındaki farkları açıklayın.

Test Soruları:

  • Kodunuzu test etmenin avantajları ve dezavantajları nelerdir?
  • Kodunuzun işlevselliğini sınamak için hangi araçları kullanıyorsunuz?
  • Ünite testi (unit test) ile fonksiyonel/entgrasyon testi arasındaki fark nedir?
  • Kodu lint etme aracının (code style linting tool) kullanım amacı nedir?

Performans Soruları:

  • Kodunuzda performans problemleri bulmak için hangi araçları kullanıyorsunuz?
  • Websitenizin kaydırma (scrolling) performansını geliştirmenin yollarından bazıları nelerdir?
  • “Layout”, “painting” ve “compositing” terimleri arasındaki farkları açıklayınız.

Ağ Soruları:

  • Geleneksel olarak, neden site dosyalarını birden fazla domainden sunmak daha iyidir?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • “Long-Polling”, “Websockets” ve “Server-Sent Events” terimleri arasındaki farklar nelerdir?
  • Şu “request” ve "response header"ları açıklayın:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP metodları nelerdir? Bildiklerinizi listeleyin ve açıklayın.

Kodlama Soruları:

Soru:foo'nun değeri nedir?

var foo = 10 + '20';

Soru: Bu işi nasıl yaparsınız?

add(2, 5); // 7
add(2)(5); // 7

Soru: Bu ifadeden dönen sonuç nedir?

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo değeri nedir?

( window.foo || ( window.foo = "bar" ) );

Question: Aşağıdaki iki "alert"in çıktısı nedir?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Soru: foo.length değeri nedir?

var foo = [];
foo.push(1);
foo.push(2);

Soru: foo.x değeri nedir?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Soru: Bu kodun çıktısı nedir?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Eğlenceli Sorular:

  • Şimdiye kadar içinde bulunduğun en havalı proje neydi?
  • Kullandığınız geliştirici araçları arasında, sevdikleriniz nelerdir?
  • Önyüz (front-end) komünitesinde etkilendiklerin kimler?
  • Evcil hayvanlarla alakalı herhangi bir projen var mı? Varsa ne tür bir proje?
  • Internet Explorer’ın senin için favori özelliği nedir?
  • Kahveni nasıl seversin?

Katılımcılar:

Bu proje 2009 yılında bu katılımcılarla başladı: @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

Bu projenin bakımı şu anda aşağıdaki kişiler tarafından yapılmaktadır:

O zamandan beri bu inanılmaz derecede harika insanlar sayesinde etkin durumda.

İlham mı geldi? Katkı sağlamak için Katılım rehberimizi inceleyin!

\ No newline at end of file +Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları ★ Front-end Job Interview Questions

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Burada ön yüz yazılım -ya da front-end- iş başvurularınızda karşınıza çıkabilecek sorular yer almaktadır. Her sorunun iş başvurularınızda karşınıza çıkması garanti değil ancak ihtimali var. Ayrıca buradaki sorular sadece iş başvurusu yapanlar için değil, bu branşta kendini geliştirmeyi düşünenler için de kaynak niteliğindedir.

Not: Buradaki birçok sorunun ucunun açık olduğunu, bu sebeple vereceğiniz cevaba göre ilginç tartışmalara yol açabileceğini unutmayın.

İçindekiler

  1. Genel Sorular
  2. HTML Soruları
  3. CSS Soruları
  4. JS Soruları
  5. Test Soruları
  6. Performans Soruları
  7. Ağ Soruları
  8. Kodlama Soruları
  9. Eğlenceli Sorular

Dahil Olmak İçin

  1. Katkıda bulunanlar
  2. Nasıl katkıda bulunabilirim?
  3. Lisans

Genel Sorular:

  • Dün -ya da bu hafta- neler öğrendin?
  • Kod yazmanda seni cezbeden şey ne?
  • Deneyimlediğin son teknik meydan okuma / problem neydi ve onu nasıl çözdün?
  • Website yada web application hazırlarken UI, güvenlik, performans, SEO, sürdürülebilirlik veya teknoloji için nelere dikkat edersin?
  • Bize biraz geliştirme ortamından bahset. -İşletim Sistemi, Web Tarayıcı, Araçlar, Kod Editörü/IDE, vb.-
  • Haangi version kontrol sistemlerine aşinasın?
  • Web sayfasını oluştururken hangi adımları takip edersin?
  • Eğer 5 farklı stil dosyası varsa, bunları siteye entegre etmenin en iyi yolu nedir?
  • “Aşamalı geliştirme (progressive enhancement)” ile “kontrollü azalma (graceful degradation)” arasında ne fark vardır?
  • Web sitesindeki dosyaları nasıl optimize edersin?
  • Belli bir zamanda, tek bir alanadı üzerinden web tarayıcısı ne kadar kaynak indirebilir?
    • İstisnalar nelerdir?
  • Sayfa yüklenme hızını azaltmanın yollarından 3 tanesini söyleyebilir misin?
  • Yeni dahil olduğunuz bir projede, kodlama için Tab boşluk kullanılıyor ama siz Space ile boşluk bırakmayı tercih ediyorsunuz. Bu durumda ne yaparsınız?
  • Basit bir slayt/galeri sayfası oluşturun
  • Eğer bu yıl bir teknolojide en iyi olmak isteseydin, hangisini seçerdin?
  • Yazılım standartlarının öneminden bahseder misin?
  • FOUC nedir? FOUC’a nasıl engel olabilirsin?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • CSS animasyonlarının JavaScript animasyonlara göre artılarını ve eksiklerini açıklayabilir misin?
  • CORS ne anlama geliyor ve nasıl bir problemi çözüyor?

HTML Soruları:

  • doctypeın işlevi nedir?
  • Full standards mode, almost standards mode ve quirks mode arasındaki farklar nelerdir?
  • HTML ve XHTML arasındaki farkler nelerdir?
  • Sayfaların application/xhtml+xml olarak çalıştırılmasında herhangi bir sakınca var mıdır?
  • Sayfa içeriği çoklu dil olan siteyi nasıl sunabilirsin?
  • Çoklu dil olan sayfalarda tasarım veya kodlama olarak nelerden kaçılmalısın?
  • data- özelliği ne faydalar sağlar?
  • HTML5’i ‘open web platform’ olarak düşün. HTML5’in yapı taşları/temelleri nelerdir?
  • cookie, sessionStorage ve localStorage arasındaki farkları açıklayabilir misin?
  • <script>, <script async> ve <script defer> arasındaki farkları açıklayabilir misin?
  • CSS <link>lerin <head></head> arasında ve JS <script>lerinin </body> etiketinden önce olması niye genelde iyi bir fikirdir? Herhangi bir istisna biliyor musun?
  • Progressive rendering nedir?
  • Önceden farklı bir HTML templating dili kullandın mı?

CSS Soruları:

  • CSS’te class ve ID arasındaki farklar nelerdir?
  • “Resetting” ve “normalizing” CSS’ler arasındaki farklar nelerdir? Hangisini kullanmamız gerekir, neden?
  • Floats özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • z-index özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • BFC (Block Formatting Context)'nin ne olduğunu ve nasıl çalıştığından bahsedin.
  • Çeşitli ‘clearing’ teknikleri nelerdir ve hangi teknik hangi içerik için uygundur?
  • CSS Sprites özelliğini ve sayfanıza veya web uygulamanıza nasıl entegre edeceğinizi anlatın.
  • En favori imaj yerini değiştirme (image replacement) tekniği sizce hangisidir ve ne gibi durumlarda kullanırsınız?
  • Browser tabanlı (browser-specific) stil problemlerini nasıl çözersiniz?
  • Özellik kısıtlamalı (feature-constrained) tarayıcılar için websitenizi nasıl hazırlarsınız?
    • Hangi teknikleri/işlemleri kullanırsınız?
  • İçerikleri görsel olarak gizlemek hangi yollar bulunmakta? (İçerik sadece ekran okuyucular (screen readers) için gözükecek.)
  • Şimdiye kadar grid sistemi kullandınız mı? Eğer kullandıysanız, ne tercih edersiniz?
  • Şimdiye kadar ‘media queries’ veya mobil bazlı CSS/tasarım kullanıdınız mı?
  • SVG stillendirme hakkında deneyiminiz var mı?
  • Yazdırmak için (print) sitenizi ne şekilde en uygun hale getirdiniz?
  • Kaliteli CSS yazmak için ‘işte bu!’ dediğiniz şeyler nelerdir?
  • CSS 'preprocessor’ler kullanmanın artı-eksileri nelerdir? (SASS, Compass, Stylus, LESS)
    • Şimdiye kadar kullandıklarınızda en çok beğendiğiniz/beğenmediğiniz özellikler nelerdi?
  • Standart fontları kullanmayan web tasarımlarını nasıl sayfanıze entegre ediyorsunuz?
  • Tarayıcılar HTML elementlerin CSS seçicilerle (selector) eşleştiğini nasıl algılıyor, açıklar mısınız?
  • Sözde elementleri (pseudo-elements) ve ne için kullandıklarını açıklayın.
  • ‘box model’ konusunu bildiğiniz kadar açıklayın ve tasarımınızı farklı bir ‘box model’ ile göstermek istediğinizde CSS tarafında tarayıcıya ne belirtmeniz gerekir?
  • * { box-sizing: border-box; } ne yapar? Avantajları nelerdir?
  • ‘Display’ özelliğinin aldığı değerleri hatırladığınız kadar sayın.
  • ‘inline’ ile ‘inline-block’ arasındaki farklılıklar nelerdir?
  • ‘relative’, ‘fixed’, ‘absolute’ ve ‘static’ konumlandırılmış elementlerin farkı nedir?
  • CSS kelimesindeki C harfi "Cascading"in (basamaklı) kısaltmasıdır. Yönlendirilen stillerde öncelikler nasıl belirlenir (birkaç örnekle birlikte)? Bunu nasıl kendi avantajınıza göre kullanabilirsiniz?
  • Kullanmış olduğunuz, daha tanınmayan - lokal CSS çatılar (frameworks) var mı? Bunları nasıl değiştirmek / geliştirmek isterdiniz?
  • Yeni CSS Flebox veya Grid özellikleriyle deneyip bir şeyler yaptınız mı?
  • Responsive tasarımın adaptive tasarımdan farkı nedir?
  • Hiç retina grafiklerle çalıştınız mı? Eğer çalıştıysanız ne zaman ve hangi teknikleri kullandınız?
  • translate() yerine absolute positioning, veya tam tersini kullanmak için bir sebebiniz olabilir mi? Ve neden?

JS Soruları:

  • ‘Event delegation’ özelliğini anlatın.
  • JavaScript’te this nasıl çalışıyor?
  • ‘prototypal inheritance’ nasıl çalışır?
  • AMD ile CommonJS’in farkı nelerdir?
  • IIFE olarak neden bu fonksiyonun çalışmadığını açıklayın: function foo(){ }();.
    • IIFE olarak çalışması için ne yapmak gerekiyor?
  • null, undefined ve undeclared arasında ne farklar var?
    • Bu değerleri kontrol ederken neler yapmalıyız?
  • ‘Closure’ nedir, ve nasıl/neden kullanırız?
  • Anonim fonksiyonları kullanma durumları nelerdir?
  • Kodunuzu nasıl organize edersiniz? (module pattern, classical inheritance?)
  • host objects ve native objects arasında ne fark var?
  • function Person(){}, var person = Person(), ve var person = new Person() arasındaki farklar nelerdir?
  • .call ve .apply arasındaki fark nedir?
  • Function.prototype.bind özelliğinin ne olduğunu açıklayınız.
  • undefined ve null arasındaki fark nedir?
  • document.write() fonksiyonunu ne zaman kullanmalıyız?
  • Özellik tespiti (feature detection), özellik çıkarım (feature inference) ve UA string kullanımı arasındaki farklar nelerdir?
  • AJAX’ı olabildiğince detaylı şekilde açıklayın.
  • Ajax kullanmanın avantajları ve dezavantajları nelerdir?
  • JSONP nasıl çalışır? (ve neden tam olarak AJAX olmadığını da açıklayınız.)
  • JavaScript ‘template’ yapısını hiç kullandınız mı?
    • Eğer kullandıysanız, Hangi 'library’leri kullandınız? (Mustache.js, Handlebars, vb.)
  • “Hoisting” özelliğini açıklayın.
  • ‘Event bubbling’ özelliğini açıklayın.
  • “Attribute” ve “property” arasındaki farklar nelerdir?
  • JavaScript objeleri genişletmek neden iyi fikir değildir?
  • “document load event” ile “document DOMContentLoaded event” arasındaki farklar nelerdir?
  • == ve === arasında ne fark vardır?
  • JavaScript için ‘same-origin policy’ konusunu açıklayın.
  • Çalışacak şekilde kodu yazın:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Neden ‘Ternary expression’ olarak çağrılmaktadır? “Ternary” kelimesi neyi belirtmektedir?
  • "use strict"; nedir? Bunu kullanmanın artı/eksileri nelerdir?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Websitenin genel skopundan ayrılmak ve dokunmamak neden genelde iyi bir fikirdir?
  • Neden load gibi bir event kullanırsınız? Bunun dezavantajları var mı? Bildiğiniz alternatifleri var mı ve neden onları kullanıyorsunuz?
  • Tek sayfa uygulama (single page app) nedir ve nasıl arama motoru uyumlu (SEO-friendly) yapılır, açıklayın.
  • “Promises” ve/veya onun polyfilleriyle alakalı deneyimler nedir?
  • "Callback"ler yerine “Promises” kullanmanın artıları ve eksileri nelerdir?
  • JavaScript’in derlendiği bir dilde JavaScript yazmanın avantajları ve dezavantajlarından bazıları nelerdir?
  • JavaScript kodunuzda hata ayıklarken (debugging) kullandığınız teknikler ve araçlar nelerdir?
  • What language constructions do you use for iterating over object properties and array items?
  • Kesilebilir (mutable) ve değişmez (immutable) nesneler arasındaki farkları açıklayın.
    • JavaScript’te değişmez (immutable) objeye bir örnek veriniz.
    • Değişmezliğin (immutability) artıları ve eksileri nedir?
    • Değişmezliği (immutability) kendi kodunuzda nasıl başarırsınız?
  • Senkron ve asenkron fonksiyonlar arasındaki farkları açıklayın.
  • Olay döngüsü (event loop) nedir?
    • Çağrı yığını (call stack) ve görev kuyruğu (task queue) arasındaki fark nedir?
  • foo, function foo() {} ve var foo = function() {} arasındaki farkları açıklayın.

Test Soruları:

  • Kodunuzu test etmenin avantajları ve dezavantajları nelerdir?
  • Kodunuzun işlevselliğini sınamak için hangi araçları kullanıyorsunuz?
  • Ünite testi (unit test) ile fonksiyonel/entgrasyon testi arasındaki fark nedir?
  • Kodu lint etme aracının (code style linting tool) kullanım amacı nedir?

Performans Soruları:

  • Kodunuzda performans problemleri bulmak için hangi araçları kullanıyorsunuz?
  • Websitenizin kaydırma (scrolling) performansını geliştirmenin yollarından bazıları nelerdir?
  • “Layout”, “painting” ve “compositing” terimleri arasındaki farkları açıklayınız.

Ağ Soruları:

  • Geleneksel olarak, neden site dosyalarını birden fazla domainden sunmak daha iyidir?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • “Long-Polling”, “Websockets” ve “Server-Sent Events” terimleri arasındaki farklar nelerdir?
  • Şu “request” ve "response header"ları açıklayın:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP metodları nelerdir? Bildiklerinizi listeleyin ve açıklayın.

Kodlama Soruları:

Soru:foo'nun değeri nedir?

var foo = 10 + '20';

Soru: Bu işi nasıl yaparsınız?

add(2, 5); // 7
add(2)(5); // 7

Soru: Bu ifadeden dönen sonuç nedir?

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo değeri nedir?

( window.foo || ( window.foo = "bar" ) );

Question: Aşağıdaki iki "alert"in çıktısı nedir?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Soru: foo.length değeri nedir?

var foo = [];
foo.push(1);
foo.push(2);

Soru: foo.x değeri nedir?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Soru: Bu kodun çıktısı nedir?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Eğlenceli Sorular:

  • Şimdiye kadar içinde bulunduğun en havalı proje neydi?
  • Kullandığınız geliştirici araçları arasında, sevdikleriniz nelerdir?
  • Önyüz (front-end) komünitesinde etkilendiklerin kimler?
  • Evcil hayvanlarla alakalı herhangi bir projen var mı? Varsa ne tür bir proje?
  • Internet Explorer’ın senin için favori özelliği nedir?
  • Kahveni nasıl seversin?

Katılımcılar:

Bu proje 2009 yılında bu katılımcılarla başladı: @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

Bu projenin bakımı şu anda aşağıdaki kişiler tarafından yapılmaktadır:

O zamandan beri bu inanılmaz derecede harika insanlar sayesinde etkin durumda.

İlham mı geldi? Katkı sağlamak için Katılım rehberimizi inceleyin!

\ No newline at end of file diff --git a/_site/translations/ukrainian/index.html b/_site/translations/ukrainian/index.html index 4c60ba60c..0cde5a27a 100644 --- a/_site/translations/ukrainian/index.html +++ b/_site/translations/ukrainian/index.html @@ -1 +1 @@ -Питання кандидату на посаду front-end розробника ★ Front-end Job Interview Questions

Питання кандидату на посаду front-end розробника

Питання кандидату на посаду front-end розробника

Примітка: Цей репозиторій містить підбірку питань, які можуть бути використані на співбесідах на посаду front-end розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить).
Також, майте на увазі, що багато питань не потребують однозначної короткої відповіді, а лише допомагають завести бесіду на ту чи іншу тему (даючи змогу кандидату показати себе в усій красі).

Зміст

  1. Первинні автори
  2. Загальні запитання
  3. Запитання по HTML
  4. Запитання по JavaScript
  5. Приклади коду на JavaScript
  6. Запитання по jQuery
  7. Запитання по CSS
  8. “Світська бесіда”

Первинні автори:

Загальні запитання:

  • Чи користуєтесь Ви Твіттером?
    • Якщо так, то хто присутній в Вашій стрічці?
  • Кого зі світових front-end розробників Ви знаєте?
    • А українських чи російських front-end’щиків?
  • Чи є у Вас аккаунт на GitHub?
    • Якщо так, то за якими цікавими проектами Ви стежите?
  • Які блоги Ви читаєте?
  • Які системи контролю версій Вам доводилось використовувати?
  • Розкажіть про своє середовище розробки (ОС, редактор, браузер(и), інші інструменти)
  • Опишіть послідовність Ваших дій, коли ви створюєте нову Web-сторінку
  • Чи можете ви пояснити у чому різниця між progressive enhancement і graceful degradation?
    • Бонус, якщо кандидат також скаже про feature detection (визначення можливостей браузера)
  • Поясніть, що означає поняття “Семантична розмітка”
  • Який Ваш основний браузер для розробки і якими інструментами в ньому Ви користуєтесь?
  • Як можна оптимізувати завантаження зовнішніх ресурсів на сторінці?
    • Комбінація із потенційних рішень:
      • Конкатенація
      • Мініфікація
      • Використання CDN
      • Кешування
      • тощо
  • Яка перевага в підвантаженні із зовнішніх ресурсів з декількох доменів?
    • Скільки ресурсів одночасно браузер може завантажувати з одного домена?
  • Назвіть три засоби зменшення часу завантаження сторінки (сприйманого або реального)
  • Якщо Ви прийшли на проект, де для форматуровання використовується табуляція, а Ви звикли використовувати пробіли, як Ви вчинете?
    • Запропонуєте використовувати EditorConfig (http://editorconfig.org)
    • Залишитеся вірним своїм звичкам
    • Виконаєте команду :retab!
  • Чи користуєтеся Ви засобами для прискорення написання коду (сніппети, Emmet)?
  • Чи знайомі Ви зі шаблонізаторами (Smarty, HAML, т.д.)
  • Реалізуйте примітивне слайдшоу
    • Бонус, якщо Ви зробите це без використання JS
  • Які інструменти Ви використовуєте для тестування продуктивності коду?
  • Якщо б у Вас була можливість освоїти нову технологію в цьому році, що б це було?
  • Поясніть важливість стандартів і комітетів по стандартам
  • Що таке FOUC (Flash Of Unstyled Content)? Як його уникнути?

Запитання по HTML:

  • Для чого потрібен doctype і скільки різновидів Ви можете назвати?
  • В чому різниця між standards mode і quirks mode?
  • Які обмеження накладають стандарти XHTML?
    • Чи можуть виникнути проблеми при подачі сторінок із типом application/xhtml+xml?
  • Як слід оформляти сторінку, на якій контент може бути на різних мовах?
    • Що потрібно мати на увазі при розробці багатомовних сайтів?
  • Чи можна використовувати синтаксис XHTML в HTML5?
  • Як використовувати XML в HTML5?
  • Чим корисні data- атрибути?
  • Які box-моделі є в HTML4 і чи є відмінності в HTML5?
  • Якщо розглядати HTML5 як відкриту web-платформу: на чому вона базується, з яких компонентів складається?
  • Поясніть різницю між cookies, sessionStorage і localStorage.
  • Чи знайомі з підводними каменями верстки поштових шаблонів?
  • Яка різниця між GET іPOST?

Запитання по JavaScript:

  • Якими js-бібліотеками Ви користувалися?
  • Ви коли-небудь заглядали в вихідний код бібліотек / фреймворків, якими користувалися?
  • Чим JavaScript відрізняється від Java?
  • Що-таке хеш-таблиця?
  • Що таке невизначені (undefined) і неоголошені (undeclared) змінні?
  • Що таке замикання і як / для чого його використовують?
    • На Вашу думку, як слід їх використовувати?
  • Де зазвичай використовуються анонімні функції?
  • Поясніть “JavaScript module pattern” і де він (патерн) застосовується
    • Бонус, якщо згадана чистота глобального простору імен
    • Що, якщо Ваш модуль не укладено в простір імен?
  • Як Ви організуєте свій код? (module pattern, наслідування)
  • У чому різниця між host-об’єктами і нативними об’єктами?
  • У чому різниця між останніми двома рядками:
function Person(){}
var person = Person()
var person = new Person()
  • У чому різниця між .call і.apply?
  • Що робить і для чого потрібен метод Function.prototype.bind?
  • Коли Ви оптимізуєте свій код?
  • Поясніть, як працює наслідування в JavaScript?
  • Де досі використовується document.write ()?
    • У більшості згенерованих банерів, хоча так робити не рекомендується
  • У чому різниця між feature detection (визначення можливостей браузера), feature inference (припущення можливостей) і аналізом рядку user-agent?
  • Розкажіть про AJAX якомога детальніше
  • Поясніть, як працює JSONP (і чому це не справжній AJAX)
  • Чи використовували Ви коли-небудь шаблонізації на JavaScript?
    • Якщо так, які бібліотеки використовували? (Mustache.js, Handlebars etc.)
  • Поясніть, що таке “hoisting”
  • Поясніть event bubbling
  • У чому різниця між “атрибутом” (attribute) і “властивістю” (property)?
  • Чому не слід розширювати нативні JavaScript об’єкти?
  • Коли слід розширювати нативні JavaScript об’єкти?
  • У чому різниця між подіями document load і document ready?
  • У чому різниця між == і ===?
  • Як отримати параметри з URL’а поточного вікна?
  • Поясніть same-origin policy в контексті JavaScript
  • Розкажіть про event delegation
  • Які Ви знаєте патерни організації наслідування в JavaScript?
  • Зробіть так, щоб цей код працював:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Опишіть принцип мемоізаціі (уникнення повторних обчислень) в JavaScript
  • Чому тернарний оператор так називається?
  • Що таке тернарність функції?
  • Що робить рядок " use strict ";? Які переваги та недоліки від її використання?

Приклади на JavaScript

~~3.14

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: 3

"i'm a lasagna hog".split("").reverse().join("");

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Питання: Чому дорівнює window.foo?
Відповідь: “bar” (тільки якщо вираз window.foo був хибним, інакше змінна збереже своє початкове значення),

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Питання: Що покажуть ці два alert?
Відповідь: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Питання: Чому дорівнює foo.length?
Відповідь: 2

var foo = {};
foo.bar = 'hello';

Питання: Чому дорівнює foo.length?
Відповідь: undefined

Запитання по jQuery:

  • Розкажіть про “chaining”.
  • Розкажіть про “deferreds”.
  • Які Ви знаєте прийоми оптимізації коду, що використовує jQuery?
  • Що робить .end()?
  • Як додати простір імен до обробника подій? Для чого це потрібно?
  • Назвіть 4 різних види аргументів, які приймає функція jQuery()?
    • Селектор (рядок), HTML (рядок), Callback (функція), HTMLElement, об’єкт, масив, масив елементів, об’єкт jQuery тощо.
  • Що таке черга ефектів (fx queue)?
  • В чому різниця між .get(), [], і .eq()?
  • В чому різниця між .bind(), .live(), і .delegate()?
  • В чому різниця між $ і $.fn? Що таке $.fn взагалі?
  • Оптимізуйте даний селектор:
$(".foo div#bar:eq(0)")

Запитання по CSS:

  • Що таке “reset” CSS і для чого він потрібен?
  • Поясніть, що таке плаваючі елементи (floats) і як вони працюють?
  • Які ви знаєте методи заборони обтікання (clearing) і де які застосовуються?
  • Що таке CSS спрайт? Як вони реалізуються на сторінці або сайті?
  • Які Ваші улюблені методи підміни тексту картинкою (image replacement) і коли Ви їх використовуєте?
  • CSS property hacks, умовне підключення .css файлів…
  • Як Ви забезпечуєте відображення сторінок в старих / обмежених браузерах?
    • Які прийоми / процеси Ви при цьому використовуєте?
  • Якими способами можна візуально приховати елемент (залишивши його доступним для екранного диктора, екранного зчитувача)?
  • Ви коли-небудь використовували сіткову верстку (grid system, grid design)? Якщо так, яка Ваша улюблена?
  • Чи доводилося Вам використовувати або реалізовувати media queries або верстку під мобільні пристрої?
  • Чи доводилося Вам стилізувати SVG?
  • Як оптимізувати сторінки для друку?
  • Які є підводні камені в оптимізації продуктивності CSS?
  • Ви використовуєте CSS препроцесори? (SASS, Compass, Bourbon, Stylus, LESS)
    • Якщо так, розкажіть, що Вам в них подобається і не подобається?
  • Як Ви зверстаєте макет, який використовує нестандартні шрифти?
    • Webfonts (сервіси на кшталт Google Webfonts, Typekit, Fontsquirrel etc.)
  • Розкажіть, як браузер визначає, на які елементи накладати CSS стилі?
  • Чи доводилося стикатися з Retina-дисплеями?
  • Чи чули про систему БЕМ (Блок-Елемент-Модифікатор)?
    • Якщо так, то в чому її суть? Розкажіть про систему нотифікації селектор.

“Світська бесіда”:

  • Найкрутіше, що Ви коли небудь робили і чим пишаєтесь?
  • Чи знаєте Ви секретний жест HTML5-банди?
  • (неперекладаємий гумор) Are you now, or have you ever been, on a boat.
  • Що Вам найбільше подобаються у Ваших інструментах розробника?
  • У Вас є якісь особисті проекти?
  • Візьміть аркуш паперу і напишіть в стовпчик букви A B C D E. Тепер відсортуйте стовпчик в алфавітному порядку за спаданням, не написавши жодного рядка коду.
    • Засічіть, через скільки часу кандидат переверне аркуш
  • Пірат або ніндзя?
    • Бонус за комбінацію. Аргументовану. +2 за зомбі-пірат-ніндзя-мавпу
  • Чим би Ви займалися, якщо не Web-розробкою?
  • Яка Ваша улюблена “фішка” Internet Explorer?
  • Закінчіть речення: Brendan Eich та Doug Crockford є __________ мови JavaScript.
  • jQuery: хороша бібліотека або велика бібліотека? Тема для дискусії…
\ No newline at end of file +Питання кандидату на посаду front-end розробника ★ Front-end Job Interview Questions

Питання кандидату на посаду front-end розробника

Питання кандидату на посаду front-end розробника

Примітка: Цей репозиторій містить підбірку питань, які можуть бути використані на співбесідах на посаду front-end розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить).
Також, майте на увазі, що багато питань не потребують однозначної короткої відповіді, а лише допомагають завести бесіду на ту чи іншу тему (даючи змогу кандидату показати себе в усій красі).

Зміст

  1. Первинні автори
  2. Загальні запитання
  3. Запитання по HTML
  4. Запитання по JavaScript
  5. Приклади коду на JavaScript
  6. Запитання по jQuery
  7. Запитання по CSS
  8. “Світська бесіда”

Первинні автори:

Загальні запитання:

  • Чи користуєтесь Ви Твіттером?
    • Якщо так, то хто присутній в Вашій стрічці?
  • Кого зі світових front-end розробників Ви знаєте?
    • А українських чи російських front-end’щиків?
  • Чи є у Вас аккаунт на GitHub?
    • Якщо так, то за якими цікавими проектами Ви стежите?
  • Які блоги Ви читаєте?
  • Які системи контролю версій Вам доводилось використовувати?
  • Розкажіть про своє середовище розробки (ОС, редактор, браузер(и), інші інструменти)
  • Опишіть послідовність Ваших дій, коли ви створюєте нову Web-сторінку
  • Чи можете ви пояснити у чому різниця між progressive enhancement і graceful degradation?
    • Бонус, якщо кандидат також скаже про feature detection (визначення можливостей браузера)
  • Поясніть, що означає поняття “Семантична розмітка”
  • Який Ваш основний браузер для розробки і якими інструментами в ньому Ви користуєтесь?
  • Як можна оптимізувати завантаження зовнішніх ресурсів на сторінці?
    • Комбінація із потенційних рішень:
      • Конкатенація
      • Мініфікація
      • Використання CDN
      • Кешування
      • тощо
  • Яка перевага в підвантаженні із зовнішніх ресурсів з декількох доменів?
    • Скільки ресурсів одночасно браузер може завантажувати з одного домена?
  • Назвіть три засоби зменшення часу завантаження сторінки (сприйманого або реального)
  • Якщо Ви прийшли на проект, де для форматуровання використовується табуляція, а Ви звикли використовувати пробіли, як Ви вчинете?
    • Запропонуєте використовувати EditorConfig (http://editorconfig.org)
    • Залишитеся вірним своїм звичкам
    • Виконаєте команду :retab!
  • Чи користуєтеся Ви засобами для прискорення написання коду (сніппети, Emmet)?
  • Чи знайомі Ви зі шаблонізаторами (Smarty, HAML, т.д.)
  • Реалізуйте примітивне слайдшоу
    • Бонус, якщо Ви зробите це без використання JS
  • Які інструменти Ви використовуєте для тестування продуктивності коду?
  • Якщо б у Вас була можливість освоїти нову технологію в цьому році, що б це було?
  • Поясніть важливість стандартів і комітетів по стандартам
  • Що таке FOUC (Flash Of Unstyled Content)? Як його уникнути?

Запитання по HTML:

  • Для чого потрібен doctype і скільки різновидів Ви можете назвати?
  • В чому різниця між standards mode і quirks mode?
  • Які обмеження накладають стандарти XHTML?
    • Чи можуть виникнути проблеми при подачі сторінок із типом application/xhtml+xml?
  • Як слід оформляти сторінку, на якій контент може бути на різних мовах?
    • Що потрібно мати на увазі при розробці багатомовних сайтів?
  • Чи можна використовувати синтаксис XHTML в HTML5?
  • Як використовувати XML в HTML5?
  • Чим корисні data- атрибути?
  • Які box-моделі є в HTML4 і чи є відмінності в HTML5?
  • Якщо розглядати HTML5 як відкриту web-платформу: на чому вона базується, з яких компонентів складається?
  • Поясніть різницю між cookies, sessionStorage і localStorage.
  • Чи знайомі з підводними каменями верстки поштових шаблонів?
  • Яка різниця між GET іPOST?

Запитання по JavaScript:

  • Якими js-бібліотеками Ви користувалися?
  • Ви коли-небудь заглядали в вихідний код бібліотек / фреймворків, якими користувалися?
  • Чим JavaScript відрізняється від Java?
  • Що-таке хеш-таблиця?
  • Що таке невизначені (undefined) і неоголошені (undeclared) змінні?
  • Що таке замикання і як / для чого його використовують?
    • На Вашу думку, як слід їх використовувати?
  • Де зазвичай використовуються анонімні функції?
  • Поясніть “JavaScript module pattern” і де він (патерн) застосовується
    • Бонус, якщо згадана чистота глобального простору імен
    • Що, якщо Ваш модуль не укладено в простір імен?
  • Як Ви організуєте свій код? (module pattern, наслідування)
  • У чому різниця між host-об’єктами і нативними об’єктами?
  • У чому різниця між останніми двома рядками:
function Person(){}
var person = Person()
var person = new Person()
  • У чому різниця між .call і.apply?
  • Що робить і для чого потрібен метод Function.prototype.bind?
  • Коли Ви оптимізуєте свій код?
  • Поясніть, як працює наслідування в JavaScript?
  • Де досі використовується document.write ()?
    • У більшості згенерованих банерів, хоча так робити не рекомендується
  • У чому різниця між feature detection (визначення можливостей браузера), feature inference (припущення можливостей) і аналізом рядку user-agent?
  • Розкажіть про AJAX якомога детальніше
  • Поясніть, як працює JSONP (і чому це не справжній AJAX)
  • Чи використовували Ви коли-небудь шаблонізації на JavaScript?
    • Якщо так, які бібліотеки використовували? (Mustache.js, Handlebars etc.)
  • Поясніть, що таке “hoisting”
  • Поясніть event bubbling
  • У чому різниця між “атрибутом” (attribute) і “властивістю” (property)?
  • Чому не слід розширювати нативні JavaScript об’єкти?
  • Коли слід розширювати нативні JavaScript об’єкти?
  • У чому різниця між подіями document load і document ready?
  • У чому різниця між == і ===?
  • Як отримати параметри з URL’а поточного вікна?
  • Поясніть same-origin policy в контексті JavaScript
  • Розкажіть про event delegation
  • Які Ви знаєте патерни організації наслідування в JavaScript?
  • Зробіть так, щоб цей код працював:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Опишіть принцип мемоізаціі (уникнення повторних обчислень) в JavaScript
  • Чому тернарний оператор так називається?
  • Що таке тернарність функції?
  • Що робить рядок " use strict ";? Які переваги та недоліки від її використання?

Приклади на JavaScript

~~3.14

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: 3

"i'm a lasagna hog".split("").reverse().join("");

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Питання: Чому дорівнює window.foo?
Відповідь: “bar” (тільки якщо вираз window.foo був хибним, інакше змінна збереже своє початкове значення),

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Питання: Що покажуть ці два alert?
Відповідь: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Питання: Чому дорівнює foo.length?
Відповідь: 2

var foo = {};
foo.bar = 'hello';

Питання: Чому дорівнює foo.length?
Відповідь: undefined

Запитання по jQuery:

  • Розкажіть про “chaining”.
  • Розкажіть про “deferreds”.
  • Які Ви знаєте прийоми оптимізації коду, що використовує jQuery?
  • Що робить .end()?
  • Як додати простір імен до обробника подій? Для чого це потрібно?
  • Назвіть 4 різних види аргументів, які приймає функція jQuery()?
    • Селектор (рядок), HTML (рядок), Callback (функція), HTMLElement, об’єкт, масив, масив елементів, об’єкт jQuery тощо.
  • Що таке черга ефектів (fx queue)?
  • В чому різниця між .get(), [], і .eq()?
  • В чому різниця між .bind(), .live(), і .delegate()?
  • В чому різниця між $ і $.fn? Що таке $.fn взагалі?
  • Оптимізуйте даний селектор:
$(".foo div#bar:eq(0)")

Запитання по CSS:

  • Що таке “reset” CSS і для чого він потрібен?
  • Поясніть, що таке плаваючі елементи (floats) і як вони працюють?
  • Які ви знаєте методи заборони обтікання (clearing) і де які застосовуються?
  • Що таке CSS спрайт? Як вони реалізуються на сторінці або сайті?
  • Які Ваші улюблені методи підміни тексту картинкою (image replacement) і коли Ви їх використовуєте?
  • CSS property hacks, умовне підключення .css файлів…
  • Як Ви забезпечуєте відображення сторінок в старих / обмежених браузерах?
    • Які прийоми / процеси Ви при цьому використовуєте?
  • Якими способами можна візуально приховати елемент (залишивши його доступним для екранного диктора, екранного зчитувача)?
  • Ви коли-небудь використовували сіткову верстку (grid system, grid design)? Якщо так, яка Ваша улюблена?
  • Чи доводилося Вам використовувати або реалізовувати media queries або верстку під мобільні пристрої?
  • Чи доводилося Вам стилізувати SVG?
  • Як оптимізувати сторінки для друку?
  • Які є підводні камені в оптимізації продуктивності CSS?
  • Ви використовуєте CSS препроцесори? (SASS, Compass, Bourbon, Stylus, LESS)
    • Якщо так, розкажіть, що Вам в них подобається і не подобається?
  • Як Ви зверстаєте макет, який використовує нестандартні шрифти?
    • Webfonts (сервіси на кшталт Google Webfonts, Typekit, Fontsquirrel etc.)
  • Розкажіть, як браузер визначає, на які елементи накладати CSS стилі?
  • Чи доводилося стикатися з Retina-дисплеями?
  • Чи чули про систему БЕМ (Блок-Елемент-Модифікатор)?
    • Якщо так, то в чому її суть? Розкажіть про систему нотифікації селектор.

“Світська бесіда”:

  • Найкрутіше, що Ви коли небудь робили і чим пишаєтесь?
  • Чи знаєте Ви секретний жест HTML5-банди?
  • (неперекладаємий гумор) Are you now, or have you ever been, on a boat.
  • Що Вам найбільше подобаються у Ваших інструментах розробника?
  • У Вас є якісь особисті проекти?
  • Візьміть аркуш паперу і напишіть в стовпчик букви A B C D E. Тепер відсортуйте стовпчик в алфавітному порядку за спаданням, не написавши жодного рядка коду.
    • Засічіть, через скільки часу кандидат переверне аркуш
  • Пірат або ніндзя?
    • Бонус за комбінацію. Аргументовану. +2 за зомбі-пірат-ніндзя-мавпу
  • Чим би Ви займалися, якщо не Web-розробкою?
  • Яка Ваша улюблена “фішка” Internet Explorer?
  • Закінчіть речення: Brendan Eich та Doug Crockford є __________ мови JavaScript.
  • jQuery: хороша бібліотека або велика бібліотека? Тема для дискусії…
\ No newline at end of file diff --git a/_site/translations/vietnamese/index.html b/_site/translations/vietnamese/index.html index d88a68e7e..9ef13e2aa 100644 --- a/_site/translations/vietnamese/index.html +++ b/_site/translations/vietnamese/index.html @@ -1 +1 @@ -Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end ★ Front-end Job Interview Questions

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Tập tin này chứa một số câu hỏi phỏng vấn lập trình viên front-end, có thể được sử dụng khi kiểm tra các ứng viên tiềm năng. Không khuyến khích sử dụng tất cả các câu hỏi ở đây trên cùng một ứng cử viên (sẽ mất hàng giờ đồng hồ). Chọn một vài mục từ danh sách này sẽ giúp bạn kiểm tra những kỹ năng mà bạn yêu cầu ở ứng viên đó.

Lưu ý: Hãy nhớ rằng nhiều câu trong đây là những câu hỏi kết thúc mở và có thể dẫn đến vài cuộc thảo luận thú vị cung cấp cho bạn nhiều thông tin về khả năng của một người hơn là một câu trả lời thẳng thắn.

Mục lục

  1. Các câu hỏi chung
  2. Các câu hỏi về HTML
  3. Các câu hỏi về CSS
  4. Các câu hỏi về JavaScript
  5. Các câu hỏi về Kiểm thử (Testing)
  6. Các câu hỏi về Hiệu suất (Performance)
  7. Các câu hỏi về Mạng (Network)
  8. Các câu hỏi về việc viết code
  9. Các câu hỏi vui

Tham gia đóng góp

  1. Những người đóng góp
  2. Làm sao để đóng góp
  3. Giấy phép

Các câu hỏi chung:

  • Bạn đã học được gì trong ngày hôm qua/tuần này??
  • Điều gì về lập trình làm bạn hứng thú?
  • Một thử thách về mặt kĩ thuật bạn đã trải qua gần đây là gì và bạn đã giải quyết nó như thế nào?
  • Bạn cân nhắc những Giao diện người dùng (UI), Vấn đề bảo mật (Security), Hiệu suất (Performance), Khả năng tối ưu cho các bộ máy tìm kiếm (SEO), Khả năng bảo trì (Maintainability) hay Công nghệ (Technology) nào khi xây dựng một ứng dụng/trang web?
  • Hãy nói về môi trường lập trình mà bạn muốn.
  • Những hệ thống quản lý phiên bản (version control systems) nào mà bạn đã sử dụng và cảm thấy quen thuộc?
  • Bạn có thể trình bày mạch làm việc (workflow) của bạn khi bạn tạo một trang web không?
  • Nếu bạn có 5 stylesheet khác nhau, bạn sẽ tích hợp chúng vào trang như thế nào là tốt nhất?
  • Bạn có thể trình bày sự khác nhau giữa progressive enhancement và graceful degradation không?
  • Bạn sẽ tối ưu các tài nguyên (assets/resources) của một website như thế nào?
  • Một trình duyệt sẽ tải bao nhiêu tài nguyên cùng một lúc từ một tên miền (domain) cho trước?
    • Các exception là gì?
  • Nêu 3 cách để giảm tải trang web (perceived hoặc thời gian tải thực tế (actual load time)).
  • Nếu bạn tham gia vào một dự án và họ xài nút Tab trong khi bạn sử dụng nút dấu cách (spaces), bạn sẽ làm gì?
  • Trình bày cách bạn sẽ làm một trang slideshow đơn giản.
  • Nếu bạn có thể chuyên sâu về một công nghệ (technology) trong năm nay thì nó sẽ là công nghệ gì?
  • Giải thích tầm quan trọng của các standards và standards bodies.
  • Flash of Unstyled Content là gì? Bạn tránh FOUC như thế nào?
  • Giải thích ARIA và screenreaders là gì, và làm thế nào để làm cho một trang web có thể truy cập được.
  • Giải thích một vài ưu và khuyết điểm của CSS animations so với JavaScript animations.
  • CORS là từ viết tắt của cái gì và nó đề cập đến vấn đề nào?

Các câu hỏi về HTML:

  • Một doctype làm cái gì?
  • Sự khác nhau giữa chế độ full standards, chế độ almost standards và chế độ quirks?
  • Sự khác nhau giữa HTML và XHTML là gì?
  • Có vấn đề nào không khi cung cấp (serving) các trang theo kiểu application/xhtml+xml?
  • Bạn cung cấp một trang web có nội dung được viết bằng nhiều ngôn ngữ như thế nào?
  • Bạn phải cảnh giác những điều gì khi thiết kế hoặc phát triển các trang web đa ngôn ngữ?
  • Những thuộc tính data- có lợi cho cái gì?
  • Hãy xem HTML5 như một nền tảng web mở (open web platform). Những building blocks của HTML5 là gì?
  • Trình bày sự khác nhau giữa một cookie, sessionStoragelocalStorage.
  • Trình bày sự khác nhau giữa <script>, <script async><script defer>.
  • Tại sao việc đặt các thẻ (tag) <link> CSS giữa 2 thẻ <head></head> và các thẻ <script> JS ngay trước thẻ </body> về cơ bản là một ý tưởng tốt? Bạn có biết những trường hợp ngoại lệ nào khác không?
  • Progressive rendering là gì?
  • Tại sao bạn sẽ sử dụng thuộc tính srcset trong 1 tag img? Giải thích quá trình mà trình duyệt sẽ sử dụng khi phân tích nội dung của thuộc tính này.
  • Trước đây bạn đã bao giờ sử dụng những ngôn ngữ template HTML nào khác chưa?

Các câu hỏi về CSS:

  • Điểm khác biệt giữa class và ID trong CSS là gì?
  • Sự khác nhau giữa “resetting” và “normalizing” CSS là gì? Bạn sẽ chọn cái nào, và tại sao?
  • Trình bày về Floats và cách chúng hoạt động.
  • Trình bày về z-index và làm thế nào để nội dung stack với nhau được định hình.
  • Trình bày về BFC (Block Formatting Context) và cách nó hoạt động.
  • Các kĩ thuật clearing khác nhau là những kĩ thuật nào và phù hợp với hoàn cảnh nào?
  • Giải thích về CSS sprites, và làm thế nào để bạn thực hiện chúng trên một trang web.
  • Những kĩ thuật thay thế hình ảnh nào mà bạn thích và bạn sử dụng từng kĩ thuật đó khi nào?
  • Bạn sẽ tiếp cận như thế nào để khắc phục các vấn đề về trình bày trên một trình duyệt cụ thể?
  • Bạn sẽ cung cấp các trang của bạn trên các trình duyệt hạn chế tính năng như thế nào?
    • Bạn sẽ sử dụng kĩ thuật hay quy trình nào?
  • Những cách khác nhau nào để ẩn giấu 1 element một cách trực quan (và làm cho chúng chỉ hiển thị với người đọc qua màn hình)?
  • Bạn đã bao giờ sử dụng một hệ thống grid chưa, và nếu có, bạn thích cái nào hơn?
  • Bạn đã bao giờ sử dụng các media queries hay các layout/CSS cụ thể cho mobile chưa?
  • Bạn có quen với việc trình bày/tạo dáng cho SVG?
  • Bạn tối ưu các trang web cho việc in ấn như thế nào?
  • Một vài điểm kiểu “A đây rồi” trong việc viết CSS hiệu quả?
  • Các ưu/khuyết điểm của việc sử dụng các CSS preprocessors?
    • Trình bày những điểm bạn thích và không thích về các CSS preprocessors mà bạn đã sử dụng.
  • Bạn sẽ thực hiện thách thức trong các thiết kế web có sử dụng các font không phải tiêu chuẩn (non-standard fonts) như thế nào?
  • Giải thích cách mà một trình duyệt quyết định những element nào tương ứng với một CSS selector.
  • Trình bày về các pseudo-elements và thảo luận xem chúng dùng để làm gì.
  • Giải thích những hiểu biết của bạn về box model và làm thế nào bạn báo với trình duyệt trong CSS để render layout của bạn trong các box models khác nhau.
  • Đoạn code này * { box-sizing: border-box; } sẽ làm điều gì? Những ưu điểm của nó là gì?
  • Liệt kê các giá trị của thuộc tính display mà bạn có thể nhớ.
  • Sự khác nhau giữa inline và inline-block là gì?
  • Sự khác nhau giữa một thành phần có thuộc tính position với giá trị: relative, fixed, absolute, hoặc có vị trí tĩnh (statically positioned element)?
  • Chữ cái ‘C’ trong CSS là viết tắt của từ Cascading. Mức độ ưu tiên được xác định trong việc gán style như thế nào (cho vài ví dụ)? Bạn có thể tận dụng hệ thống này như thế nào?
  • Những framework CSS nào bạn đã sử dụng trên máy của bạn, hoặc trong sản phẩm nào đó? Bạn sẽ thay đổi/cải tiến chúng như thế nào?
  • Bạn có bao giờ sử dụng CSS Flexbox hay Grid chưa?
  • Responsive design khác adaptive design như thế nào?
  • Bạn có bao giờ làm việc với các thiết bị màn hình retina chưa? Nếu có, bạn đã sử dụng khi nào và dùng những kĩ thuật nào?
  • Có những lý do nào bạn muốn sử dụng translate() hơn thay vì absolute positioning không, hoặc ngược lại? Và tại sao?

Các câu hỏi về JavaScript:

  • Giải thích về event delegation
  • Giải thích cách mà this hoạt động trong JavaScript
  • Giải thích cách mà prototypal inheritance hoạt động
  • Bạn nghĩ gì về AMD so với CommonJS?
  • Giải thích tại sao đoạn code sau không hoạt động như một IIFE: function foo(){ }();.
    • Cần thay đổi gì để làm nó trở thành một IIFE?
  • Sự khác nhau giữa một biến: chứa null, chứa undefined hoặc chưa được khai báo (undeclared) là gì?
    • Bạn sẽ kiểm tra các trạng thái này như thế nào?
  • Một closure là gì, và bạn sẽ sử dụng nó như thế nào / tại sao bạn sử dụng nó?
  • Một trường hợp sử dụng điển hình cho các anonymous functions?
  • Bạn tổ chức code của bạn như thế nào? (module pattern, classical inheritance?)
  • Sự khác nhau giữa host objects và native objects là gì?
  • Nêu sự khác nhau giữa: function Person(){}, var person = Person(), và var person = new Person()?
  • Sự khác nhau giữa .call.apply là gì?
  • Giải thích về Function.prototype.bind.
  • Bạn sẽ sử dụng document.write() khi nào?
  • Sự khác nhau giữa feature detection, feature inference, và việc sử dụng UA string là gì?
  • Giải thích về Ajax bằng nhiều thông tin chi tiết nhất có thể.
  • Những ưu và khuyết điểm của việc sử dụng Ajax là gì?
  • Giải thích cách JSONP làm việc (và nó thật sự không phải là Ajax như thế nào).
  • Bạn đã bao giờ sử dụng JavaScript templating chưa?
    • Nếu có, bạn đã sử dụng những thư viện nào?
  • Giải thích về “hoisting”.
  • Trình bày về event bubbling.
  • Trình bày sự khác nhau giữ một “attribute” và một “property”?
  • Tại sao việc mở rộng các object được xây dựng sẵn trong JavaScript không phải là một ý tưởng tốt?
  • Sự khác nhau giữa event load và event DOMContentLoaded của document?
  • Sự khác nhau giữa == and === là gì?
  • Giải thích về same-origin policy và sự liên quan của nó với JavaScript.
  • Làm cho hàm này hoạt động:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Tại sao lại gọi là Ternary expression, từ “Ternary” có nghĩa gì?
  • "use strict"; là gì? Những điểm lợi và hại khi sử dụng nó?
  • Tạo một vòng lặp for cho output từ 1 đến 100, trong đó output “fizz” thay cho số chia hết cho 3, “buzz” thay cho số chia hết cho 5“fizzbuzz” thay cho số chia hết cho cả 35.
  • Tại sao, nói chung, việc không làm ảnh hưởng đến global scope của một website là một điều tốt?
  • Tại sao bạn sẽ không sử dụng những thứ như event load? Event này có điểm bất lợi nào không? Bạn có biết cách thay thế nào khác, và tại sao bạn sẽ sử dụng chúng?
  • Giải thích một ứng dụng đơn trang (single page app) là gì và làm sao để làm chúng thân thiện với việc SEO.
  • Mức độ trải nghiệm của bạn là như thế nào đối với các Promise và/hoặc polyfills của chúng?
  • Những điểm lợi và hại của việc sử dụng các Promise thay cho các callback?
  • Nêu một vài ưu và khuyết điểm của việc viết code JavaScript trong một ngôn ngữ mà sẽ dùng để biên dịch thành JavaScript.
  • Bạn sử dụng những công cụ và kỹ thuật nào để gỡ lỗi (debug) cho JavaScript?
  • Bạn sử dụng những cấu trúc nào để lặp xuyên suốt qua tất cả các thuộc tính (property) trong object và các item trong array?
  • Giải thích sự khác nhau giữa các mutable object và immutable object.
    • Nêu ví dụ cho một immutable object trong JavaScript?
    • Những ưu/khuyết điểm của tính bất biến (immutability)?
    • Làm thế nào để đạt được tính bất biến trong code của bạn?
  • Giải thích sự khác nhau giữa các hàm đồng bộ (synchronous function) và hàm không đồng bộ (asynchronous function).
  • Event loop là gì?
    • Sự khác biệt giữa call stack và task queue là gì?
  • Giải thích sự khác nhau trong các cách sử dụng foo sau đây: giữa function foo() {}var foo = function() {}
  • Sự khác biệt giữa các biến được tạo bằng việc sử dụng let, var hoặc const là gì?

Các câu hỏi về Kiểm thử (Testing):

  • Vài điểm lợi và bất lợi trong việc kiểm thử code của bạn là gì?
  • Bạn sẽ sử dụng những công cụ nào để kiểm thử chức năng của code của bạn?
  • Sự khác nhau giữa một unit test và một functional/integration test là gì?
  • Mục đích của một công cụ kiểm tra code style (code style linting tool) là gì?

Các câu hỏi về Hiệu suất (Performance):

  • Bạn sử dụng những công cụ nào để tìm ra một lỗi hiệu suất trong code của bạn?
  • Chỉ ra vài cách mà bạn có thể cải thiện hiệu suất cuộn trang (scrolling performance) trên website của bạn?
  • Giải thích sự khác nhau giữa layout, painting và compositing.

Các câu hỏi về Mạng (Network):

  • Theo truyền thống, tại sao việc cung cấp các tài nguyên của trang web từ nhiều tên miền khác nhau là việc có lợi hơn?
  • Hãy trình bày một cách toàn diện nhất quá trình từ lúc bạn nhập vào URL của một trang web đến khi nó hoàn thành việc tải và hiện thị trên màn hình của bạn.
  • Những điểm khác nhau giữa Long-Polling, Websockets và Server-Sent Events?
  • Giải thích các request header và response header sau:
    • Sự khác nhau giữa Expires, Date, Age và If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Các HTTP methods là gì? Liệt kê tất cả HTTP methods mà bạn biết, và giải thích chúng.

Các câu hỏi về việc viết code:

Câu hỏi: Giá trị của foo là gì?

var foo = 10 + '20';

Câu hỏi: Đoạn code dưới đây sẽ xuất ra cái gì?

console.log(0.1 + 0.2 == 0.3);

Câu hỏi: Bạn sẽ làm thế nào để hàm này hoạt động?

add(2, 5); // 7
add(2)(5); // 7

Câu hỏi: Giá trị nào được trả về từ dòng lệnh sau?

"i'm a lasagna hog".split("").reverse().join("");

Câu hỏi: Giá trị của window.foo là gì?

( window.foo || ( window.foo = "bar" ) );

Câu hỏi: Kết quả của 2 lệnh alert dưới đây là gì?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Câu hỏi: Giá trị của foo.length là gì?

var foo = [];
foo.push(1);
foo.push(2);

Câu hỏi: Giá trị của foo.x là gì?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Câu hỏi: Những dòng code sau in ra những gì?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Các câu hỏi vui:

  • Gần đây bạn đã làm việc với những dự án thú vị nào?
  • Vài điều bạn thích về các công cụ dành cho nhà phát triển mà bạn sử dụng là gì?
  • Ai là người truyền cảm hứng cho bạn trong cộng đồng front-end?
  • Bạn có dự án ngắn hạn nào không? Kiểu dự án gì?
  • Những tính năng của Internet Explorer mà bạn thích là gì?
  • Bạn có thích dùng cà phê không?

Những người đóng góp:

Tài liệu này được khởi đầu vào năm 2009 như là một sự cộng tác của @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym.

Đã nhận được sự đóng góp từ hơn 100 developers.

\ No newline at end of file +Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end ★ Front-end Job Interview Questions

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Tập tin này chứa một số câu hỏi phỏng vấn lập trình viên front-end, có thể được sử dụng khi kiểm tra các ứng viên tiềm năng. Không khuyến khích sử dụng tất cả các câu hỏi ở đây trên cùng một ứng cử viên (sẽ mất hàng giờ đồng hồ). Chọn một vài mục từ danh sách này sẽ giúp bạn kiểm tra những kỹ năng mà bạn yêu cầu ở ứng viên đó.

Lưu ý: Hãy nhớ rằng nhiều câu trong đây là những câu hỏi kết thúc mở và có thể dẫn đến vài cuộc thảo luận thú vị cung cấp cho bạn nhiều thông tin về khả năng của một người hơn là một câu trả lời thẳng thắn.

Mục lục

  1. Các câu hỏi chung
  2. Các câu hỏi về HTML
  3. Các câu hỏi về CSS
  4. Các câu hỏi về JavaScript
  5. Các câu hỏi về Kiểm thử (Testing)
  6. Các câu hỏi về Hiệu suất (Performance)
  7. Các câu hỏi về Mạng (Network)
  8. Các câu hỏi về việc viết code
  9. Các câu hỏi vui

Tham gia đóng góp

  1. Những người đóng góp
  2. Làm sao để đóng góp
  3. Giấy phép

Các câu hỏi chung:

  • Bạn đã học được gì trong ngày hôm qua/tuần này??
  • Điều gì về lập trình làm bạn hứng thú?
  • Một thử thách về mặt kĩ thuật bạn đã trải qua gần đây là gì và bạn đã giải quyết nó như thế nào?
  • Bạn cân nhắc những Giao diện người dùng (UI), Vấn đề bảo mật (Security), Hiệu suất (Performance), Khả năng tối ưu cho các bộ máy tìm kiếm (SEO), Khả năng bảo trì (Maintainability) hay Công nghệ (Technology) nào khi xây dựng một ứng dụng/trang web?
  • Hãy nói về môi trường lập trình mà bạn muốn.
  • Những hệ thống quản lý phiên bản (version control systems) nào mà bạn đã sử dụng và cảm thấy quen thuộc?
  • Bạn có thể trình bày mạch làm việc (workflow) của bạn khi bạn tạo một trang web không?
  • Nếu bạn có 5 stylesheet khác nhau, bạn sẽ tích hợp chúng vào trang như thế nào là tốt nhất?
  • Bạn có thể trình bày sự khác nhau giữa progressive enhancement và graceful degradation không?
  • Bạn sẽ tối ưu các tài nguyên (assets/resources) của một website như thế nào?
  • Một trình duyệt sẽ tải bao nhiêu tài nguyên cùng một lúc từ một tên miền (domain) cho trước?
    • Các exception là gì?
  • Nêu 3 cách để giảm tải trang web (perceived hoặc thời gian tải thực tế (actual load time)).
  • Nếu bạn tham gia vào một dự án và họ xài nút Tab trong khi bạn sử dụng nút dấu cách (spaces), bạn sẽ làm gì?
  • Trình bày cách bạn sẽ làm một trang slideshow đơn giản.
  • Nếu bạn có thể chuyên sâu về một công nghệ (technology) trong năm nay thì nó sẽ là công nghệ gì?
  • Giải thích tầm quan trọng của các standards và standards bodies.
  • Flash of Unstyled Content là gì? Bạn tránh FOUC như thế nào?
  • Giải thích ARIA và screenreaders là gì, và làm thế nào để làm cho một trang web có thể truy cập được.
  • Giải thích một vài ưu và khuyết điểm của CSS animations so với JavaScript animations.
  • CORS là từ viết tắt của cái gì và nó đề cập đến vấn đề nào?

Các câu hỏi về HTML:

  • Một doctype làm cái gì?
  • Sự khác nhau giữa chế độ full standards, chế độ almost standards và chế độ quirks?
  • Sự khác nhau giữa HTML và XHTML là gì?
  • Có vấn đề nào không khi cung cấp (serving) các trang theo kiểu application/xhtml+xml?
  • Bạn cung cấp một trang web có nội dung được viết bằng nhiều ngôn ngữ như thế nào?
  • Bạn phải cảnh giác những điều gì khi thiết kế hoặc phát triển các trang web đa ngôn ngữ?
  • Những thuộc tính data- có lợi cho cái gì?
  • Hãy xem HTML5 như một nền tảng web mở (open web platform). Những building blocks của HTML5 là gì?
  • Trình bày sự khác nhau giữa một cookie, sessionStoragelocalStorage.
  • Trình bày sự khác nhau giữa <script>, <script async><script defer>.
  • Tại sao việc đặt các thẻ (tag) <link> CSS giữa 2 thẻ <head></head> và các thẻ <script> JS ngay trước thẻ </body> về cơ bản là một ý tưởng tốt? Bạn có biết những trường hợp ngoại lệ nào khác không?
  • Progressive rendering là gì?
  • Tại sao bạn sẽ sử dụng thuộc tính srcset trong 1 tag img? Giải thích quá trình mà trình duyệt sẽ sử dụng khi phân tích nội dung của thuộc tính này.
  • Trước đây bạn đã bao giờ sử dụng những ngôn ngữ template HTML nào khác chưa?

Các câu hỏi về CSS:

  • Điểm khác biệt giữa class và ID trong CSS là gì?
  • Sự khác nhau giữa “resetting” và “normalizing” CSS là gì? Bạn sẽ chọn cái nào, và tại sao?
  • Trình bày về Floats và cách chúng hoạt động.
  • Trình bày về z-index và làm thế nào để nội dung stack với nhau được định hình.
  • Trình bày về BFC (Block Formatting Context) và cách nó hoạt động.
  • Các kĩ thuật clearing khác nhau là những kĩ thuật nào và phù hợp với hoàn cảnh nào?
  • Giải thích về CSS sprites, và làm thế nào để bạn thực hiện chúng trên một trang web.
  • Những kĩ thuật thay thế hình ảnh nào mà bạn thích và bạn sử dụng từng kĩ thuật đó khi nào?
  • Bạn sẽ tiếp cận như thế nào để khắc phục các vấn đề về trình bày trên một trình duyệt cụ thể?
  • Bạn sẽ cung cấp các trang của bạn trên các trình duyệt hạn chế tính năng như thế nào?
    • Bạn sẽ sử dụng kĩ thuật hay quy trình nào?
  • Những cách khác nhau nào để ẩn giấu 1 element một cách trực quan (và làm cho chúng chỉ hiển thị với người đọc qua màn hình)?
  • Bạn đã bao giờ sử dụng một hệ thống grid chưa, và nếu có, bạn thích cái nào hơn?
  • Bạn đã bao giờ sử dụng các media queries hay các layout/CSS cụ thể cho mobile chưa?
  • Bạn có quen với việc trình bày/tạo dáng cho SVG?
  • Bạn tối ưu các trang web cho việc in ấn như thế nào?
  • Một vài điểm kiểu “A đây rồi” trong việc viết CSS hiệu quả?
  • Các ưu/khuyết điểm của việc sử dụng các CSS preprocessors?
    • Trình bày những điểm bạn thích và không thích về các CSS preprocessors mà bạn đã sử dụng.
  • Bạn sẽ thực hiện thách thức trong các thiết kế web có sử dụng các font không phải tiêu chuẩn (non-standard fonts) như thế nào?
  • Giải thích cách mà một trình duyệt quyết định những element nào tương ứng với một CSS selector.
  • Trình bày về các pseudo-elements và thảo luận xem chúng dùng để làm gì.
  • Giải thích những hiểu biết của bạn về box model và làm thế nào bạn báo với trình duyệt trong CSS để render layout của bạn trong các box models khác nhau.
  • Đoạn code này * { box-sizing: border-box; } sẽ làm điều gì? Những ưu điểm của nó là gì?
  • Liệt kê các giá trị của thuộc tính display mà bạn có thể nhớ.
  • Sự khác nhau giữa inline và inline-block là gì?
  • Sự khác nhau giữa một thành phần có thuộc tính position với giá trị: relative, fixed, absolute, hoặc có vị trí tĩnh (statically positioned element)?
  • Chữ cái ‘C’ trong CSS là viết tắt của từ Cascading. Mức độ ưu tiên được xác định trong việc gán style như thế nào (cho vài ví dụ)? Bạn có thể tận dụng hệ thống này như thế nào?
  • Những framework CSS nào bạn đã sử dụng trên máy của bạn, hoặc trong sản phẩm nào đó? Bạn sẽ thay đổi/cải tiến chúng như thế nào?
  • Bạn có bao giờ sử dụng CSS Flexbox hay Grid chưa?
  • Responsive design khác adaptive design như thế nào?
  • Bạn có bao giờ làm việc với các thiết bị màn hình retina chưa? Nếu có, bạn đã sử dụng khi nào và dùng những kĩ thuật nào?
  • Có những lý do nào bạn muốn sử dụng translate() hơn thay vì absolute positioning không, hoặc ngược lại? Và tại sao?

Các câu hỏi về JavaScript:

  • Giải thích về event delegation
  • Giải thích cách mà this hoạt động trong JavaScript
  • Giải thích cách mà prototypal inheritance hoạt động
  • Bạn nghĩ gì về AMD so với CommonJS?
  • Giải thích tại sao đoạn code sau không hoạt động như một IIFE: function foo(){ }();.
    • Cần thay đổi gì để làm nó trở thành một IIFE?
  • Sự khác nhau giữa một biến: chứa null, chứa undefined hoặc chưa được khai báo (undeclared) là gì?
    • Bạn sẽ kiểm tra các trạng thái này như thế nào?
  • Một closure là gì, và bạn sẽ sử dụng nó như thế nào / tại sao bạn sử dụng nó?
  • Một trường hợp sử dụng điển hình cho các anonymous functions?
  • Bạn tổ chức code của bạn như thế nào? (module pattern, classical inheritance?)
  • Sự khác nhau giữa host objects và native objects là gì?
  • Nêu sự khác nhau giữa: function Person(){}, var person = Person(), và var person = new Person()?
  • Sự khác nhau giữa .call.apply là gì?
  • Giải thích về Function.prototype.bind.
  • Bạn sẽ sử dụng document.write() khi nào?
  • Sự khác nhau giữa feature detection, feature inference, và việc sử dụng UA string là gì?
  • Giải thích về Ajax bằng nhiều thông tin chi tiết nhất có thể.
  • Những ưu và khuyết điểm của việc sử dụng Ajax là gì?
  • Giải thích cách JSONP làm việc (và nó thật sự không phải là Ajax như thế nào).
  • Bạn đã bao giờ sử dụng JavaScript templating chưa?
    • Nếu có, bạn đã sử dụng những thư viện nào?
  • Giải thích về “hoisting”.
  • Trình bày về event bubbling.
  • Trình bày sự khác nhau giữ một “attribute” và một “property”?
  • Tại sao việc mở rộng các object được xây dựng sẵn trong JavaScript không phải là một ý tưởng tốt?
  • Sự khác nhau giữa event load và event DOMContentLoaded của document?
  • Sự khác nhau giữa == and === là gì?
  • Giải thích về same-origin policy và sự liên quan của nó với JavaScript.
  • Làm cho hàm này hoạt động:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Tại sao lại gọi là Ternary expression, từ “Ternary” có nghĩa gì?
  • "use strict"; là gì? Những điểm lợi và hại khi sử dụng nó?
  • Tạo một vòng lặp for cho output từ 1 đến 100, trong đó output “fizz” thay cho số chia hết cho 3, “buzz” thay cho số chia hết cho 5“fizzbuzz” thay cho số chia hết cho cả 35.
  • Tại sao, nói chung, việc không làm ảnh hưởng đến global scope của một website là một điều tốt?
  • Tại sao bạn sẽ không sử dụng những thứ như event load? Event này có điểm bất lợi nào không? Bạn có biết cách thay thế nào khác, và tại sao bạn sẽ sử dụng chúng?
  • Giải thích một ứng dụng đơn trang (single page app) là gì và làm sao để làm chúng thân thiện với việc SEO.
  • Mức độ trải nghiệm của bạn là như thế nào đối với các Promise và/hoặc polyfills của chúng?
  • Những điểm lợi và hại của việc sử dụng các Promise thay cho các callback?
  • Nêu một vài ưu và khuyết điểm của việc viết code JavaScript trong một ngôn ngữ mà sẽ dùng để biên dịch thành JavaScript.
  • Bạn sử dụng những công cụ và kỹ thuật nào để gỡ lỗi (debug) cho JavaScript?
  • Bạn sử dụng những cấu trúc nào để lặp xuyên suốt qua tất cả các thuộc tính (property) trong object và các item trong array?
  • Giải thích sự khác nhau giữa các mutable object và immutable object.
    • Nêu ví dụ cho một immutable object trong JavaScript?
    • Những ưu/khuyết điểm của tính bất biến (immutability)?
    • Làm thế nào để đạt được tính bất biến trong code của bạn?
  • Giải thích sự khác nhau giữa các hàm đồng bộ (synchronous function) và hàm không đồng bộ (asynchronous function).
  • Event loop là gì?
    • Sự khác biệt giữa call stack và task queue là gì?
  • Giải thích sự khác nhau trong các cách sử dụng foo sau đây: giữa function foo() {}var foo = function() {}
  • Sự khác biệt giữa các biến được tạo bằng việc sử dụng let, var hoặc const là gì?

Các câu hỏi về Kiểm thử (Testing):

  • Vài điểm lợi và bất lợi trong việc kiểm thử code của bạn là gì?
  • Bạn sẽ sử dụng những công cụ nào để kiểm thử chức năng của code của bạn?
  • Sự khác nhau giữa một unit test và một functional/integration test là gì?
  • Mục đích của một công cụ kiểm tra code style (code style linting tool) là gì?

Các câu hỏi về Hiệu suất (Performance):

  • Bạn sử dụng những công cụ nào để tìm ra một lỗi hiệu suất trong code của bạn?
  • Chỉ ra vài cách mà bạn có thể cải thiện hiệu suất cuộn trang (scrolling performance) trên website của bạn?
  • Giải thích sự khác nhau giữa layout, painting và compositing.

Các câu hỏi về Mạng (Network):

  • Theo truyền thống, tại sao việc cung cấp các tài nguyên của trang web từ nhiều tên miền khác nhau là việc có lợi hơn?
  • Hãy trình bày một cách toàn diện nhất quá trình từ lúc bạn nhập vào URL của một trang web đến khi nó hoàn thành việc tải và hiện thị trên màn hình của bạn.
  • Những điểm khác nhau giữa Long-Polling, Websockets và Server-Sent Events?
  • Giải thích các request header và response header sau:
    • Sự khác nhau giữa Expires, Date, Age và If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Các HTTP methods là gì? Liệt kê tất cả HTTP methods mà bạn biết, và giải thích chúng.

Các câu hỏi về việc viết code:

Câu hỏi: Giá trị của foo là gì?

var foo = 10 + '20';

Câu hỏi: Đoạn code dưới đây sẽ xuất ra cái gì?

console.log(0.1 + 0.2 == 0.3);

Câu hỏi: Bạn sẽ làm thế nào để hàm này hoạt động?

add(2, 5); // 7
add(2)(5); // 7

Câu hỏi: Giá trị nào được trả về từ dòng lệnh sau?

"i'm a lasagna hog".split("").reverse().join("");

Câu hỏi: Giá trị của window.foo là gì?

( window.foo || ( window.foo = "bar" ) );

Câu hỏi: Kết quả của 2 lệnh alert dưới đây là gì?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Câu hỏi: Giá trị của foo.length là gì?

var foo = [];
foo.push(1);
foo.push(2);

Câu hỏi: Giá trị của foo.x là gì?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Câu hỏi: Những dòng code sau in ra những gì?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Các câu hỏi vui:

  • Gần đây bạn đã làm việc với những dự án thú vị nào?
  • Vài điều bạn thích về các công cụ dành cho nhà phát triển mà bạn sử dụng là gì?
  • Ai là người truyền cảm hứng cho bạn trong cộng đồng front-end?
  • Bạn có dự án ngắn hạn nào không? Kiểu dự án gì?
  • Những tính năng của Internet Explorer mà bạn thích là gì?
  • Bạn có thích dùng cà phê không?

Những người đóng góp:

Tài liệu này được khởi đầu vào năm 2009 như là một sự cộng tác của @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym.

Đã nhận được sự đóng góp từ hơn 100 developers.

\ No newline at end of file diff --git a/config/eleventy.config.js b/config/eleventy.config.js index 0f8ac030e..490a49664 100644 --- a/config/eleventy.config.js +++ b/config/eleventy.config.js @@ -64,7 +64,7 @@ module.exports = eleventyConfig => { }) eleventyConfig.addFilter('github_permalink', str => { - return str.replace(/\.html/g, '') + return str.replace(/\/index.html/g, '.md') }) eleventyConfig.addFilter('permalink', str => { diff --git a/package.json b/package.json index 7572b4663..33217a8f5 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,11 @@ "version": "1.0.0", "description": "A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.", "scripts": { - "build": "eleventy --config=config/eleventy.config.js", + "build": "eleventy --config=config/eleventy.config.js --pathprefix='Front-end-Developer-Interview-Questions/'", "deploy": "git subtree push --prefix _site git@github.com:h5bp/Front-end-Developer-Interview-Questions.git gh-pages", "contributors:add": "all-contributors add", "contributors:generate": "all-contributors generate", - "start": "eleventy --config=config/eleventy.config.js --serve --port 9090" + "start": "eleventy --config=config/eleventy.config.js --serve --port 9090 --quiet" }, "repository": { "type": "git", diff --git a/src/_includes/assets/css/header.css b/src/_includes/assets/css/header.css index 6a97bd38a..856357b18 100644 --- a/src/_includes/assets/css/header.css +++ b/src/_includes/assets/css/header.css @@ -47,7 +47,7 @@ right: 0; bottom: 0; left: 0; - background-image: url('https://github.com/assets/images/gradient.svg'); + background-image: url('https://h5bp.github.io/Front-end-Developer-Interview-Questions/assets/images/gradient.svg'); pointer-events: none; } .header-big-title::before { diff --git a/src/_includes/components/footer.njk b/src/_includes/components/footer.njk index adc0a2a1a..d51809b21 100644 --- a/src/_includes/components/footer.njk +++ b/src/_includes/components/footer.njk @@ -6,6 +6,6 @@ {% for person in maintainers.all %} {{ person.name }}{% if not loop.last %}{% if loop.index != loop.length - 1 %}, {% else %} and {% endif %}{% endif %} {% endfor %}.
- Curious about the project? Read more about here. + Curious about the project? Read more about here.

diff --git a/src/_includes/components/navigation.njk b/src/_includes/components/navigation.njk index 9703cfba0..36a627434 100644 --- a/src/_includes/components/navigation.njk +++ b/src/_includes/components/navigation.njk @@ -3,13 +3,13 @@ {% for entry in questions.all %} {% if not entry.external %} - + {% else %} {% endif %} {% endfor %} - - + + diff --git a/src/_includes/layouts/default.njk b/src/_includes/layouts/default.njk index dd9700a82..7ad02f0a0 100644 --- a/src/_includes/layouts/default.njk +++ b/src/_includes/layouts/default.njk @@ -18,7 +18,6 @@ - @@ -29,10 +28,10 @@ - - - - + + + + diff --git a/src/index.njk b/src/index.njk index 7554b9fdf..adf5eaa12 100644 --- a/src/index.njk +++ b/src/index.njk @@ -10,7 +10,7 @@ permalink: /index.html

{{ title }}

- A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations. + A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations.

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. We have a Hall of Fame 👑. From d7725717843ce09af0ffc501b5ab245dafd979d4 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Sun, 2 Dec 2018 22:05:58 -0200 Subject: [PATCH 005/252] minify svg image --- _site/assets/images/gradient.svg | 18 +----------------- src/assets/images/gradient.svg | 18 +----------------- 2 files changed, 2 insertions(+), 34 deletions(-) diff --git a/_site/assets/images/gradient.svg b/_site/assets/images/gradient.svg index 919967974..67afce6f0 100644 --- a/_site/assets/images/gradient.svg +++ b/_site/assets/images/gradient.svg @@ -1,17 +1 @@ - - - - Slice 1 - Created with Sketch. - - - - - - - - - - - - \ No newline at end of file + diff --git a/src/assets/images/gradient.svg b/src/assets/images/gradient.svg index 919967974..67afce6f0 100644 --- a/src/assets/images/gradient.svg +++ b/src/assets/images/gradient.svg @@ -1,17 +1 @@ - - - - Slice 1 - Created with Sketch. - - - - - - - - - - - - \ No newline at end of file + From b73b02bd925c490fed0187db79da18b1913ec413 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Mon, 3 Dec 2018 02:34:27 -0200 Subject: [PATCH 006/252] improve deploy script --- .gitignore | 1 + config/deploy.sh | 16 ++++++++++++++++ deploy.sh | 7 ------- package.json | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 config/deploy.sh delete mode 100644 deploy.sh diff --git a/.gitignore b/.gitignore index fd4f2b066..7069acdbd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules .DS_Store +_site diff --git a/config/deploy.sh b/config/deploy.sh new file mode 100644 index 000000000..1b25e153a --- /dev/null +++ b/config/deploy.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +if [ `git branch --list gh-pages` ] +then + git branch -D gh-pages + git checkout -b gh-pages +else + git checkout -b gh-pages +fi +rm -f .gitignore +npm run build +git add _site +git commit -m 'Update Website' +git push upstream `git subtree split --prefix _site gh-pages`:gh-pages -f +git checkout -f +git checkout master diff --git a/deploy.sh b/deploy.sh deleted file mode 100644 index 6792078e1..000000000 --- a/deploy.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -if [ -z "$1" ] -then - echo "Which folder do you want to deploy to GitHub Pages?" - exit 1 -fi -git subtree push --prefix $1 origin gh-pages diff --git a/package.json b/package.json index 33217a8f5..8402d5685 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.", "scripts": { "build": "eleventy --config=config/eleventy.config.js --pathprefix='Front-end-Developer-Interview-Questions/'", - "deploy": "git subtree push --prefix _site git@github.com:h5bp/Front-end-Developer-Interview-Questions.git gh-pages", + "deploy": "sh ./config/deploy.sh", "contributors:add": "all-contributors add", "contributors:generate": "all-contributors generate", "start": "eleventy --config=config/eleventy.config.js --serve --port 9090 --quiet" From 360bb47fa5835611c8f042ffc96b15761f104e0a Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Mon, 3 Dec 2018 04:00:07 -0200 Subject: [PATCH 007/252] remove dist files from master - the new deploy script will read build files from gh-pages and then publish so having it on master is not necessary --- _site/404.html | 1 - _site/about/index.html | 1 - _site/assets/images/apple-touch-icon.png | Bin 18397 -> 0 bytes _site/assets/images/favicon-32x32.png | Bin 1557 -> 0 bytes _site/assets/images/favicon-96x96.png | Bin 7244 -> 0 bytes _site/assets/images/gradient.svg | 1 - _site/assets/images/og-image.png | Bin 42301 -> 0 bytes _site/index.html | 1 - _site/questions/coding-questions/index.html | 1 - _site/questions/css-questions/index.html | 1 - _site/questions/fun-questions/index.html | 1 - _site/questions/general-questions/index.html | 1 - _site/questions/html-questions/index.html | 1 - .../questions/javascript-questions/index.html | 1 - _site/questions/network-questions/index.html | 1 - .../performance-questions/index.html | 1 - _site/questions/testing-questions/index.html | 1 - _site/sitemap.xml | 228 ------------------ _site/translations/arabic/index.html | 1 - _site/translations/bulgarian/index.html | 1 - _site/translations/burmese/index.html | 1 - .../chinese-traditional/index.html | 1 - _site/translations/chinese/index.html | 1 - _site/translations/croatian/index.html | 1 - _site/translations/czech/index.html | 1 - _site/translations/danish/index.html | 1 - _site/translations/dutch/index.html | 1 - _site/translations/farsi/index.html | 1 - _site/translations/french/index.html | 1 - _site/translations/german/index.html | 1 - _site/translations/greek/index.html | 1 - _site/translations/hebrew/index.html | 52 ---- _site/translations/hungarian/index.html | 1 - _site/translations/index.html | 1 - _site/translations/indonesian/index.html | 1 - _site/translations/italian/index.html | 1 - _site/translations/japanese/index.html | 1 - _site/translations/korean/index.html | 1 - _site/translations/korean/reference.html | 4 - _site/translations/latvian/index.html | 1 - _site/translations/polish/index.html | 1 - _site/translations/portuguese/index.html | 1 - _site/translations/romanian/index.html | 1 - _site/translations/russian/index.html | 1 - _site/translations/serbian/index.html | 1 - _site/translations/slovakian/index.html | 1 - _site/translations/slovenian/index.html | 1 - _site/translations/spanish/index.html | 1 - _site/translations/swedish/index.html | 1 - _site/translations/turkish/index.html | 1 - _site/translations/ukrainian/index.html | 1 - _site/translations/vietnamese/index.html | 1 - 52 files changed, 329 deletions(-) delete mode 100644 _site/404.html delete mode 100644 _site/about/index.html delete mode 100644 _site/assets/images/apple-touch-icon.png delete mode 100644 _site/assets/images/favicon-32x32.png delete mode 100644 _site/assets/images/favicon-96x96.png delete mode 100644 _site/assets/images/gradient.svg delete mode 100644 _site/assets/images/og-image.png delete mode 100644 _site/index.html delete mode 100644 _site/questions/coding-questions/index.html delete mode 100644 _site/questions/css-questions/index.html delete mode 100644 _site/questions/fun-questions/index.html delete mode 100644 _site/questions/general-questions/index.html delete mode 100644 _site/questions/html-questions/index.html delete mode 100644 _site/questions/javascript-questions/index.html delete mode 100644 _site/questions/network-questions/index.html delete mode 100644 _site/questions/performance-questions/index.html delete mode 100644 _site/questions/testing-questions/index.html delete mode 100644 _site/sitemap.xml delete mode 100644 _site/translations/arabic/index.html delete mode 100644 _site/translations/bulgarian/index.html delete mode 100644 _site/translations/burmese/index.html delete mode 100644 _site/translations/chinese-traditional/index.html delete mode 100644 _site/translations/chinese/index.html delete mode 100644 _site/translations/croatian/index.html delete mode 100644 _site/translations/czech/index.html delete mode 100644 _site/translations/danish/index.html delete mode 100644 _site/translations/dutch/index.html delete mode 100644 _site/translations/farsi/index.html delete mode 100644 _site/translations/french/index.html delete mode 100644 _site/translations/german/index.html delete mode 100644 _site/translations/greek/index.html delete mode 100644 _site/translations/hebrew/index.html delete mode 100644 _site/translations/hungarian/index.html delete mode 100644 _site/translations/index.html delete mode 100644 _site/translations/indonesian/index.html delete mode 100644 _site/translations/italian/index.html delete mode 100644 _site/translations/japanese/index.html delete mode 100644 _site/translations/korean/index.html delete mode 100644 _site/translations/korean/reference.html delete mode 100644 _site/translations/latvian/index.html delete mode 100644 _site/translations/polish/index.html delete mode 100644 _site/translations/portuguese/index.html delete mode 100644 _site/translations/romanian/index.html delete mode 100644 _site/translations/russian/index.html delete mode 100644 _site/translations/serbian/index.html delete mode 100644 _site/translations/slovakian/index.html delete mode 100644 _site/translations/slovenian/index.html delete mode 100644 _site/translations/spanish/index.html delete mode 100644 _site/translations/swedish/index.html delete mode 100644 _site/translations/turkish/index.html delete mode 100644 _site/translations/ukrainian/index.html delete mode 100644 _site/translations/vietnamese/index.html diff --git a/_site/404.html b/_site/404.html deleted file mode 100644 index 629520cbf..000000000 --- a/_site/404.html +++ /dev/null @@ -1 +0,0 @@ -404 - Page not found ★ Front-end Job Interview Questions

404 - Page not found

Think this is wrong? Open an issue

\ No newline at end of file diff --git a/_site/about/index.html b/_site/about/index.html deleted file mode 100644 index bc4be38e9..000000000 --- a/_site/about/index.html +++ /dev/null @@ -1 +0,0 @@ -About ★ Front-end Job Interview Questions

About

This Project 🤳

This file 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.

Contribute 🕶

Saw something wrong? Want to add a question? suggest something? Check our contributing guidelines, open a pull-request or fill a bug.

Maintainers 🦄

It has since been active thanks to these incredibly wonderful people.

Looking to contribute? Check our Contributing guide to get started!

Honorable Mentions 🎠

This project started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

\ No newline at end of file diff --git a/_site/assets/images/apple-touch-icon.png b/_site/assets/images/apple-touch-icon.png deleted file mode 100644 index cb3c48c6cc628a08175fcd92d40f1a942f435a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18397 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 a diff --git a/_site/assets/images/og-image.png b/_site/assets/images/og-image.png deleted file mode 100644 index da449532cea84311566ee6c1a5d52fc246e84766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42301 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 ryZ^oa-P`}s1=kKFront-end Job Interview Questions

Front-end Job Interview Questions

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore. Read more about here. Better in your language? See one of our translations.

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. We have a Hall of Fame 👑.

\ No newline at end of file diff --git a/_site/questions/coding-questions/index.html b/_site/questions/coding-questions/index.html deleted file mode 100644 index cbc634ab0..000000000 --- a/_site/questions/coding-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -Coding Questions ★ Front-end Job Interview Questions

Coding Questions

Question: What is the value of foo?

var foo = 10 + '20';

Question: What will be the output of the code below?

console.log(0.1 + 0.2 == 0.3);

Question: How would you make this work?

add(2, 5); // 7
add(2)(5); // 7

Question: What value is returned from the following statement?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?

( window.foo || ( window.foo = "bar" ) );

Question: What is the outcome of the two alerts below?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: What is the value of foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Question: What is the value of foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: What does the following code print?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
Promise.resolve().then(function() {
console.log('three');
})
console.log('four');

Question: What is the difference between these four promises?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);
\ No newline at end of file diff --git a/_site/questions/css-questions/index.html b/_site/questions/css-questions/index.html deleted file mode 100644 index 2476dbb71..000000000 --- a/_site/questions/css-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -CSS Questions ★ Front-end Job Interview Questions

CSS Questions

  • What is CSS selector specificity and how does it work?
  • What’s the difference between “resetting” and “normalizing” CSS? Which would you choose, and why?
  • Describe Floats and how they work.
  • Describe z-index and how stacking context is formed.
  • Describe BFC (Block Formatting Context) and how it works.
  • What are the various clearing techniques and which is appropriate for what context?
  • How would you approach fixing browser-specific styling issues?
  • How do you serve your pages for feature-constrained browsers?
    • What techniques/processes do you use?
  • What are the different ways to visually hide content (and make it available only for screen readers)?
  • Have you ever used a grid system, and if so, what do you prefer?
  • Have you used or implemented media queries or mobile specific layouts/CSS?
  • Are you familiar with styling SVG?
  • Can you give an example of an @media property other than screen?
  • What are some of the “gotchas” for writing efficient CSS?
  • What are the advantages/disadvantages of using CSS preprocessors?
    • Describe what you like and dislike about the CSS preprocessors you have used.
  • How would you implement a web design comp that uses non-standard fonts?
  • Explain how a browser determines what elements match a CSS selector.
  • Describe pseudo-elements and discuss what they are used for.
  • Explain your understanding of the box model and how you would tell the browser in CSS to render your layout in different box models.
  • What does * { box-sizing: border-box; } do? What are its advantages?
  • What is the CSS display property and can you give a few examples of its use?
  • What’s the difference between inline and inline-block?
  • What’s the difference between the “nth-of-type()” and “nth-child()” selectors?
  • What’s the difference between a relative, fixed, absolute and statically positioned element?
  • What existing CSS frameworks have you used locally, or in production? How would you change/improve them?
  • Have you played around with the new CSS Flexbox or Grid specs?
  • Can you explain the difference between coding a web site to be responsive versus using a mobile-first strategy?
  • Have you ever worked with retina graphics? If so, when and what techniques did you use?
  • Is there any reason you’d want to use translate() instead of absolute positioning, or vice-versa? And why?
\ No newline at end of file diff --git a/_site/questions/fun-questions/index.html b/_site/questions/fun-questions/index.html deleted file mode 100644 index 9c9b3d2b8..000000000 --- a/_site/questions/fun-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -Fun Questions ★ Front-end Job Interview Questions

Fun Questions

  • What’s a cool project that you’ve recently worked on?
  • What are some things you like about the developer tools you use?
  • Who inspires you in the front-end community?
  • Do you have any pet projects? What kind?
  • What’s your favorite feature of Internet Explorer?
  • How do you like your coffee?
\ No newline at end of file diff --git a/_site/questions/general-questions/index.html b/_site/questions/general-questions/index.html deleted file mode 100644 index 1da916209..000000000 --- a/_site/questions/general-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -General Questions ★ Front-end Job Interview Questions

General Questions

  • What did you learn yesterday/this week?
  • What excites or interests you about coding?
  • What is a recent technical challenge you experienced and how did you solve it?
  • When building a new web site or maintaining one, can you explain some techniques you have used to increase performance?
  • Can you describe some SEO best practices or techniques you have used lately?
  • Can you explain any common techniques or recent issues solved in regards to front-end security?
  • What actions have you personally taken on recent projects to increase maintainability of your code?
  • Talk about your preferred development environment.
  • Which version control systems are you familiar with?
  • Can you describe your workflow when you create a web page?
  • If you have 5 different stylesheets, how would you best integrate them into the site?
  • Can you describe the difference between progressive enhancement and graceful degradation?
  • How would you optimize a website’s assets/resources?
  • How many resources will a browser download from a given domain at a time?
    • What are the exceptions?
  • Name 3 ways to decrease page load (perceived or actual load time).
  • If you jumped on a project and they used tabs and you used spaces, what would you do?
  • Describe how you would create a simple slideshow page.
  • If you could master one technology this year, what would it be?
  • Explain the importance of standards and standards bodies.
  • What is Flash of Unstyled Content? How do you avoid FOUC?
  • Explain what ARIA and screenreaders are, and how to make a website accessible.
  • Explain some of the pros and cons for CSS animations versus JavaScript animations.
  • What does CORS stand for and what issue does it address?
  • How did you handle a disagreement with your boss or your collaborator?
  • What resources do you use to learn about the latest in front end development and design?
\ No newline at end of file diff --git a/_site/questions/html-questions/index.html b/_site/questions/html-questions/index.html deleted file mode 100644 index 71ed1ae34..000000000 --- a/_site/questions/html-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -HTML Questions ★ Front-end Job Interview Questions

HTML Questions

  • What does a doctype do?
  • How do you serve a page with content in multiple languages?
  • What kind of things must you be wary of when design or developing for multilingual sites?
  • What are data- attributes good for?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Describe the difference between a cookie, sessionStorage and localStorage.
  • Describe the difference between <script>, <script async> and <script defer>.
  • Why is it generally a good idea to position CSS <link>s between <head></head> and JS <script>s just before </body>? Do you know any exceptions?
  • What is progressive rendering?
  • Why you would use a srcset attribute in an image tag? Explain the process the browser uses when evaluating the content of this attribute.
  • Have you used different HTML templating languages before?
\ No newline at end of file diff --git a/_site/questions/javascript-questions/index.html b/_site/questions/javascript-questions/index.html deleted file mode 100644 index d82cb25a6..000000000 --- a/_site/questions/javascript-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -JavaScript Questions ★ Front-end Job Interview Questions

JavaScript Questions

  • Explain event delegation
  • Explain how this works in JavaScript
  • Explain how prototypal inheritance works
  • What do you think of AMD vs CommonJS?
  • Explain why the following doesn’t work as an IIFE: function foo(){ }();.
    • What needs to be changed to properly make it an IIFE?
  • What’s the difference between a variable that is: null, undefined or undeclared?
    • How would you go about checking for any of these states?
  • What is a closure, and how/why would you use one?
  • Can you describe the main difference between a forEach loop and a .map() loop and why you would pick one versus the other?
  • What’s a typical use case for anonymous functions?
  • How do you organize your code? (module pattern, classical inheritance?)
  • What’s the difference between host objects and native objects?
  • Difference between: function Person(){}, var person = Person(), and var person = new Person()?
  • What’s the difference between .call and .apply?
  • Explain Function.prototype.bind.
  • What’s the difference between feature detection, feature inference, and using the UA string?
  • Explain Ajax in as much detail as possible.
  • What are the advantages and disadvantages of using Ajax?
  • Explain how JSONP works (and how it’s not really Ajax).
  • Have you ever used JavaScript templating?
    • If so, what libraries have you used?
  • Explain “hoisting”.
  • Describe event bubbling.
  • Describe event capturing.
  • What’s the difference between an “attribute” and a “property”?
  • Why is extending built-in JavaScript objects not a good idea?
  • Difference between window load event and document DOMContentLoaded event?
  • What is the difference between == and ===?
  • Explain the same-origin policy with regards to JavaScript.
  • Make this work:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Why is it called a Ternary operator, what does the word “Ternary” indicate?
  • What is "use strict";? what are the advantages and disadvantages to using it?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?
  • Why would you use something like the load event? Does this event have disadvantages? Do you know any alternatives, and why would you use those?
  • Explain what a single page app is and how to make one SEO-friendly.
  • What is the extent of your experience with Promises and/or their polyfills?
  • What are the pros and cons of using Promises instead of callbacks?
  • What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript?
  • What tools and techniques do you use debugging JavaScript code?
  • What language constructions do you use for iterating over object properties and array items?
  • Explain the difference between mutable and immutable objects.
    • What is an example of an immutable object in JavaScript?
    • What are the pros and cons of immutability?
    • How can you achieve immutability in your own code?
  • Explain the difference between synchronous and asynchronous functions.
  • What is event loop?
    • What is the difference between call stack and task queue?
  • Explain the differences on the usage of foo between function foo() {} and var foo = function() {}
  • What are the differences between variables created using let, var or const?
  • What are the differences between ES6 class and ES5 function constructors?
  • Can you offer a use case for the new arrow => function syntax? How does this new syntax differ from other functions?
  • What advantage is there for using the arrow syntax for a method in a constructor?
  • What is the definition of a higher-order function?
  • Can you give an example for destructuring an object or an array?
  • ES6 Template Literals offer a lot of flexibility in generating strings, can you give an example?
  • Can you give an example of a curry function and why this syntax offers an advantage?
  • What are the benefits of using spread syntax and how is it different from rest syntax?
  • How can you share code between files?
  • Why you might want to create static class members?
\ No newline at end of file diff --git a/_site/questions/network-questions/index.html b/_site/questions/network-questions/index.html deleted file mode 100644 index 6d50a22f1..000000000 --- a/_site/questions/network-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -Network Questions ★ Front-end Job Interview Questions

Network Questions

  • Traditionally, why has it been better to serve site assets from multiple domains?
  • Do your best to describe the process from the time you type in a website’s URL to it finishing loading on your screen.
  • What are the differences between Long-Polling, Websockets and Server-Sent Events?
  • Explain the following request and response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • What are HTTP methods? List all HTTP methods that you know, and explain them.
\ No newline at end of file diff --git a/_site/questions/performance-questions/index.html b/_site/questions/performance-questions/index.html deleted file mode 100644 index 114ff5c18..000000000 --- a/_site/questions/performance-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -Performance Questions ★ Front-end Job Interview Questions

Performance Questions

  • What tools would you use to find a performance bug in your code?
  • What are some ways you may improve your website’s scrolling performance?
  • Explain the difference between layout, painting and compositing.
\ No newline at end of file diff --git a/_site/questions/testing-questions/index.html b/_site/questions/testing-questions/index.html deleted file mode 100644 index 031bbe008..000000000 --- a/_site/questions/testing-questions/index.html +++ /dev/null @@ -1 +0,0 @@ -Testing Questions ★ Front-end Job Interview Questions

Testing Questions

  • What are some advantages/disadvantages to testing your code?
  • What tools would you use to test your code’s functionality?
  • What is the difference between a unit test and a functional/integration test?
  • What is the purpose of a code style linting tool?
\ No newline at end of file diff --git a/_site/sitemap.xml b/_site/sitemap.xml deleted file mode 100644 index d935b6a4d..000000000 --- a/_site/sitemap.xml +++ /dev/null @@ -1,228 +0,0 @@ - - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/about/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/coding-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/css-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/fun-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/general-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/html-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/javascript-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/network-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/performance-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/questions/testing-questions/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/arabic/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/bulgarian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/burmese/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/chinese-traditional/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/chinese/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/croatian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/czech/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/danish/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/dutch/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/farsi/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/french/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/german/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/greek/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/hebrew/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/hungarian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/indonesian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/italian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/japanese/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/korean/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/korean/reference.html - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/latvian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/polish/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/portuguese/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/romanian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/russian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/serbian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/slovakian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/slovenian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/spanish/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/swedish/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/turkish/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/ukrainian/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/translations/vietnamese/ - 2018-12-02 - - - - https://h5bp.github.io/Front-end-Developer-Interview-Questions/Front-end-Developer-Interview-Questions/ - 2018-12-02 - - diff --git a/_site/translations/arabic/index.html b/_site/translations/arabic/index.html deleted file mode 100644 index 0dbc9a4a5..000000000 --- a/_site/translations/arabic/index.html +++ /dev/null @@ -1 +0,0 @@ -أسئلة مقابله شخصية في تطوير واجهةالويب ★ Front-end Job Interview Questions

أسئلة مقابله شخصية في تطوير واجهةالويب

أسئلة مقابله شخصية في تطوير واجهةالويب

هذا الملف يحتوي على عدد من أسئلة مقابلة شخصية في تطوير واجهة الويب التي من الممكن ان تساعدك في فحص المرشحين المحتملين للوظيفة.
لا ينصح باستخدام كل الأسئلة هنا على مرشح واحد, فاختيار بعض من الأسئلة سيساعدك في تحديد من يمتلك المهارات المتوافقه مع متطلباتك.

ملاحظة: كثير من هذه الأسئلة ليس لها إجابات محددة مما قد يؤدي الى نقاش مثير للاهتمام , و يعرفك على قدرات الشخص أكثر مما تتوقع من اجابة محدده.

قائمة المحتوى

  1. أسئلة عامة
  2. أسئلة HTML
  3. أسئلة CSS
  4. أسئلة JS
  5. أسئلة اختبار البرمجيات Testing
  6. أسئلة أداء البرمجيات Performance
  7. أسئلة شبكات Network
  8. أسئلة برمجة
  9. أسئلة مسلية

الدخول و المساهمة

  1. المساهمون
  2. كيف تساهم
  3. الرخصة

أسئلة عامة:

  • ماذا تعلمت بالأمس/هذا الأسبوع؟
  • ماذا يهمك ويثير اهتمامك في البرمجة؟
  • ماهو اخر تحدي تقني واجهته ,و كيف استطعت إصلاحه؟
  • اي من واجهة المستخدم, الامان, الاداء, قابلية الصيانه, SEO, او اي تقنية تضعها في الحسبان عند بناء تطبيق ويب او موقع؟
  • تكلم عن بيئة التطوير المفضلة لديك.
  • ماهو إصدار نظام التحكم المعتاد عليه؟
  • هل تستطيع وصف روتين عملك عند إنشاء صفحة ويب؟
  • لو كان لديك خمسة stylesheets مختلفة كيف لك دمجها في الموقع بأفضل طريقة؟
  • هل تستطيع شرح الفرق بين progressive enhancement و graceful degradation؟
  • كيف يمكنك تحسين assets/resources الموقع؟
  • كم عدد المصادر التي يحملها الموقع من domain في وقت واحد؟
    • ماهي الاستثناءت؟
  • سم ثلاث طرق لتخفيض تحميل الصفحة؟
  • لو دخلت الى مشروع و هم يستخدمون tabs وانت تستخدم spaecs, فماذا ستفعل؟
  • اشرح كيف تنشئ صفحة عرض شرائح.
  • لو كنت ستحترف تقنية واحده هذه السنه ماذا ستكون؟
  • اشرح اهمية standards و standards bodies.
  • ماهو Flash of Unstyled Content ؟وكيف تتفاداه
  • اشرح ما هو ARIA و screenreaders, وكيف تنشئ موقع accessible؟
  • اشرح الإيجابيات و السلبيات CSS animations مقابل JavaScript animations.
  • ماذا CORS يرمز الى ,و ماهي المشكلة التي يعالجها؟

أسئلة HTML:

  • ماذا تفعل doctype؟
  • ماهو الفرق بين full standards mode, almost standards mode و quirks mode؟
  • ماهو الفرق بين HTML و XHTML؟
  • هل هناك مشكلة في استضافة صفحاتapplication/xhtml+xml؟
  • كيف تستضيف صفحه بمحتوى متعدد اللغات؟
  • ماهي الاشياء التي يجب ان تحترس منها عند تصميم او تطور موقع متعدد اللغات؟
  • ماهي فائدة -data؟
  • اعتبر HTML5 منصة مفتوحة على شبكة الإنترنت ماهي أسس بناء HTML5؟
  • اشرح الفرق بين cookie, sessionStorage و localStorage.
  • اشرح الفرق بين <script>, <script async> و <script defer>.
  • لماذا من الأفضل وضع سي اس اس <link> بين <head></head> و جافاسكربت <script> قبل <body/>؟
  • ماهو progressive rendering؟
  • هل استخدمت HTML templating languages مختلفة من قبل؟

أسئلة CSS:

  • ما الفرق بين class و id في CSS؟
  • ما الفرق بين "resetting" و "normalizing" في CSS؟ واي منهم ستختار, ولماذا؟
  • اشرح Floats, و كيف تعمل؟
  • اشرح z-index, و كيف stacking context شُكلت؟
  • اشرح (BFC(Block Formatting Context, و كيف تعمل؟
  • ماهي clearing techniques المختلفه و اي منها مناسب لأي سياق؟
  • اشرح CSS sprites, وكيف سوف تنفذعم في صفحه او موقع؟
  • ما هي طرق تبديل الصور "image replacement" المفضلة لديك و متى تسخدم اي منها؟
  • كيف تصلح مشكلة تنسيق في متصفح معين؟
  • كيف تجعل صفحاتك تعمل على متصفحات مقيدة بالميزات "قديمة"؟
    • ما هي الطرق/العمليات التي تستخدمها؟
  • ماهي الطرق المختلفة لكي تخفي المحتوى وتجعله فقط متوفر لقارء الشاشه فقط؟
  • هل استخدمت نظام grid من قبل, و لو كان كذكلك ماذا تفضل؟
  • هل استخدمت media queries او تنسيق محدد للهاتف؟
  • هل انت معتاد مع تصميم SVG؟
  • كيف تحسن صفحاتك لطٌباعة؟
  • ماهي بعض المعوقات في كتابة CSS جيد؟
  • ماهي الايجابيات/السلبيات في استخدام CSS preprocessors؟
    • اوصف ماذا يعجبك وما لايعجبك حول استخدام CSS preprocessors؟
  • كيف كيف لك تنفيذ web design comp باستخدام خطوط ليست أساسية؟
  • اشرح كيف يتسطيع المتصفح تحديد أي عنصر ينتمي إلى أي CSS selector.
  • اوصف pseudo-elements و ناقش في ماذا يستخدمون؟
  • اشرح ماهو box model و كيف ستخبر المتصفح تنسيق في box models مختلفة باستخدام CSS.
  • ماذا { ;box-sizing: border-box } * يفعل, وماهي ايجابياته؟
  • عدد كل قيم خاصية display التي تتذكرها.
  • ما هو الفرق بين inline و inline-block؟
  • ماهو الفرق بين قيم relative, fixed, absolute و statically في خاصية position؟
  • الحرف "C" في CSS يرمز الى Cascading. كيف تحدد الافضلية في تعيين التصميم , وكيف لك أن تستفيد من هذه الخاصية؟
  • أي من إطارات العمل CSS استخدمت في الانتاج أو محليا على جهازك, وكيف لك تغييرهم/تطورهم؟
  • هل جربت او استعملت قليلا CSS Flexbox او Grid؟
  • كيف يكون responsive design مختلفا عن adaptive design
  • هل عملت من قبل مع retina graphics, ولو كان كذلك متى و ماهي الطرق التي استعملتها؟
  • هل هناك سبب يجعلك من الممكن أن تستعمل ()translate بدلا من absolute positioning او vice-versa؟ ولماذا.

أسئلة JS:

  • اشرح event delegation.
  • اشرح كيف this تعمل في JavaScript.
  • اشرح كيف تعمل prototypal inheritance.
  • ما رأيك في AMD vs CommonJS؟
  • اشرح لماذا التالي ;(){ }{}function foo لا يعمل كـ IIFE؟
    • ما الذي يحتاجه من تصحيح لجعل IIFE بصوره صحيحة؟
  • ما الفرق بين المتغيرات: null, undefined، undeclared؟
    • ما الذي ستفعله لتتحقق من أي من هذه الحالات؟
  • ما هو closure وكيف/لماذا ستستخدم واحدًا؟
  • ما هي حالة الاستخدام الاعتيادية لـ anonymous functions؟
  • كيف تنظم برمجياتك؟ (module pattern, classical inheritance)؟
  • ما الفرق بين host objects و native objects؟
  • القرق بين {} ()function Person, ()var person = Person()var person = new Person؟
  • ما الفرق بين call.و apply.؟
  • اشرح Function.prototype.bind.
  • متى تستخدم ()document.write؟
  • ما الفرق بين feature detection, feature inference , واستخدام الـ UA string؟
  • اشرح Ajax في أكبر قدر من التفاصيل .
  • ما هي المزايا والعيوب في استخدام Ajax ؟
  • اشرح كيف JSONP يعمل (وكيف أنها ليست حقا Ajax ).
  • هل سبق لك استخدام JavaScript templating؟
    • لو كان كذلك أي مكتبة استخدمت؟
  • اشرح "hoisting".
  • اوصف event bubbling.
  • ما الفرق بين "attribute" و "property"؟
  • لماذا extending built-in JavaScript objects فكرة سيئة؟
  • ما هو الفرق بين document load event و document DOMContentLoaded event؟
  • ما هو الفرق بين == و ===؟
  • اشرح سياسة same-origin فيما يتعلق بجافاسكربت.
  • اجعل هذا يعمل:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • لماذا "Ternary" سميت هكذا ,و ماذا تشير كلمة Ternary expression إلى؟
  • ماهو ;"use strict", وما هي إبجبايات و سلبيات استخدامه؟
  • اكتب for loop تكرر حتى 100 و تطبع "fizz" في مضاعفات 3 , و "buzz" في مضاعفات 5 و "fizzbuzz" في مضاعفات 5 و3.
  • لماذا بشكل عام ترك global scope للموقع كما هو و عدم لمسه فكرة جيدة
  • لماذا من الممكن تستخدم شي مثل load event, وهل هذا الـevent يملك سلبيات؟ وهل تعرف بدائل.و لماذا من الممكن ان تستخدمهم
  • اشرح ما هو single page app و كيفية صنع SEO-friendly.
  • ما مدى خبرتك في استعمال Promises و/او polyfills خاصتهم؟
  • ماهي بعض المزايا و العيوب في استخدام Promises بدلا من callbacks؟
  • ماهي بعض الاجابيات و السلبيات في كتابتة جافاسكرت كود في لغة يحدث لها compiles إلى جافاسكربت؟
  • ماهي الادوات و الطرق التي تستخدمها في البحث و التصحيح عن أخطاءك في الجافاسكربت كود؟
  • ماهي language constructions تستعمل لتكرار على خواص object و عناصر array؟
    • اشرح الفرق بين mutable و immutable objects.
    • ماذا يعتبر في الجافاسكربت لـ immutable object؟
    • ماهي الايجابيات و السلبيات الـ immutability؟
    • كيف يمكنك تحقيق immutability في الكود الخاص بك؟
  • اشرح الفرق بين synchronous و asynchronous functions.
  • ماهو event loop؟
    • ما هو الفرق بين call stack و task queue؟
  • اشرح الفرق في استخدام foo بين {} ()function foo و {} ()var foo = function.

أسئلة اختبار البرمجيات Testing:

  • ما هي المزايا والعيوب لاختبار برمجياتك؟
  • ما الأدوات التي تستخدمهافي اختبار وظائف برمجياتك؟
  • ما الفرق بين اختبار unit واختبار functional/integration؟
  • ما الغرض من code style linting tool؟

أسئلة أداء البرمجيات Performance:

  • ما الأدوات التي تستخدمها لإيجاد مشاكل في الأداء؟
  • ما هي الطرق التي من الممكن تحسن أداءالـ scrolling في موقعك؟
  • اشرح الفرق بين layout و painting و compositing.

أسئلة شبكات Network:

  • في العادة لماذا من الأفضل أن ترفع site assets من domains متعدده؟
  • افعل ما بوسعك لشرح ما يحدث من بداية كتابك عنوان الموقع الى انتهاء تحميله على شاشتك.
  • ما الفرق بين Long-Polling و Websockets و Server-Sent Events؟
  • اشرح request and response headers التاليه:
    • الفرق بين If-Modified-... , Expires, Date, Age
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • ما هي HTTP methods؟ و عدد كل HTTP methods التي تعرفها، واشرحها.

أسئلة برمجة:

سؤال: ماهي قيمة foo؟

var foo = 10 + '20';

سؤال: كيف يمكن جعل هذا الكود يعمل؟

add(2, 5); // 7
add(2)(5); // 7

سؤال: ماهي القيمة العائدة من الكود التالي؟

"i'm a lasagna hog".split("").reverse().join("");

سؤال: ماهي قيمة window.foo؟

( window.foo || ( window.foo = "bar" ) );

سؤال: ماهو ناتج التنبيهات التالية؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سؤال: ماهي قيمة foo.length؟

var foo = [];
foo.push(1);
foo.push(2);

سؤال: ماهي قيمة foo.x؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سؤال: ماذا يطبع الكود التالي؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

أسئلة مسلية:

  • ماذا عملت من مشروع رائع مؤخرا؟
  • ما هي الاشياء التي أعجبتك في أدوات التطوير التي تستعملها؟
  • من الذي يلهمك في مجتمع تطوير واجهة الويب؟
  • هل لديك اي من المشاريع الصغيرة؟ ما نوعها؟
  • ما هي الميزة المفضلة لديك في Internet Explorer؟
  • كيف تحب قهوتك؟

المساهمون:

بدأت هذه الوثيقة في عام 2009 بتعاون @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

ومنذ ذلك الحين تلقى مساهمات من أكثر من 100 مطور.

\ No newline at end of file diff --git a/_site/translations/bulgarian/index.html b/_site/translations/bulgarian/index.html deleted file mode 100644 index 6ffbd25c9..000000000 --- a/_site/translations/bulgarian/index.html +++ /dev/null @@ -1 +0,0 @@ -Въпроси за интервю за front-end разработчици ★ Front-end Job Interview Questions

Въпроси за интервю за front-end разработчици

Въпроси за интервю за front-end разработчици

Това репозитори съдържа въпроси от интервюта на front-end разработчици, които могат да бъдат използвани за отсяване на потенциални кандидати. Не препоръчваме използването на всеки въпрос за всеки кандидат (това би отнело часове). Избирането на няколко въпроса от списъка би могло да помогне да се проверят търсените умения у кандидатите.

Статията Baseline For Front-End Developers на Rebecca Murphey също е чудесен ресурс за четене преди провеждането на интервю.

Бележка: Имайте предвид, че много от тези въпроси могат да породят интересни дискусии и да ви помогнат по-добре да проверите познанията и начина на мислене на кандидата, отколкото ако получавате директен отговор.

Съдържание

  1. Участници в проекта
  2. Общи въпроси
  3. HTML въпроси
  4. CSS въпроси
  5. JS въпроси
  6. jQuery въпроси
  7. Въпроси, свързани с тестване
  8. Въпроси, свързани с бързодействие
  9. Мрежови въпроси
  10. Въпроси, свързани с програмиране
  11. Забавни въпроси
  12. Допълнителни ресурси

[⬆] Участници в проекта:

Мнозинството от въпроси са взети от oksoclap измислени от Paul Irish (@paul_irish) и благодарение на:

[⬆] Общи въпроси:

  • Какво научихте вчера / тази седмица?
  • Какво ви привлича в писането на код?
  • С какво техническо предизвикателство се сблъскахте наскоро и как го решихте?
  • Какво свързва потребителския интерфейс, сигурността, функционирането, SEO, поддръжката или технологиите по между им при създаването на уеб приложения или сайтове?
  • Разкажете за предпочитанията ви към операционни системи, редактори, браузъри, инструменти и т.н.
  • С кои системи за управление на версиите (source control) сте запознати?
  • Можете ли да обясните последователността от действия, които извършвате, когато създавате уеб страници?
  • Ако имате 5 различни стилови файла, как бихте ги интегрирали?
  • Можете ли да обясните разликите между progressive enhancement и graceful degradation?
  • Как бихте оптимизирали зареждането на ресурси за дадена уеб страница?
  • По колко ресурса едновременно свалят браузърите от даден домейн?
    • Какви са изключенията?
  • Назовете 3 начина да намалите скоростта на зареждане на уеб страница (забележимата или реалната скорост на зареждане).
  • Ако започнете работа по проект, в чийто код са използвани табулации, а вие сте използвали интервали, какво ще направите?
  • Обяснете как бихте изградили страница със слайд-шоу.
  • Ако можете да научите много добре 1 технология тази година, каква ще е тя?
  • Обяснете важността на стандартите и организациите за стандартизация.
  • Какво е Flash of unstyled content? Как се справяте с FOUC?
  • Обяснете какво е ARIA и екранни четци и как да правим сайтовете по-достъпни.
  • Обяснете предимствата и недостатъците на CSS анимациите пред тези на JavaScript.
  • Какво означава CORS и какъв проблем решава?

[⬆] HTML въпроси:

  • Какво прави doctype?
  • Каква е разликата между режимите “standards mode”, “almost standards mode” и “quirks mode”?
  • Каква е разликата между HTML и XHTML?
  • Има ли проблеми при обработката на страници с application/xhtml+xml?
  • Как показвате страници със съдържание на няколко езика?
  • Какви неща трябва да се имат предвид, когато правите дизайн или разработвате многоезични страници?
  • За какво служат HTML атрибутите, които започват с data-?
  • Представете си HTML5 като отворена уеб платформа. Кои са градивните елементи на HTML5?
  • Обяснете разликата между бисквитки, sessionStorage и localStorage.
  • Обяснете разликата <script>, <script async> и <script defer>.
  • Защо е добре да се зарежда CSS <link> в елемента <head></head> и JS <script> преди затварящия таг </body>? Знаете ли за изключения?
  • Какво означава progressive rendering?
  • Защо бихте използвали srcset атрибут в <img> таг? Обяснете процеса, през който минава браузърът, когато обработва съдържанието на този атрибут.
  • Използвали ли сте различни шаблонни HTML езици?

[⬆] CSS въпроси:

  • Каква е разликата между class и ID в CSS?
  • Каква е разликата между “resetting” и “normalizing” в CSS? Кое бихте избрали и защо?
  • Обяснете плаващите елементи (floats) и как работят.
  • Обяснете z-index и как се формира наслагването на елементите.
  • Опишете BFC (Block Formatting Context) и как работи той.
  • Кои са различните clearing техники и кои в какъв контекст се използват?
  • Обяснете CSS sprite-овете, и как можете да ги вкарате на уеб страница или сайт.
  • Кои са любимите ви техники, които заменят картинките и в кои случаи кои от тях използвате?
  • Как бихте подходили за да решите специфичните стилове за различните браузъри?
  • Как показвате страниците си на браузъри, които не поддържат част от възможностите на HTML5?
    • Какви техники/процеси използвате?
  • Какви са различните начини визуално да скриете съдържание от уеб страницата (и да го направите видимо само за екранните четци)?
  • Използвали ли сте грид система и ако да, коя предпочитате?
  • Използвали ли сте media queries или специфичен за мобилните платформи layouts или CSS?
  • Запознати ли сте със стилизирането на SVG?
  • Как оптимизирате вашите уеб страници за принтиране?
  • Кои са някои от “триковете” за писане на ефективен CSS?
  • Какви са предимствата/недостатъците при използване на препроцесори?
    • Опишете какво ви харесва и не ви харесва при използването им.
  • Как реализирате уеб дизайни, които използват нестандартни фонтове?
  • Обяснете как уеб браузърите разбират кои елементи отговарят на даден CSS селектор.
  • Опишете псевдо-елементите и обяснете за какво се използват.
  • Обяснете как разбирате box model и как бихте накарали браузъра с CSS да изпълни layout в различни box model-и.
  • Какво прави * { box-sizing: border-box; }? Какви са предимствата му?
  • Направете списък на всички стойности на display, за които можете да се сетите.
  • Каква е разликата между inline и inline-block?
  • Каква е разликата между позиционирането на елементите relative, fixed, absolute и static?
  • ‘C’ в CSS идва от Cascading. Какъв приоритет имат стиловете при наслагването им (няколко примера)? Как бихте използвали това?
  • Какви CSS frameworks сте ползвали самостоятелно или в проекти? Как бихте ги променили / обогатили?
  • Тествали ли сте новия CSS Flexbox или Grid specs?
  • Каква е разликата между responsive design и adaptive design на сайт?
  • Работили ли сте с retina graphics? Ако да, какви техники използвахте?
  • Има ли причина да ползвате translate() вместо абсолютно позициониране и обратно? Защо?

[⬆] JS въпроси:

  • Обяснете event delegation.
  • Обяснете как работи this в JavaScript.
  • Обяснете как работи наследяването на прототипи (prototypal inheritance).
  • AMD или CommonJS?
  • Обяснете защо този код не работи като IIFE: function foo(){ }();.
    • Какво е нужно да се промени, за да може кодът да работи като IIFE?
  • Каква е разликата между променлива, която е: null, undefined или недекларирана?
    • Как проверявате всяко от тези състояния на променливите?
  • Какво е closure? Как и защо се използва?
  • Кога се използват анонимните функции?
  • Как организирате своя код? (module патърн, класическо наследяване?)
  • Каква е разликата между host обекти и native обекти?
  • Каква е разликата между function Person(){}, var person = Person() и var person = new Person()?
  • Каква е разликата между .call и .apply?
  • Обяснете Function.prototype.bind?
  • В какви случаи бихте използвали document.write()?
  • Каква е разликата между feature detection, feature inference, и използването на user agent (UA) string?
  • Обяснете AJAX в детайли.
  • Какви са предимствата и недостатъците при употребата на AJAX?
  • Обяснете как работи JSONP (и защо не е точно AJAX).
  • Използвали ли сте JavaScript темплейти?
    • Ако да, коя библиотека сте използвали?
  • Обяснете “hoisting”.
  • Обяснете “event bubbling”.
  • Каква е разликата между “attribute” и “property”?
  • Защо extending built-in в JavaScript обектите не е добра идея?
  • Каква е разликата между събитията “document load” и “document DOMContentLoaded”?
  • Каква е разликата между == и ===?
  • Обяснете same-origin policy от гледна точка на JavaScript.
  • Оправете кода, така че да работи:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Защо тернарният оператор се нарича така? Какво означава думата “тернарен”?
  • Какво е "use strict";? Какви са предимствата и недостатъците на ползването му в кода?
  • Напишете for loop, който стига до 100 и извежда “fizz” за всички числа, които се делят на 3, “buzz” за тези, които се делят 5 и “fizzbuzz” за числата, които се делят и на 3 и на 5.
  • Защо по правило е добра идея да се остави global scope на един уебсайт непроменен?
  • Защо бихте използвали нещо като load събитието? Това събитие има ли недостатъци? Знаете ли алтернативи и защо бихте ги използвали?
  • Обяснете какво е single page app и как може да се оптимизира за търсачките.
  • Докъде се простира опитът ви с Promises и / или техните polyfills?
  • Какви са предимствата и недостатъците при използване на Promises вместо callbacks?
  • Кои са някои предимства / недостатъци на писането на JavaScript код на език, който се компилира до JavaScript?
  • Какви инструменти и техники използвате, когато дебъгвате JavaScript код?
  • Кои конструкции на езика използвате, за да итерирате атрибути (properties) на обекти и елементи в масиви?
  • Обяснете разликата между mutable и immutable обекти.
    • Дайте пример за immutable обект в JavaScript.
    • Какви са предимствата и недостатъците на това един обект да бъде immutable?
    • Как може да направите обект immutablе във Вашия собствен код?
  • Обяснете разликата между синхронни и асинхронни функции.
  • Какво е event loop?
    • Каква е разликата между call stack и task queue?
  • Обяснете разликите при използването на foo в примерите: function foo() {}; var foo = function() {}
  • Какви са разликите при създаавнето на променливи с let, var и const?

[⬆] jQuery въпроси:

  • Обяснете “chaining”.
  • Обяснете “deferreds”.
  • Какви специфични за jQuery оптимизации, можете да направите?
  • Какво прави .end()?
  • Как и защо бихте сложили bound event handler в namespace?
  • Назовете 4 различни типа стойности, които можете да подадете на jQuery метод.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object и т. н.
  • Какво е effects (или fx) queue?
  • Каква е разликата между .get(), [], и .eq()?
  • Каква е разликата между .bind(), .live(), и .delegate()?
  • Каква е разликата между $ и $.fn? Или просто: Какво е $.fn?
  • Оптимизирайте този селектор:
$(".foo div#bar:eq(0)")

[⬆] Въпроси, свързани с тестване:

  • Какви са предимствата и недостатъците в тестването на код?
  • Какви инструменти бихте могли да използвате, за да тествате как работи Вашия код?
  • Каква е разликата между компонентен тест (unit test) и функционален / интеграционен тест (functional / integration test)?
  • Каква е целта на инструментите за анализиране на кода (linting tools)?

[⬆] Въпроси, свързани с бързодействие:

  • Какви инструменти бихте използвали, за да откриете проблем, свързан с бързодействието на кода?
  • Дайте примери за начини, по които може да подобрите бързодействието на скролирането в сайт.
  • Обяснете разликата между layout, painting и compositing.

[⬆] Мрежови въпроси:

  • Защо по традиция е препоръчително да се зареждат ресурсите за даден уебсайт от няколко домейна?
  • Опишете по най-добрия възможен начин процесът, който се случва от написването на URL-a на един уебсайт до края на зарежаднето му на екрана.
  • Какви са разликите между Long-Polling, Websockets и Server-Sent Events?
  • Обяснете следните хедъри на request и response:
    • Разлики между Expires, Date, Age и If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Какво представляват HTTP методите? Избройте всички HTTP методи, които познавате, и ги обяснете.

[⬆] Въпроси, свързани с програмиране:

modulo(12, 5) // 2

Въпрос: Имплементирайте функция за намиране на остатък от деление която отговаря на горното условие (да връща 2 при аргументи 12 и 5)

"i'm a lasagna hog".split("").reverse().join("");

Въпрос: Каква стойност ще върне горният израз?

Отговор: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Въпрос: Каква е стойността на window.foo?

Отговор: “bar”, ако window.foo има стойност false, иначе стойността на window.foo)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Въпрос: Какво ще изкарат двете alert функции от горния код?

Отговор: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Въпрос: Каква е стойността на foo.length?

Отговор: 2

[⬆] Забавни въпроси:

  • Кое е най-якото нещо, което сте писали и от което сте най-горд?
  • Кое най-много ви допада в инструментите за разработчици, които използвате?
  • Разработвате ли някакви проекти като хоби? Какви?
  • Какво най-много ви харесва в Internet Explorer?
  • Как предпочитате кафето си?

####[⬆] Допълнителни ресурси:

\ No newline at end of file diff --git a/_site/translations/burmese/index.html b/_site/translations/burmese/index.html deleted file mode 100644 index 04190d76e..000000000 --- a/_site/translations/burmese/index.html +++ /dev/null @@ -1 +0,0 @@ -Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ ★ Front-end Job Interview Questions

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ

ယခုဖိုင်တွင် Front-end developer အလုပ်အတွက် အလုပ်လျှောက်ထားသူများအား အင်တာဗျူးများပြုလုပ်ရာတွင် အထောက်အကူပြုနိုင်သည့် မေးခွန်းများပါဝင်ပါသည်။ အလုပ်လျှောက်ထားသူတစ်ဦးစီတိုင်းကို ရှိသမျှမေးခွန်းတိုင်းမေးရန် အကြံပြုခြင်းမဟုတ်ပါ။ (ဖြေရလွန်း၍ လျှာထွက်နိုင်ကိန်းရှိသည်။) မိမိခန့်အပ်လိုသောအလုပ်နှင့်သက်ဆိုင်သည့် အလုပ်တာဝန်၊ လိုအပ်ချက်များနှင့်သက်ဆိုင်သည့် မေးခွန်းများကိုသာရွေးချယ်ကာမေးရန် ရည်ရွယ်ပါသည်။

မှတ်ချက်။ ။ မေးခွန်းအများစုမှာ open-ended မေးခွန်းများြဖစ်ြပီး ဒဲ့ဒိုးအဖြေတစ်ခု အတိအကျရယ် မရှိချေ။ ထိုမေးခွန်းနှင့် ပါတ်သက်၍ ဆွေးနွေးစကားပြောဆိုရာမှ လျှောက်ထားသူ၏ အစွမ်းအဆကို ပိုမိုခန့်မှန်းနိုင်မည်ြဖစ်သည်။

မာတိကာ

  1. ယေဘုယျ မေးခွန်းများ
  2. HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ
  3. CSS နှင့်သက်ဆိုင်သော မေးခွန်းများ
  4. JS နှင့် သက်ဆိုင်သော မေးခွန်းများ
  5. Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ
  6. Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ
  7. Network နှင့် သက်ဆိုင်သော မေးခွန်းများ
  8. Coding နှင့်သက်ဆိုင်သော မေးခွန်းများ
  9. အပျော်မေးခွန်းများ

Getting Involved

  1. Contributors
  2. How to Contribute
  3. License

ယေဘုယျ မေးခွန်းများ

  • ဒီရက်ပိုင်းအတွင်း (သို့) ဒီတစ်ပါတ်အတွင်း ဘာတွေသင်ယူ လေ့လာြဖစ်ပါသနည်း။
  • Coding နဲ့ပါတ်သက်လို့ ဘယ်လိုအရာမျိုးက သင့်ကို စိတ်လှုပ်ရှားအောင်၊ စိတ်ဝင်စားအောင်လုပ်နိုင်ပါလဲ။
  • အခုလောလောဆယ်ပိုင်းမှာ ဘယ်လို technical challenge တွေများတွေ့ခဲ့သလဲ၊ ပြီးတော့ အဲ့ဒီ့ challenge တွေကို ဘယ်လိုအောင်ြမင်စွာ ကျော်ြဖတ်ခဲ့ပါသလဲ။
  • Web application တစ်ခု သို့ web site တစ်ခုကိုလုပ်ရာမှာ မည်သည့် User Iterface၊ Security (လုံခြုံရေး)၊ Performance၊ Search Engine Optimization (မိမိ၏ site/application အား search engine များမှ လွယ်ကူစွာ ရှာဖွေနိုင်ရေး)၊ Maintainability (နောင်မှာပြုပြင်မှုလွယ်ကူရေး)၊ Technology (နည်းပညာရွေးချယ်မှု) စသည်တို့နှင့်ပါတ်သက်၍ မည့်သည့်အချက်များကို စဉ်းစားပါသလဲ။
  • Development လုပ်ရာတွင် သင့်အကြိုက်ဆုံးြဖစ်မည့် computer set-up အကြောင်းပြောပါ။
  • မည့်သည့် Version control system တွေကို သုံးဖူး၊ စမ်းဖူးပါသလဲ။
  • Web page တစ်ခုကို ပြုလုပ်ရာတွင် သင်၏ လုပ်ငန်းစဉ်အဆင့်ဆင့် (workflow) ကိုပြောပြပါ။
  • သင့်မှာ stylesheet ၅ခုရှိသည်ဆိုပါစို့၊ သင်၏ webpage အတွင်းသို့ ဘယ်လိုအကောင်းဆုံးြဖစ်အောင် ထည့်သွင်းမည်နည်း။
  • Progressive enhancement (ဆီလျော်စွာ ကောင်းမွန်စေနည်း) နှင့် graceful degradation (ဟန်မပျက် နှိမ့်ချနည်း) တို့ကို ရှင်းြပပေးပါ။
  • Website တစ်ခု၏ assets များ resource များကို ဘယ်လို optimize လုပ်ပါမည်နည်း။
  • Browser တစ်ခုသည် domain တစ်ခုမှ resource ဘယ်နှစ်ခု တစ်ပြိုင်တည်း download လုပ်နိုင်ပါသနည်း
    • ဘယ်လိုချွင်းချက်များရှိပါသနည်း။
  • Page load လုပ်သည့်အချိန်အား လျှော့ချနိုင်သည့် နည်း၃မျိုးပြောပါ။ (တကယ် load လုပ်သည့်အခိျန် သို့ load လုပ်သည်ဟုထင်ရချိန်)
  • လုပ်လက်ဆ Project တစ်ခုကို ဝင်ရောက်လုပ်ကိုင်ရာမှာ၊ နဂို developer များက Tab ကိုသုံးကာ code ကို format လုပ်ထားပြီး သင့်အနေနှင့် space များနှင့် format လုပ်သူတစ်ယောက်ဖြစ်သည်ဆိုပါစို့။ သင်မည်သို့ ဝင်ရောက်လုပ်ကိုင်မည်နည်း။
  • ရိုးရှင်းတဲ့ Slideshow page တစ်ခုကို သင်ဘယ်လိုပြုလုပ်ပါမည်နည်း။
  • သင်သည် ဒီနှစ်ထဲတွင် technology တစ်ခုကို ကျွမ်းကျင်စွာလေ့လာနိုင်မည်ဆိုပါက မည်သည့် technology ကိုလေ့လာမည်နည်း။
  • Standard များ၏ အရေးပါပုံနှင့် standard များကို သတ်မှတ်သည့် အဖွဲ့အစည်းများ၏ အရေးပါပုံကို ပြောပါ။
  • Flash of unstyled content ဆိုတာဘာလဲ။ ဘယ်လိုရှောင်ကွင်းနိုင်ပါသလဲ။
  • ARIA နှင့် screenreader များအကြောင်း၊ accessible ြဖစ်သည့် website ကို လုပ်ပုံလုပ်နည်းအကြောင်း ပြောပါ။
  • CSS animation များနှင့် Javascript animation များ၏ အားနည်းချက်၊ အားသာချက်များအကြောင်းရှင်းပြပါ။
  • CORS ဆိုတာဘာလဲ၊ ဘယ်လိုအခက်အခဲမျိုး ဘယ်လို issue မျိုးအတွက် အသုံးပြုပါသလဲ။

HTML နှင့်သက်ဆိုင်သော မေးခွန်းများ

  • doctype ဆိုတာဘာလဲ။ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Full standards mode၊ almost standard mode နှင့် quirks mode ကွာခြားချက်များကို ပြောပါ။
  • HTML နှင့် XHTML ကွာခြားချက်များကို ပြောပါ။
  • Page များကို application/xhtml+xml နှင့် ချပေးပါက မည်သည့်ပြဿနာများရှိသနည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော page တစ်ခုကို ဘယ်လိုချပြမည်နည်း။
  • ဘာသာစကားတစ်ခုထက်မကပါသော website တစ်ခုကို ဒီဇိုင်းလုပ်ရာ၊ develop လုပ်ရာတွင် မည်သို့စဥ်းစားကိုပြုလုပ်မည်နည်း။
  • data- attributes တွေသည် မည်သည့် ကိစ္စအတွက် ကောင်းသနည်း။
  • HTML5 ကို open platform တစ်ခုအနေစဥ်းစားကြည့်ပါစို့။ HTML5 ၏ အခြေခံအုပ်မြစ်များသည် အဘယ်နည်း။
  • cookie, sessionStorage နှင့် localStorage တို့၏ ကွာခြားချက်များကိုပြောပါ။
  • <script>, <script async> နှင့် <script defer> တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • ဘာကြောင့် CSS ၏ <link> tag များကို <head></head> အတွင်း၊ ဘာကြောင့် Javascript ၏ <script> tag များကို </body> မတိုင်ခင်ထည့်သည့်သည်ဟု ယေဘုယျအားဖြင့် အကြံပြုကြပါသလည်း။ ဘယ်လိုချွင်းချက်များ ရှိပါလဲ။
  • Progressive Rendering ဆိုတာဘာလဲ။
  • တခြား HTML template လုပ်ပေးနိုင်တဲ့ templating engine မျိုးဘာသုံးဖူးလဲ။

CSS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • CSS တွင် class တွေနှင့် ID တွေ၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS တွင် “resetting” နှင့် “normalizing” တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • Float တွေအကြောင်းနှင့် ဘယ်လိုအလုပ်လုပ်ကြောင်း ပြောပါ။
  • z-index နှင့် stacking အလုပ်လုပ်ပုံကို ရှင်းပါ။
  • BFC(Block Formatting Context) အကြောင်းရှင်းပါ၊ ဘယ်လိုအလုပ်လုပ်လဲ ပြောပါ။
  • Clearing နည်းအမျိုးမျိုးနှင့် မည်သည့်နည်းသည် မည်သို့အခြေအနေနှင့်သင့်တော်ကြောင်းရှင်းပြပါ။
  • CSS sprites များအကြောင်းရှင်းပြပါ။ Page တစ်ခု၊ site တစ်ခုမှာ ဘယ်လိုလုပ်မလဲရှင်းပြပါ။
  • အကြိုက်ဆုံး Image replacement နည်းများကိုပြောပါ၊ ဘယ်နည်းကို ဘယ်အခါမှာသုံးပါသနည်း။
  • Browser တစ်ခု၊နှစ်ခုနှင့်သာ သက်ဆိုင်သည့် style ပိုင်း ပြဿနာမျိုးကို မည်သို့ရှင်းမည်နည်း။
  • သင်၏ page တစ်ခုကို feature အစုံမပါသည့် browser တစ်ခုအတွက် မည်သို့ style လုပ်မည်နည်း။
    • မည်သည့်နည်း၊ လုပ်ဆောင်မှုများကို သုံးမည်နည်း။
  • Content တစ်ခုကို မမြင်ရအောင် မည်သို့လုပ်နိုင်ပါသနည်း (Screen readers များနှင့်သာ ဖတ်နိုင်အောင်)
  • Grid system များသုံးဖူးပါသလား၊ ဘယ်တစ်ခုကို ပိုကြိုက်ပါသလဲ။
  • Media queries သို့ mobile ဖုန်းအတွက် ရည်ရွယ်တဲ့ layout တွေ styling တွေလုပ်ဖူးလား။
  • SVG ကို style လုပ်တာနဲ့ပါတ်သက်ပြီး ဘယ်လိုအတွေ့အကြုံရှိပါသလဲ။
  • Webpage တွေကို print ထုတ်ဖို့အတွက် ဘယ်လို optimize လုပ်ပါသလဲ။
  • Efficient ြဖစ်တဲ့ CSS တွေကိုရေးဖို့အတွက် ဘယ်လို အချက်များကို သတိထားရပါမလဲ။
  • CSS preprocessor များ၏ ကောင်းချက် ဆိုးချက်များကို ပြောပါ။
    • သုံးဖူးတဲ့ CSS preprocessor တွေရဲ့ ကြိုက်တဲ့အချက် မကြိုက်တဲ့အချက်များကို ပြောပြပါ။
  • Web design comp တစ်ခု၊ photoshop/illustrator နဲ့ဆွဲထားတဲ့ design တစ်ခုကို ဘယ်လို develop လုပ်ပါမည်နည်း။
  • Browser တစ်ခုက CSS selector တစ်ခုနှင့် ဘယ်လို match လုပ်ပါသနည်း။
  • Pseudo-element တွေအကြောင်း ပြောပါ။ ဘယ်လိုနေရာမှာသုံးလဲ ပြောပါ။
  • Box model ကို နားလည်သလောက်ရှင်းပြပါ။ Browser တစ်ခုကို သင်လိုချင်သော box model တစ်ခုနှင့် render လုပ်အောင်မည်သို့ပြောရမည်နည်း။
  • * { box-sizing: border-box; } က ဘာလုပ်တာလည်း။ အဲ့ဒါရဲ့ အားသာချက်တွေက ဘာလဲ။
  • display property ရဲ့ value တွေထဲက မှတ်မိသမျှပြောပြပါ။
  • inline နှင့် inline-block ၏ ကွာခြားချက်များကို ပြောပါ။
  • relative, fixed, absolute နှင့် static position တို့၏ ကွာခြားချက်များကို ပြောပါ။
  • CSS ထဲမှ ‘C’ သည် Cascading လို့ရည်ရွယ်ပါသည်။ မည်သည့် style ကို ဦးစားပေးအရေးယူမည်ဟု browser က သတ်မှတ်ပါသနည်း (ဥပမာနှင့်တကွ ဖြေရန်)။ အဲ့ဒီ့ system ကို ဘယ်လို အသုံးချမည်နည်း။
  • ဘယ် CSS framework ကို စမ်းသုံးဖူးပါသလဲ။ production မှာရော ဘာကိုသုံးဖူးပါလဲ။
  • CSS flexbox သို့ Grid specs တို့ကို စမ်းသုံးဖူးပါသလား။
  • Responsive design နှင့် adaptive design ဘယ်လိုကွာပါသလဲ။
  • Retina graphic တွေသုံးဖူးပါသလား။ သုံးဖူးပါက ဘယ်တုန်းကပါလည်း၊ ဘယ်နည်းတွေသုံးခဲ့ပါသလဲ။
  • absolute positioning မသုံးပဲ translate() ကို ဘယ်လိုအချိန်မျိုးမှာ သုံးနိုင်ပါသလဲ။ အဲ့ဒါမဟုတ်ပြောင်းပြန် ဆိုရင်ရော။ ဘာကြောင့်လဲ။

JS နှင့်ပါတ်သက်သော မေးခွန်းများ

  • Event delegation အကြောင်းရှင်းပြပါ။
  • this က Javascript မှာ ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • Prototypal inheritance က ဘယ်လိုအလုပ်လုပ်ပါသလဲ။
  • AMD နှင့် CommonJS ကိုယှဉ်ပြပါ။
  • ဘာကြောင့် IIFE မှာ function foo(){}();; အလုပ်မလုပ်တာလည်း။
    • ဘာကိုပြောင်းလိုက်ရင် အလုပ်လုပ်ပါမည်နည်း။
  • Variable တစ်ခု၏ null, undefined or undeclared value များသည် ဘယ်လိုကွာခြားပါသလဲ။
    • အဲ့ဒီ့မတူတဲ့ value တွေကို ဘယ်လို check မလဲ။
  • Closure ဆိုတာဘာလဲ၊ ဘယ်လို၊ ဘာကြောင့်သုံးမှာလဲ။
  • Anonymous function တစ်ခုရဲ့ use case တွေဘာတွေရှိသလဲ။
  • Code တွေကို ဘယ်လို organize လုပ်မှာလဲ။ (module pattern, classical inheritance?)
  • Host object တွေနဲ့ native object တွေနဲ့ ဘယ်လိုကွာသလဲ။
  • function Person(){}, var person = Person(), နှင့် var person = new Person() ဆိုတဲ့ သုံးခုက ဘယ်လိုကွာပါသလဲ။
  • .call နှင့် .apply က ဘာကွာပါသလဲ။
  • Function.prototype.bind အကြောင်းရှင်းပါ။
  • document.write() ကို ဘယ်လိုအချိန်မှာ သုံးမှာလဲ။
  • Feature detection, feature inference နှင့် UA string တို့ရဲ့ ကွာခြားချက်ကို ပြောပါ။
  • Ajax ကို အသေးစိတ်ကျကျ ရှင်းပါ။
  • Ajax သုံးခြင်းရဲ့ အားသာချက်၊ အားနည်းချက်များကို ရှင်းပါ။
  • JSONP က ဘယ်လိုအလုပ်လုပ်သလဲပြောပါ။ (AJAX နှင့် ဘယ်လို မတူကြောင်းရှင်းပါ)
  • Javascript templating သုံးဖူးပါသလား၊​
    • ဘယ် Library တွေသုံးဖူးပါသလဲ။
  • “hoisting” ကိုရှင်းပြပါ။
  • Event bubbling အကြောင်းရှင်းပါ။
  • “attribute” နှင့် “property” ဘယ်လိုကွာပါသလဲ။
  • နဂိုကတည်းကရှိသည့် JavaScript object တွေကို extend လုပ်ခြင်းသည် ဘာ့ကြောင့် မလုပ်သင့်တာလဲ။
  • Document load event နဲ့ document DOMContentLoaded event က ဘယ်လိုကွာသလဲ။
  • == နှင့် === ကွာခြားပုံကိုပြောပါ။
  • Javascript ၏ same-origin policy အကြောင်းရှင်းပါ။
  • အောက်ပါကုဒ်ကို အလုပ်လုပ်အောင် လုပ်ပါ။
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression လို့ ဘာကြောင့်ခေါ်တာလဲ, “Ternary” ဆိုတာ ဘာကိုဆိုလိုချင်တာလဲ။
  • "use strict"; က ဘာလဲ။ အားနည်းချက် အားသာချက်များကို ရှင်းပါ။
  • 100 အထိ loop ပါတ်ကာ 3 နှင့် စားလုိ့ပြတ်က “fizz” လို့ထုတ်ပြီး , 5 နှင့်စားလို့ပြတ်က **“buzz”**လို့ထုတ်ပါ။ 3 နှင့် 5 နှစ်ခုလုံးနှင့်စားလို့ပြတ်က “fizzbuzz” လို့ထုတ်ပါ။
  • Website တစ်ခု၏ global scope ကို များသောအားြဖင့် မထိတာအကောင်းဆုံးြဖစ်ပါသလဲ။
  • load event ကို ဘာကြောင့်သုံးပါသလဲ။ အဲ့ဒီ့ event မှာ အားနည်းချက်များရှိပါသလား။ တခြားနည်းလမ်းတွေသိလား၊ ဘာလို့ အြခားနည်းလမ်းတွေသုံးမှာလဲ။
  • Single page app ဆိုတာဘာလဲ ရှင်းပြပေးပါ၊ ပြီးတော့ အဲ့ဒီ့ app တွေကို ဘယ်လို SEO-friendly ြဖစ်အောင်လုပ်မလဲ။
  • Promises သို့မဟုတ် သူတို့ရဲ့ polyfills တွေနဲ့ပါတ်သက်ြပီး အတွေ့အကြုံအကြောင်းပြောပြပါ။
  • Promise တွေကိုသုံးြခင်းနှင့် Callback တွေကိုသုံးခြင်းတို့၏ အားနည်းချက်၊ အားသာချက်များကို ရှင်းပါ။
  • Javascript ကို တခြား language တစ်ခုနှင့် develop လုပ်ပြီး Javascript သို့ compile လုပ်ခြင်းနှင့်ပါတ်သက်ပြီး အားနည်းချက် အားသာချက်များကို ပြောပြပါ။
  • ဘယ်လို tools တွေ၊ technique တွေကို သုံးပြီး javascript ကို debug လုပ်ပါသလဲ။
  • ဘယ်လို language construction ကိုသုံးပြီး object တစ်ခုရဲ့ properties တွေနှင့် array item တွေကို iterate လုပ်ပါသလဲ။
  • Mutable နှင့် immutable object တွေဘယ်လိုကွာခြားပါသလဲ။
    • Javascript မှာ ဘယ်လို object မျိုးသည် immutable object ဖြစ်ပါသလဲ။
    • Immutability ရဲ့ အားနည်းချက်၊ အားသာချက်များက ဘာတွေလဲ။
    • ကိုယ့်ရဲ့ code ထဲမှာ immutability ကို ဘယ်လို ရအောင်လုပ်နိုင်သလဲ။
  • Synchronous နဲ့ asynchronous function တွေရဲ့ ကွာခြားချက်ကိုပြောပါ။
  • Event loop ဆိုတာဘာလဲ။
    • Call stack နဲ့ task queue က ဘာကွာလဲ။
  • function foo() {} နှင့် var foo = function() {} မှာ foo ရဲ့ကွာခြားချက်ကိုပြောပါ။

Testing နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ကိုယ်ရေးတဲ့ code ကို test လုပ်ခြင်းအားဖြင့် ဘယ်လိုအားနည်းချက်၊ အားသာချက်များရှိပါသလဲ။
  • ကိုယ်ရေးတဲ့ code ရဲ့ functionality ကို test လုပ်ဖို့အတွက် ဘယ်လို tool တွေ သုံးမှာလဲ။
  • Unit test နဲ့ function/integration test တို့ ဘယ်လိုကွာခြားပါသလဲ။
  • Code style linting tool ရဲ့ ရည်ရွယ်ချက်ကို ပြောပါ။

Performance နှင့် သက်ဆိုင်သော မေးခွန်းများ

  • ဘယ်လို tools တွေကို သုံးပြီး performance bug တွေကို ရှာရမှာလဲ။
  • Website တစ်ခုရဲ့ scrolling နဲ့ပါတ်သက်ပြီး performance ဘယ်လိုကောင်းအောင်လုပ်ရမှာလဲ
  • Layout, painting နှင့် compositing ရဲ့ကွာခြားချက်ကိုပြောပါ။

Network နှင့်ပါတ်သက်သော မေးခွန်းများ

  • သာမန်ရိုးကျအားဖြင့်၊ ဘာကြောင့် website တစ်ခု၏ assets များကို domain တစ်ခုထက်ပိုပြီး ချပေးခြင်းက ဘာ့ကြောင့်ပိုကောင်းပါသလဲ။
  • Website တစ်ခု၏ url ကို ရိုက်ထည့်ပြီး load လုပ်ပြီးချိန်အထိ ဘာတွေဖြစ်သွားတယ်ဆိုတာကို ရှင်းပြပါ။
  • Long-polling, websocket နှင့် server-sent events တို့၏ ကွာခြားချက်များကိုရှင်းပါ။
  • အောက်ပါ request နှင့် response header များကို ရှင်းပါ။
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP Methods တွေကဘာတွေလဲ။ သူတို့ရဲ့ ကွာခြားချက်များကိုရှင်းပါ။

Coding နှင့်ပါတ်သက်သော မေးခွန်းများ

Question: foo ၏ value ကိုပြောပါ။

var foo = 10 + '20';

Question: အောက်ပါ code ကို ဘယ်လိုအလုပ်လုပ်အောင်လုပ်မည်နည်း။

add(2, 5); // 7
add(2)(5); // 7

Question: အောက်ပါ statement မှ ဘာကို return ပြန်မည်နည်း။

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo ၏ value ကို ပြောပါ။

( window.foo || ( window.foo = "bar" ) );

Question: အောက်ပါ alert နှစ်ခုက ဘာပြမည်နည်း။

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Question: foo.length ၏ value ကိုပြောပါ။

var foo = [];
foo.push(1);
foo.push(2);

Question: foo.x ၏ value ကိုပြောပါ။?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Question: အောက်ပါ ကုဒ်က ဘာ print ထုတ်မည်နည်း။?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

အပျော်မေးခွန်းများ

  • သင်လတ်တလောလုပ်ဖူးတဲ့ project များထဲက cool ဖြစ်တဲ့ project တစ်ခုအကြောင်းပြောပါ။
  • သင်သုံးတဲ့ developer tools တွေထဲက ဘယ်လိုအရာမျိုးတွေကို ကြိုက်ပါသလဲ။
  • Front-end community ထဲမှာ ဘယ်သူတွေကို စံနမူနာယူပါသလဲ။
  • အပျော်တမ်း၊ အားလပ်ချိန်မှာ လုပ်နေတဲ့ project တွေရှိပါသလား။ ဘယ်လိုမျိုးတွေလဲ။
  • Internet Explorer ရဲ့ အကြိုက်ဆုံး feature တစ်ခုပြောပါ။
  • ကော်ဖီကို ဘယ်လိုသောက်ပါသလဲ။

Contributors:

This document started in 2009 as a collaboration of @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

It has since received contributions from over 100 developers.

Burmese translation provided by @mmhan.

\ No newline at end of file diff --git a/_site/translations/chinese-traditional/index.html b/_site/translations/chinese-traditional/index.html deleted file mode 100644 index e40e70bee..000000000 --- a/_site/translations/chinese-traditional/index.html +++ /dev/null @@ -1 +0,0 @@ -前端工程師面試問題集 ★ Front-end Job Interview Questions

前端工程師面試問題集

前端工程師面試問題集

譯注:此翻譯版,主要給不能流利的讀英文的人看,相關專有名詞還是保留原文,翻譯不好地方請協助 Pull request。

此文件包含了一些前端開發的面試問題,來審查一個有潛力的面試者。這並不是建議你對同一個面試者問上所有的問 (那會花費好幾小時)。從列表中挑幾個題目,應該就夠幫助你審查面試者是否擁有你需要的技能。

注意: 請記住一點,很多問題都是隨情況而變化,能引發很多有趣的討論,比直接的標準答案更能讓你瞭解此人的能力。

目錄

  1. 常見問題
  2. HTML 問題
  3. CSS 問題
  4. JS 問題
  5. 測試問題
  6. 效能問題
  7. 網路問題
  8. 程式碼問題
  9. 有趣問題

參與貢獻

  1. 貢獻作者群
  2. 如何貢獻
  3. 版權宣告

常見問題:

  • 你昨天或這週學習了什麼?
  • 寫程式的哪部份最讓你感到很興奮或是有興趣?
  • 最近有無遇過不容易的技術性問題,又如何解決?
  • 當你開發Web應用程式或網站時,針對UI、安全性、效能、SEO、維護性,以及技術,你考量的點是什麼?
  • 說說你喜好的開發環境 (作業系統, 編輯器或 IDE, 瀏覽器, 開發工具 … 之類)。
  • 你最熟悉哪一套版本控制系統?
  • 你可以描述你在開發一個網站時的工作流程嗎?
  • 如果有 5 種不同的樣式表 (stylesheets),該如何整併到網站?
  • 你可以描述漸進增強 (progressive enhancement) 和優美退化 (graceful degradation) 間的差異嗎?
  • 你怎麼優化一個網站的靜態檔案 (assets) 和資源 (resources)?
  • 說出三種能加快網頁讀取速度的方法 (感覺上的速度或是真正的讀取時間)。
  • 如果你加入了一個專案,但是他們的程式碼用 tabs,但是你習慣用spaces (空白鍵),你會怎麼做?
  • 寫一個簡易的投影片頁面。
  • 你用什麼工具來測試你的程式碼效能?
  • 如果今年你能精通一項技術,那會是什麼?
  • 描述標準和製定標準機構的重要性?
  • 什麼是 Flash of Unstyled Content? 你怎麼避免 FOUC?
  • 解釋什麼是 ARIA 與 screenreaders,它們是怎麼樣讓網站使用更無障礙?
  • 解釋 CSS 動畫與 JavaScript 動畫之間的憂與劣。
  • CORS 是什麼,它解決了什麼問題?

HTML 問題:

  • doctype 做什麼用的?
  • standards mode 和 quirks mode 有什麼不同?
  • 使用 XHTML 有什麼限制??
  • 如果網頁使用 application/xhtml+xml 會有問題嗎?
  • 你怎麼做一個需要支持多國語言的網頁?
  • 當開發和設計一個多國語言網站時,有什麼需要小心的?
  • data- 屬性的好處在哪?
  • 考慮 HTML5 作為一個開放式的網站平台,組成 HTML5 的技術有哪些?
  • 請描述 cookies, sessionStoragelocalStorage 的不同?
  • 描述下列之間的不同 <script>, <script async> & <script defer>
  • 為什麼把 CSS <link> 放在 <head></head> 之間,與將 JS <script> 放在 </body> 之前是個較好的主意?有什麼例外情形嗎?
  • 什麼是漸進式呈現?
  • 有用過 HTML 樣板語言(template languages)嗎?

CSS 問題:

  • CSS 的 class 和 ID 兩者有何差異?
  • 描述 “resetting” 和 “normalizing” 的差異性?你會選擇哪一種,為什麼選擇它?
  • 描述 Floats 並解釋如何運作。
  • 描述 z-index 並且描述堆疊內容 (stacking context) 如何形成。
  • 解釋 BFC(Block Formatting Context) 是什麼、如何運作的。
  • 有哪些不同的 clearing 技術?哪個適用在哪種內容上?
  • 描述 CSS sprites, 你如何實作在網頁或網站上?
  • 你最喜愛的圖片取代技術是什麼?你什麼時候會用到?
  • 針對各瀏覽器制定的樣式表(browser-specific styling),你的做法是?
  • 你怎麼讓你的網頁支援有功能限制的瀏覽器?
    • 你會使用什麼樣的技術/流程 ?
  • 有什麼方法來隱藏網頁的內容? (只顯示在 screen readers)?
  • 你使用過 grid system 嗎?如果有的話?你較推薦哪個?
  • 你曾經實作 media queries 或是 mobile specific (手機規格的) layouts/CSS?
  • 你熟悉任何有關 SVG 嗎?
  • 你如何優化你的網頁以利於列印?
  • 在寫高效的 CSS 時,有什麼要注意的?
  • 使用 CSS preprocessors 的優點和缺點是什麼? (Sass, Compass, Stylus, LESS)
    • 描述你使用過的喜歡和不喜歡的 CSS preprocessors。
  • 你如何使用非標準字體來實作網頁設計?
  • 解釋瀏覽器如何按照 CSS selector 找到對應的 element。
  • 解釋你所認知的 box model,以及你如何在 CSS 告訴瀏覽器使用不同 box model 來呈現圖層?
  • 請解釋 * { box-sizing: border-box; }?並且說明使用它的好處?
  • 請列出您記憶中 display 屬性的全部值。
  • 請說明 inline 和 inline-block 的差異性?
  • 請說明 relative、fixed、absolute 和 static 元件差異性?
  • ‘C’ 在 CSS 中代表層疊。樣式的優先級(舉出範例)?如何利用這項功能?
  • 你目前有使用哪一套 CSS Framework 在開發環境或產品線上?
    • 如果有,請問是哪一套,並且描述如果改善或提昇 CSS Framework?
  • 請問你有使用過 CSS Flexbox 或 Grid specs?
  • 如何區分 responsive design 與 adaptive design 有何不同?
  • 你曾經使用過 retina graphics?如果有,是在什麼時機以及用了什麼技術?
  • 為什麼會用 translate() 代替 aboslute positioning,或者用 absolute positioning 代替 translate?為什麼要這樣?

JS 規格問題集:

  • 描述 event delegation。
  • 描述 this 如何在 JavaScript 中運作。
  • 描述 prototypal inheritance 如何運作?
  • 你如何測試你的 JavaScript?
  • AMD vs. CommonJS?
  • 解釋下列程式碼為什麼不是IIFE: function foo(){ }();. (Immediately Invoked Function Expression,立即函式)
    • 需要修改那裡使它成為IIFE?
  • nullundefinedundeclared變數之間有什麼差異?
    • 你如何檢查?
  • 什麼是 closure, 如何/為什麼使用?
  • anonymous functions 典型的使用時機?
  • 你如何架構你的程式碼? (module pattern, classical inheritance?)
  • host objects 和 native objects 有何不同?
  • function Person(){}var person = Person()var person = new Person()之間有何不同?
  • .call.apply有何不同?
  • 描述 Function.prototype.bind?
  • 你什麼時候優化你的程式?
  • 你什麼情況會使用 document.write()
    • 多數的廣告產生仍然使用 document.write() 雖然這樣用會令人皺眉
  • feature detection, feature inference, 和使用 UA string 有什麼不同?
  • 盡可能的詳述描述 AJAX。
  • 描述 JSONP 如何運作 (且為何它不是真正的 AJAX)。
  • 你是用過 JavaScript templating (樣板) ?
    • 如果有的話,你有用過哪些 libraries? (Mustache.js, Handlebars … 等)
  • 描述 “hoisting”
  • 描述 event bubbling.
  • “attribute” 和 “property” 的不同?
  • 為什麼擴展 JavaScript 內建的 objects 不是個好方法?
  • document load event 和 document ready event 有什麼不同?
  • ===== 有什麼不同?
  • 描述 JavaScript 的 same-origin policy (同源策略)
  • 實作如下程式:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ternary expression 怎麼來的, “Ternary” 的意思是什麼?
  • 什麼是 "use strict";? 使用他的優點和缺點是什麼?
  • 建個數到 100 的迴圈,當數字是 3 的倍數時輸出 “fizz”,當數字是 5 的倍數時輸出 "buzz",當數字同時是 35 的倍數時輸出 “fizzbuzz”
  • 為什麼保持網站的全域(global scope)原樣是一個好做法?
  • 為什麼要用 load 事件?有什麼缺點嗎?有其他選擇嗎?又為何選擇它?
  • 解釋什麼是 single page app,並怎麼讓它對 SEO 更友善。
  • 你對 Promises 的經驗?有用過相關的補強(ployfills)嗎?
  • Promises 之於 callbacks 的優劣?
  • JavaScript 轉譯器(transpiler)的優缺點?
  • 你用什麼工具或技巧來做 JavaScript debug?
  • 你都用什麼對 object properties 與 array 進行迭代?
  • 解釋 mutable 與 immutable objects 之間的不同。
    • 舉個 immutable 在 JavaScript 中例子?
    • immutability 的憂劣?
    • 如何達成 immutability?
  • 解釋同步(synchronous)與非同步(asynchronous)函式之間的差異。
  • Event loop 是什麼?
    • call stack 與 task queue 之間的不同?

測試問題集:

  • 寫測試有什麼好壞?
  • 都用什麼工具測試代碼是否能運作?
  • Unit test 與 functional/integration 間的不同?
  • 監控代碼風格 linting 工具的用途是?

效能問題集:

  • 你都用什麼工具尋找效能上的臭蟲?
  • 有哪些方法可改善網站在 scrolling 效能?
  • 解釋 layout, painting 與 compositing 的不同。(瀏覽器在 render 上的效能問題)

網路問題集:

  • 傳統上為什麼用多個域名來放置網站資源會比較好?
  • 請詳細描述當您在網址列打入網址開始到最後網頁呈現在螢幕前的整個流程。
  • Long-Polling, Websockets, SSE (Server-Sent Event) 之間有什麼差異?
  • 請描述下列 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • DNT
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 列出所有你知道的 HTTP 操作,並詳加解釋。

程式碼問題集:

問題: foo 的值是什麼?

var foo = 10 + '20';

問題:實作符合下面的函式

add(2, 5); // 7
add(2)(5); // 7

問題: 下面的 statement(陳述式) 會回傳什麼?

"i'm a lasagna hog".split("").reverse().join("");

問題: window.foo 的值是什麼?

( window.foo || ( window.foo = "bar" ) );

問題: 下面的兩個 alerts 的結果會是什麼?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

問題: 下面 foo.length 的值是什麼?

var foo = [];
foo.push(1);
foo.push(2);

問題:下面這段會印出什麼?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

有趣問題:

  • 你最近寫過最酷的專案是?
  • 你使用的開發工具中,你最喜歡的部分是什麼?
  • 你有任何的 pet projects (個人開發的小專案)? 什麼樣的?
  • 你最喜歡 IE 瀏覽器的什麼特點?
  • 喜歡咖啡嗎?

貢獻作者群:

此文件是由 @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym 於 2009 年共同發起。

目前已經超過 100 開發者 參與此專案.

\ No newline at end of file diff --git a/_site/translations/chinese/index.html b/_site/translations/chinese/index.html deleted file mode 100644 index d32ef1ec2..000000000 --- a/_site/translations/chinese/index.html +++ /dev/null @@ -1 +0,0 @@ -前端工作面试问题 ★ Front-end Job Interview Questions

前端工作面试问题

前端工作面试问题

本文包含了一些用于考查候选者的前端面试问题。不建议对单个候选者问及每个问题 (那需要好几个小时)。只要从列表里挑选一些,就能帮助你考查候选者是否具备所需要的技能。

备注: 这些问题中很多都是开放性的,可以引发有趣的讨论。这比直接的答案更能体现此人的能力。

目录

  1. 常见问题
  2. HTML 相关问题
  3. CSS 相关问题
  4. JS 相关问题
  5. 测试相关问题
  6. 效能相关问题
  7. 网络相关问题
  8. 代码相关问题
  9. 趣味问题

参与协作

  1. 贡献者
  2. 如何参与贡献
  3. 许可协议

常见问题:

  • 你在昨天/本周学到了什么?
  • 编写代码的哪些方面能够使你兴奋或感兴趣?
  • 你最近遇到过什么技术挑战?你是如何解决的?
  • 在制作一个网页应用或网站的过程中,你是如何考虑其 UI、安全性、高性能、SEO、可维护性以及技术因素的?
  • 请谈谈你喜欢的开发环境。
  • 你最熟悉哪一套版本控制系统?
  • 你能描述当你制作一个网页的工作流程吗?
  • 假若你有 5 个不同的样式文件 (stylesheets), 整合进网站的最好方式是?
  • 你能描述渐进增强 (progressive enhancement) 和优雅降级 (graceful degradation) 之间的不同吗?
  • 你如何对网站的文件和资源进行优化?
  • 浏览器同一时间可以从一个域名下载多少资源?
    • 有什么例外吗?
  • 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
  • 如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做?
  • 请写一个简单的幻灯效果页面。
  • 如果今年你打算熟练掌握一项新技术,那会是什么?
  • 请谈谈你对网页标准和标准制定机构重要性的理解。
  • 什么是 FOUC (无样式内容闪烁)?你如何来避免 FOUC?
  • 请解释什么是 ARIA 和屏幕阅读器 (screenreaders),以及如何使网站实现无障碍访问 (accessible)。
  • 请解释 CSS 动画和 JavaScript 动画的优缺点。
  • 什么是跨域资源共享 (CORS)?它用于解决什么问题?

HTML 相关问题:

  • doctype(文档类型) 的作用是什么?
  • 浏览器标准模式 (standards mode) 、几乎标准模式(almost standards mode)和怪异模式 (quirks mode) 之间的区别是什么?
  • HTML 和 XHTML 有什么区别?
  • 如果页面使用 ‘application/xhtml+xml’ 会有什么问题吗?
  • 如果网页内容需要支持多语言,你会怎么做?
  • 在设计和开发多语言网站时,有哪些问题你必须要考虑?
  • 使用 data- 属性的好处是什么?
  • 如果把 HTML5 看作做一个开放平台,那它的构建模块有哪些?
  • 请描述 cookiessessionStoragelocalStorage 的区别。
  • 请解释 <script><script async><script defer> 的区别。
  • 为什么通常推荐将 CSS <link> 放置在 <head></head> 之间,而将 JS <script> 放置在 </body> 之前?你知道有哪些例外吗?
  • 什么是渐进式渲染 (progressive rendering)?
  • 你用过哪些不同的 HTML 模板语言?

CSS 相关问题:

  • CSS 中类 (classes) 和 ID 的区别。
  • 请问 “resetting” 和 “normalizing” CSS 之间的区别?你会如何选择,为什么?
  • 请解释浮动 (Floats) 及其工作原理。
  • 描述z-index和叠加上下文是如何形成的。
  • 请描述 BFC(Block Formatting Context) 及其如何工作。
  • 列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。
  • 请解释 CSS sprites,以及你要如何在页面或网站中实现它。
  • 你最喜欢的图片替换方法是什么,你如何选择使用。
  • 你会如何解决特定浏览器的样式问题?
  • 如何为有功能限制的浏览器提供网页?
    • 你会使用哪些技术和处理方法?
  • 有哪些的隐藏内容的方法 (如果同时还要保证屏幕阅读器可用呢)?
  • 你用过栅格系统 (grid system) 吗?如果使用过,你最喜欢哪种?
  • 你用过媒体查询,或针对移动端的布局/CSS 吗?
  • 你熟悉 SVG 样式的书写吗?
  • 如何优化网页的打印样式?
  • 在书写高效 CSS 时会有哪些问题需要考虑?
  • 使用 CSS 预处理器的优缺点有哪些?
    • 请描述你曾经使用过的 CSS 预处理器的优缺点。
  • 如果设计中使用了非标准的字体,你该如何去实现?
  • 请解释浏览器是如何判断元素是否匹配某个 CSS 选择器?
  • 请描述伪元素 (pseudo-elements) 及其用途。
  • 请解释你对盒模型的理解,以及如何在 CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。
  • 请解释 * { box-sizing: border-box; } 的作用, 并且说明使用它有什么好处?
  • 请罗列出你所知道的 display 属性的全部值
  • 请解释 inline 和 inline-block 的区别?
  • 请解释 relative、fixed、absolute 和 static 元素的区别
  • CSS 中字母 ‘C’ 的意思是叠层 (Cascading)。请问在确定样式的过程中优先级是如何决定的 (请举例)?如何有效使用此系统?
  • 你在开发或生产环境中使用过哪些 CSS 框架?你觉得应该如何改善他们?
  • 请问你有尝试过 CSS Flexbox 或者 Grid 标准规格吗?
  • 为什么响应式设计 (responsive design) 和自适应设计 (adaptive design) 不同?
  • 你有兼容 retina 屏幕的经历吗?如果有,在什么地方使用了何种技术?
  • 请问为何要使用 translate() 而非 absolute positioning,或反之的理由?为什么?

JS 相关问题:

  • 请解释事件代理 (event delegation)。
  • 请解释 JavaScript 中 this 是如何工作的。
  • 请解释原型继承 (prototypal inheritance) 的原理。
  • 你怎么看 AMD vs. CommonJS?
  • 请解释为什么接下来这段代码不是 IIFE (立即调用的函数表达式):function foo(){ }();.
    • 要做哪些改动使它变成 IIFE?
  • 描述以下变量的区别:nullundefinedundeclared
    • 该如何检测它们?
  • 什么是闭包 (closure),如何使用它,为什么要使用它?
  • 请举出一个匿名函数的典型用例?
  • 你是如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
  • 请指出 JavaScript 宿主对象 (host objects) 和原生对象 (native objects) 的区别?
  • 请指出以下代码的区别:function Person(){}var person = Person()var person = new Person()
  • .call.apply 的区别是什么?
  • 请解释 Function.prototype.bind
  • 在什么时候你会使用 document.write()
  • 请指出浏览器特性检测,特性推断和浏览器 UA 字符串嗅探的区别?
  • 请尽可能详尽的解释 Ajax 的工作原理。
  • 使用 Ajax 都有哪些优劣?
  • 请解释 JSONP 的工作原理,以及它为什么不是真正的 Ajax。
  • 你使用过 JavaScript 模板系统吗?
    • 如有使用过,请谈谈你都使用过哪些库?
  • 请解释变量声明提升 (hoisting)。
  • 请描述事件冒泡机制 (event bubbling)。
  • “attribute” 和 “property” 的区别是什么?
  • 为什么扩展 JavaScript 内置对象不是好的做法?
  • 请指出 document load 和 document DOMContentLoaded 两个事件的区别。
  • ===== 有什么不同?
  • 请解释 JavaScript 的同源策略 (same-origin policy)。
  • 如何实现下列代码:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • 什么是三元表达式 (Ternary expression)?“三元 (Ternary)” 表示什么意思?
  • 什么是 "use strict"; ? 使用它的好处和坏处分别是什么?
  • 请实现一个遍历至 100 的 for loop 循环,在能被 3 整除时输出 “fizz”,在能被 5 整除时输出 “buzz”,在能同时被 35 整除时输出 “fizzbuzz”
  • 为何通常会认为保留网站现有的全局作用域 (global scope) 不去改变它,是较好的选择?
  • 为何你会使用 load 之类的事件 (event)?此事件有缺点吗?你是否知道其他替代品,以及为何使用它们?
  • 请解释什么是单页应用 (single page app), 以及如何使其对搜索引擎友好 (SEO-friendly)。
  • 你使用过 Promises 及其 polyfills 吗? 请写出 Promise 的基本用法(ES6)。
  • 使用 Promises 而非回调 (callbacks) 优缺点是什么?
  • 使用一种可以编译成 JavaScript 的语言来写 JavaScript 代码有哪些优缺点?
  • 你使用哪些工具和技术来调试 JavaScript 代码?
  • 你会使用怎样的语言结构来遍历对象属性 (object properties) 和数组内容?
  • 请解释可变 (mutable) 和不变 (immutable) 对象的区别。
    • 请举出 JavaScript 中一个不变性对象 (immutable object) 的例子?
    • 不变性 (immutability) 有哪些优缺点?
    • 如何用你自己的代码来实现不变性 (immutability)?
  • 请解释同步 (synchronous) 和异步 (asynchronous) 函数的区别。
  • 什么是事件循环 (event loop)?
    • 请问调用栈 (call stack) 和任务队列 (task queue) 的区别是什么?
  • 解释 function foo() {}var foo = function() {} 用法的区别

测试相关问题:

  • 对代码进行测试的有什么优缺点?
  • 你会用什么工具测试你的代码功能?
  • 单元测试与功能/集成测试的区别是什么?
  • 代码风格 linting 工具的作用是什么?

效能相关问题:

  • 你会用什么工具来查找代码中的性能问题?
  • 你会用什么方式来增强网站的页面滚动效能?
  • 请解释 layout、painting 和 compositing 的区别。

网络相关问题:

  • 为什么传统上利用多个域名来提供网站资源会更有效?
  • 请尽可能完整得描述从输入 URL 到整个网页加载完毕及显示在屏幕上的整个流程。
  • Long-Polling、Websockets 和 Server-Sent Event 之间有什么区别?
  • 请描述以下 request 和 response headers:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • 什么是 HTTP method?请罗列出你所知道的所有 HTTP method,并给出解释。
  • 请解释 HTTP status 301 与 302 的区别?

代码相关的问题:

问题:foo的值是什么?

var foo = 10 + '20';

问题:如何实现以下函数?

add(2, 5); // 7
add(2)(5); // 7

问题:下面的语句的返回值是什么?

"i'm a lasagna hog".split("").reverse().join("");

问题:window.foo的值是什么?

( window.foo || ( window.foo = "bar" ) );

问题:下面两个 alert 的结果是什么?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

问题:foo.length的值是什么?

var foo = [];
foo.push(1);
foo.push(2);

问题:foo.x的值是什么?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

问题:下面代码的输出是什么?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

趣味问题:

  • 你最近写过什么的很酷的项目吗?
  • 在你使用的开发工具中,最喜欢哪些方面?
  • 谁使你踏足了前端开发领域?
  • 你有什么业余项目吗?是哪种类型的?
  • 你最爱的 IE 特性是什么?
  • 你对咖啡有没有什么喜好?

贡献者:

本文档始于 2009 年,是以下作者的合作成果:@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym

时至今日,文档已经融入超过 100 位开发者的贡献。

\ No newline at end of file diff --git a/_site/translations/croatian/index.html b/_site/translations/croatian/index.html deleted file mode 100644 index cb563e2fb..000000000 --- a/_site/translations/croatian/index.html +++ /dev/null @@ -1 +0,0 @@ -Intervju za posao Front-end Developera ★ Front-end Job Interview Questions

Intervju za posao Front-end Developera

Intervju za posao Front-end Developera

@version 2.0.0

Ovaj repozitorij sadrži brojna pitanja za intervju iz područja front-end-a koja možete koristiti u procjeni potencijalnih kandidata. Nikako se ne preporuča da upotrijebite svako ovdje navedeno pitanje za jednog kandidata (to bi trajalo satima). Odabir nekoliko ciljanih pitanja s ove liste bi Vam trebao pomoći u odabiru.

Rebecca Murphey Baseline For Front-End Developers je prilično dobro štivo za pročitati prije samog razgovora.

Napomena: Imajte na umu da su mnoga ovdje navedena pitanja otvorenog tipa i mogla bi voditi u zanimljive rasprave koje govore više o sposobnostima osobe nego pitanja sa direktnim odgovorima.

Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je u originalu pokrenuo Paul Irish (@paul_irish) i kojoj su pridonijele sljedeće osobe:

Općenita pitanja:

  • Opišite Vašu preferiranu razvojnu okolinu. (OS, Editor, Broseri, Alati itd.)
  • Možete li opisati Vaš postupak izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektiranje mogućnosti browsera
  • Objasnite što je to “Semantički HTML”.
  • Kako biste optimirali infrastrukturu i resurse web stranice?
    • Traženje više rješenja poput:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korištenje CDN-a
      • Međuspremanje (Caching)
      • itd.
  • Zašto je sadržaj bolje poslužiti sa više domena?
    • Koliko resursa preglednik skida sa jedne domene odjednom?
  • Navedite tri načina za smanjivanje vremena učitavanja stranice. (primijećeno ili stvarno vrijeme učitavanje)
  • Ako bi došli na projekt gdje se koriste tabovi a Vi koristite razmake, što biste učinili?
    • Npr. preporučanje korištenja EditorConfig-a (http://editorconfig.org)
    • Konformacija postojećoj praksi (zadržavanje konzistentnosti)
    • korištenje :retab! naredbe
  • Napravite jednostavnu stranicu za držanje prezentacije
    • Bonus bodovi za nekorištenje JavaScript-a.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kad bi mogli odabrati jednu tehologiju koju ćete naučiti ove godine, što bi to bila?
  • Objasnite važnost standarda i tijela za standardizaciju
  • Što je FOUC? Kako biste izbjegli FOUC?

Pitanja za HTML:

  • Što radi doctype?
  • Koja je razlika između standardnog i dosjetljivog (quirks) modusa?
  • Koja su ograničenja kod posluživanja XHTML stranica?
    • Postoje li problemi kod posluživanja stranica sa application/xhtml+xml?
  • Kako biste poslužili stranicu sa sadržajem na više jezika?
    • Na što morate paziti kod dizajniranja ili razvoja za višejezičnu stranicu?
  • Za što se koriste data- atributi?
  • Razmotrite HTML5 kao platformu otvorenog web-a. Koji su gradivni elementi HTML5-ice?
  • Pojasnite razliku između kolačića, podataka sjednice (sessionStorage) i lokalne pohrane.

Pitanja za JavaScript:

  • Objasnite delegaciju događaja.
  • Objasnite kako se u Javascriptu koristi this
  • Pojasnite prototipno nasljeđivanje
  • Kako testirate JavaScript?
  • AMD u usporedbi sa CommonJS-om?
  • Što je to hash tabela?
  • Što su undefined i undeclared varijable?
  • Što je closure, kako i zašto se koristi?
    • Vaš omiljeni način njihovog kreiranja? argyle (samo kod IIFE-a)
  • Koja je uobičajena primjena za anonimnu funkciju?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za spomen čistih imenskih prostora (namespacing)
    • Što učiniti ako moduli nemaju imenske prostore
  • Kako organizirate kod? (module pattern, klasično nasljeđivanje?)
  • Koja je razlika između host i native objekta?
  • Razlika između:
function Person(){} var person = Person() var person = new Person()
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kad optimirate Vaš kod?
  • Možete li objasniti nasljeđivanje u JavaScriptu?
  • Kada biste koristili document.write()?
    • Većina generiranih oglasa još uvijek koristi document.write() premda se to zamjera.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korištenja UA string-a
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i zašto nije pravi AJAX)
  • Da li ste ikad koristili JavaScript predloške (templating)?
    • Ako da, koje ste biblioteke koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi došli do parametra iz URL adrese prozora preglednika.
  • Objasnite politiku jednog izvorišta gledano sa stajališta JavaScript-e.
  • Opišite načine nasljeđivanja u JavaScript-u.
  • Popravite:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opišite strategiju za memoizaciju (izbjegavanje ponovljenog računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Što je arnost funkcije?
  • Što je "use strict";? Koje su mane, koje prednosti?

JavaScript primjeri koda:

~~3.14

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: 3

"Ovo je proba".split("").reverse().join("");

Pitanje: Koja je povratna vrijednost gornjeg izraza?
Odgovor: "aborp ej ovO"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koju vrijednost ima window.foo?
Odgovor: "bar"
Samo ako window.foo nije istinit u suprotnom će zadržati vrijednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Kako će izgledati obavijesti iz gornjeg primjera?
Odgovor: “Hello World” nakon toga ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Pitanje: Koja je vrijednost za foo.length?
**Odgovor: undefined

Pitanja za jQuery:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korištenja jQuery-a poznajete?
  • Što radi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u imenski prostor (namespace)?
  • Navedite četiri vrijednosti koje možete poslati jQuery metodi.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Što je red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor:
$(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Pitanja za CSS:

  • Objasnite što je to “reset” CSS i zašto je koristan.
  • Opišite što su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i koji su konteksti prikladni za njihovu primjenu?
  • Pojasnite CSS sprite-ove i kako biste ih izveli na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamjene slike i kada ih koristite?
  • CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako poslužujete sadržaj za preglednike (browser-e) slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (ostaju dostupni samo screen reader-ima)?
  • Da li ste ikad koristili grid system, ako jeste koji preferirate?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifičan za mobile?
  • Imate li iskustva u stiliziranju sa SVG-om?
  • Kako optimirate stranice za ispis?
  • Koje su “kvake” za pisanje učinkovitog CSS-a?
  • Koje su prednosti/nedostatci korištenja CSS preprocessore? (SASS, Compass, Stylus, LESS)
    • Ako da, opišite što vam se (ne)sviđa kod CSS preprocessora koje ste koristili.
  • Kako bi izradili preliminarni web dizajn koji ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.

Opcionalna zabavna pitanja:

  • Koja je najbolja stvar koju ste isprogramirali, na što ste najviše ponosni?
  • Koji su Vam omiljena svojstva razvojnih alata koje koristite?
  • Imate li kakve omiljene vlastite projekte? Koje?
  • Koja Vam je omiljena mogućnost Internet Explorer-a?
\ No newline at end of file diff --git a/_site/translations/czech/index.html b/_site/translations/czech/index.html deleted file mode 100644 index 4b3136cb8..000000000 --- a/_site/translations/czech/index.html +++ /dev/null @@ -1 +0,0 @@ -Front-end vývojář – otázky k pohovoru ★ Front-end Job Interview Questions

Front-end vývojář – otázky k pohovoru

Front-end vývojář – otázky k pohovoru

Tento repozitář obsahuje řadu otázek, které můžete směle položit u pohovoru kandidátovi na pozici front-end vývojář a ověřit si tak jeho znalosti v tomto oboru. Není zamýšleno položit všechny tyto otázky (jejich korektní zodpovězení by trvalo hodiny), leč pouze určitou část vyhovující vašim potřebám.

Za přečtení stojí také:

Poznámka: Mějte na paměti, že tyto otázky mají vést spíše k diskusi na dané téma a prozradit tak něco více o schopnostech daného vývojáře než aby byly zodpovězeny jedním slovem nebo větou.

Obsah

  1. Původní přispěvovatelé
  2. Obecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky

Původní přispěvovatelé:

Většina otázek byla převzata z oksoclap původně vytvořeného Paulem Irishem (@paul_irish) a následně doplněna těmito osobami:

[⬆]

Obecné otázky:

  • Co jste se naučili včera/minulý týden nového?
  • Co Vás vzrušuje nebo zajímá na kódování?
  • Povězte něco o Vašem oblíbeném vývojovém prostředí (operační systém, editor, prohlížeč, nástroje, atd.).
  • Popište jak postupujete při vytváření nové webové stránky.
  • Dokážete vysvětlit rozdíl mezi pozvolným degradováním (graceful degradation) a postupným vylepšováním(progressive enhancement)?
    • Body navíc za popsání detekce pokročilé funkcionality
  • Vysvětlete pojem “sémantické HTML”.
  • Jak byste optimalizovali zdroje (obrázky, JS, CSS, atd.) webové stránky?
    • K dispozici je celá řada optimalizací např.:
      • Spojování souborů
      • Minifikace souborů
      • CDN hostování
      • Caching
      • atd.
  • Proč je lepší posílat zdroje webové stránky z více domén?
    • Kolik souborů může z dané domény stahovat prohlížeš najednou?
  • Vyjmenujte tři způsoby jak snížit dobu nahrávání webové stránky (vnímanou nebo skutečnou dobu nahrávání)
  • Pokud naskočíte do projektu, kde se místo odsazování tabulátory používají mezery, co uděláte?
    • Navrhnutí, že projekt by mohl využívat něco jako EditorConfig (http://editorconfig.org)
    • Přízpůsobení se konvenci (ale zústat konzistentní).
    • issue :retab! command
  • Napište jednoduchou stránku se slideshow.
    • Body navíc pokud nepoužívá JS.
  • Jaké nástroje používáte pro testování rychlosti Vašeho kódu?
    • Profiler, JSPerf, Dromaeo
  • Pokud byste se chtěl/chtěla letos naučit jednu novou technologii, která by to byla?
  • Vysvětlete důležitost standardů a standardizačních orgánů
  • Co to je FOUC? Jak je možné se vyhnout FOUC?

[⬆]

HTML otázky:

  • Co dělá doctype ?
  • Jaký je rozdíl mezi standardním módem a quirks módem?
  • Jaká jsou omezení při poskytování XHTML stránek?
    • Existuje nějaký problém při poskytování stránek jako application/xhtml+xml?
  • Jak poskytujete stránku s vícejazyčným obsahem?
    • Na co všechno si musíte dát pozor při vytváření vícejazyčné stránky?
  • K čemu je dobrý atribut data-?
  • Uvažujte o HTML5 jako o otevření platormě. Jaké jsou základní stavební kameny HTML5?
  • Popište rozdíl mezi cookies, sessionStorage a localStorage.

[⬆]

CSS otázky:

  • Popište co děla a k čemu je dobrý “reset” CSS soubor.
  • Popište obtékání (floats) a jak funguje.
  • Popiště různé techniky pro zastavení obtékání (clear fixing) a řekněte, které se hodí v kterém kontextu.
  • Vysvětlete, co to jsou CSS sprites a jak byste je implementovali.
  • Jaká je Vaše oblíbená technika pro nahrazování obrázků a kterou a kdy používáte?
  • CSS property hacks, kondicionální vkládání .css souborů nebo něco dalšího?
  • Jak poskytujete stránky pro funkcionálně/vlastnostmi omezený prohlížeč?
    • Jakou techniku/proces používáte?
  • Jaké jsou způsoby pro zneviditelní obsahu (a zachování jeho dostupnosti pro čtečky)?
  • Použili jste někdy grid system a pokud ano, který upřednostňujete?
  • Použili jset někdy mediální selektor (media query) nebo specifický layout/CSS pro mobilní zařízení?
  • Máte nějaké zkušenosti s vytvářením SVG?
  • Jak optimalizujete stránky pro tisk?
  • Jaké jsou zásady pro psaní efektnivního CSS?
  • Jaké jsou výhody/nevýhody použítí CSS preprocesorů (SASS, Compass, Stylus, LESS)?
    • Popiště, co se Vám na CSS preprocesorech, které jste použili, líbí/nelíbí.
  • Jak byste implementovali návrh webové stránky, která používá nestandardní řezy písma?
    • Webfonts (služby typu: Google Webfonts, Typekit etc.)
  • Vysvětlete jak prohlížeč určuje, který element odpovída CSS selektoru.
  • Vysvětlete Vaše chápání box modelu a jak řeknete pomocí CSS prohlížeči, aby Váš layout vykreslil v odlišném box modelu

[⬆]

JS otázky:

  • Vysvětlete delegaci událostí.
  • Vysvětlete jak funguje this v JavaScriptu.
  • Vysvětlete jak funguje funguje prototypová dědičnost.
  • Jak testujete JavaScript?
  • AMD vs. CommonJS?
  • Co je hashovací tabulka?
  • Vysvětlete proč následující volání nebude fungovat jako IIFE: function foo(){ }();.
    • Co musíte změnit, aby volání zafungovalo jako IIFE?
  • Vysvětlete rozdíl mezi proměnou, která je null, nedefinovaná nebo nedeklarovaná?
    • Jakým způsobem ověříte jednotlivé stavy proměnné?
  • Co to je closure a jak/proč bychom je měli používat?
  • Jaké je typické využití pro anonymní funkce?
  • Vysvětlete “JavaScript module pattern” a kdybyste ho měli použít.
    • Body navíc za zmínku o čistých jmených prostorech.
    • Co když moduly nemají jmené prostory?
  • Jak organizujete Váš kód? Module pattern, klasická dědičn5ost?
  • Jaký je rozdíl mezi nativními a hostitelskými objekty?
  • Rozdíl mezi:
function Person(){} var person = Person() var person = new Person()
  • Jaký je rozdíl mezi .call a .apply?
  • Jaký je rozdíl mezi undefined and null?
  • Vysvětlete Function.prototype.bind.
  • Kdy optimalizujete Váš kód?
  • Vysvětlete jak funguje dědičnost v JavaScriptu.
  • Kdy byste použili document.write()?
    • Většina generovaných reklam stále používá tento přístup i přesto, že je to dlouhodobě odsuzováno.
  • Jaký je rozdíl mezi detekcí vlastností, odvození vlastností a použití UA řetězce?
  • Vysvětlete AJAX co nejpodrobněji to jde.
  • Vysvětlete jak funguje JSONP (a proč to není opravdový AJAX).
  • Použili jste někdy JavaScriptové šablony?
    • Pokud ano, které knihovny jste použili (Mustache.js, Handlebars etc.)?
  • Vysvětlete “hoisting”.
  • Vysvětlete probublávání událostí.
  • Jaký je rozdíl mezi atributem (attribute) a vlastností (property)?
  • Proč není dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Proč je dobrý nápad rozšiřovat nativní JavaScriptové objekty?
  • Jaký je rozdíl mezi událostmi document load a document ready?
  • Jaký je rozdíl mezi == a ===?
  • Vysvětlete jakým způsobem získáte parametr z URL zadaného v okně prohlížeče.
  • Vysvětlete JavaScriptové pravidlo stejného původu (same-origin policy).
  • Popište přístupy k dědění v JavaScriptu.
  • Následující kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Popište strategie pro memorizaci (odstranění opakovaných výpočtů) v JavaScriptu.
  • Proč se říká ternární operátor, co označuje slovo ternární?
  • Co je označováné jako “arity” funkce?
  • Co znamená "use strict";? Jaké jsou výhody a nevýhody použití?

[⬆]

jQuery otázky:

  • Vysvětlete řetězení (chaining).
  • Vysvětlete odkládání (deferreds).
  • Jaké znáte a umíte implementovat optimalizace speciálně pro jQuery?
  • Co dělá .end()?
  • Jak a proč byste váš event handler opatřili jmeným prostorem?
  • Jmenujte čtyři různé typy hodnot, které můžete předat jako vstupní parametr metod v jQuery.
    • Selektor (řetězec), HTML (řetězec), Callback (funkce), HTMLElement, object, pole, pole elementu, jQuery Object, atd.
  • Co to je fronta efektů (nebo fx fronta)?
  • Jaký je rozdíl mezi .get(), [] a .eq()?
  • Jaký je rozdíl mezi .bind(), .live() a .delegate()?
  • Jaký je rozdíl mezi $ a $.fn? Nebo jenom, co je $.fn?
  • Zoptimalizujte tento selektor:
$(".foo div#bar:eq(0)")
  • Jaký je rozdíl mezi ‘delegate()’ a ‘live()’?

[⬆]

Otázky z kódu:

~~3.14

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: 3

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Jakou hodnotu vrátí uvedený výraz?
Odpověď: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Otázka: Jakou hodnotu má window.foo?
Odpověď: "bar"
pouze pokud window.foo bylo false, jinak vrátí svojí hodnotu.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Otázka: Co zobrazí uvedené dva alerty?
Odpověď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Jaká je hodnota foo.length?
Odpověď: 2

var foo = {};
foo.bar = 'hello';

Otázka: Jaká je hodnota foo.length?
Odpověď: undefined

[⬆]

Zábavné otázky:

  • Jaká je nejúžasnější věc, kterou jste kdy nakódovali, nebo na kterou jste nejvíce pyšní?
  • Jaké jsou Vaše oblíbené části vývojářských nástrojů, které používáte?
  • Máte nějaký vlastní hobby projekt?
  • Jaká je Vaše oblíbená vlastnost Internet Exploreru?

[⬆]

\ No newline at end of file diff --git a/_site/translations/danish/index.html b/_site/translations/danish/index.html deleted file mode 100644 index 7f259b7ca..000000000 --- a/_site/translations/danish/index.html +++ /dev/null @@ -1 +0,0 @@ -Front-end Job Interview Spørgsmål ★ Front-end Job Interview Questions

Front-end Job Interview Spørgsmål

Front-end Job Interview Spørgsmål

@version 1.0

Bemærk: Dette arkiv indeholder et udvalg af spørgsmål, der kan bruges til samtale til stillingen som front-end udvikler. Det kan på ingen måde anbefales at bruge hver eneste spørgsmål på samme kandidat da det ville tage flere timer.

Husk på, at mange af disse spørgsmål er åbne og kan føre til interessante diskussioner, der fortæller dig mere om personens evner end et klart svar ville.

####Originale bidragydere

Bemærk: Størstedelen af spørgsmålene blev plukket fra en tråd skabt og bidraget af følgende personer:

Generelle spørgsmål:

  • Er du på Twitter?
    • Hvis ja, hvem følger du?
  • Er du på GitHub?
    • Hvis ja, hvilke repoer følger du?
  • Hvilke blogs følger du?
  • Hvilke version kontrolsystemer har du brugt (Git, SVN osv.)?
  • Hvad er dit foretrukne udviklingsmiljø? (OS, Editor, Browsere, Tools osv.)
  • Kan du beskrive din arbejdsgang, når du bygger en webside?
  • Kan du beskrive forskellen mellem ‘progressive enhancement’ og ‘graceful degradation’?
    • Bonuspoint beskrive ‘feature detection’
  • Forklar hvad “Semantisk HTML” betyder.
  • Hvilken browser udvikler du primært i og hvad hvilke udviklingsværktøjer bruger du?
  • Hvordan vil du optimere et websites ressourcer?
    • Du leder efter en række løsninger, som kan omfatte:
      • Fil sammenkædning (File concatenation)
      • Fil minification
      • CDN Hosted
      • Caching
      • Osv.
  • Hvorfor er det bedre at have flere domæner som man serverer sit website fra?
    • Hvor mange ressourcer vil en browser hente ad gangen fra et givent domæne?
  • Navn 3 måder at mindske et websites belastning. (formodet eller faktisk lade tid)
  • Hvis du hoppede på et projekt, og de brugte tabulering og du brugte mellemrum, hvad ville du gøre?
    • Foreslå projektet at benytte noget lignende EditorConfig (http://editorconfig.org)
    • Følge konventioner (være consistent)
    • ‘Indføre :retab! kommandoen’
  • Skriv et simpelt billed slideshow side
    • Bonuspoint, hvis det ikke bruger JS.
  • Hvilke værktøjer bruger du til at teste din kode effektivitet?
  • Hvis du kunne mestre en teknologi i år, hvad ville det så være?
  • Forklare vigtigheden af standarder.
  • Hvad er FOUC? Hvordan undgår man FOUC?

HTML-specifikke spørgsmål:

  • Hvad er et doctype gøre, og hvor mange kan du nævne?
  • Hvad er forskellen mellem standards mode og quirks mode?
  • Hvilke Begrænsninger er der med XHTML-sider?
    • Er der nogen problemer med at serverer sider som application/xhtml+xml?
  • Hvordan du serverer man en side med indhold på flere sprog?
    • Hvilken slags ting skal du være opmærksom på, når der skal designes eller udviklings til flersprogede sites?
  • Kan du bruge XHTML syntaks i HTML5?
  • Hvordan bruger du XML i HTML5?
  • Hvad er data- attributter godt for?
  • Hvad er indholds modeller i HTML4 og er de anderledes i HTML5?
  • Tænk på HTML5 som en åben web-platform. Hvad er byggestenene i HTML5?
  • Consider HTML5 as an open web platform. What are the building blocks of HTML5?
  • Beskriv forskellen mellem cookies, sessionStorage og localStorage.

JS-specifikke spørgsmål

  • Hvilke JavaScript-biblioteker har du brugt?
  • Har du nogensinde kigget på kildekoden til bibliotekerne eller frameworks som du bruger?
  • Hvordan er JavaScript forskellig fra Java?
  • Hvad er en Hashtable?
  • Hvad er undefined og undeclared variabler?
  • Hvad er en closure, og hvordan/hvorfor ville du bruge en?
    • Din yndlings mønster bruges til at skabe dem? argyle (Gælder kun for IIFEs)
  • En typisk eksempel på brug af anonyme funktioner?
  • Forklare “JavaScript module pattern”, og hvornår du skal bruge det.
    • Bonuspoint for at nævne ren namespacing.
    • Hvad hvis dine moduler er uden namespace?
  • Hvordan tilrettelægger du din kode? (module pattern, classical inheritance?)
  • Hvad er forskellen mellem ‘host objects’ og ‘native objects’?
  • Forskel mellem:
function Person(){} var person = Person() var person = new Person()
  • Hvad er forskellen mellem .call og .apply?
  • Forklare Function.prototype.bind?
  • Hvornår skal du optimere din kode?
  • Kan du forklare, hvordan arv(inheritance) virker i JavaScript?
  • Hvornår vil du bruge document.write()?
    • De fleste annoncer stadig genereres ved brug af document.write() selvom dets anvendelse er ildeset.
  • Hvad er forskellen mellem feature detection, feature inference, og brug af UA string
  • Forklar AJAX så udførligt som muligt.
  • Forklare hvordan JSONP virker (og hvordan det egentlig ikke er AJAX)
  • Har du nogensinde brugt JavaScript templating?
    • Hvis ja, hvilke biblioteker har du brugt (Mustache.js, Handlebars osv.)
  • Forklare “hoisting”.
  • Forklare “event bubbling”.
  • Hvad er forskellen mellem en “attribute” og en “property”?
  • Hvorfor er det ikke en god idé Udvide indbygget JavaScript-objekter?
  • Hvorfor er Udvidelse af ins en god idé?
  • Forskel mellem document load event og document ready event?
  • Hvad er forskellen mellem == og ===?
  • Forklar, hvordan du ville få en query string parameter fra browservinduets URL.
  • Forklare den samme oprindelse politik med hensyn til JavaScript.
  • Forklare event delegation.
  • Beskrive arv mønstre(inheritance patterns) i JavaScript.
  • Få det til at virke:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Beskrive en strategi for memoization (undgå beregning gentagelser) i JavaScript.
  • Hvorfor hedder det en Ternary erklæring, hvad betyder ordet “Ternary”?
  • Hvad er arity af en funktion?
  • Hvad er "use strict";? hvad er fordelene og ulemperne ved at bruge det?

JS-kode eksempler:

~~3.14

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: 3

"i'm a lasagna hog".split("").reverse().join("");

Spørgsmål: Hvilken værdi er returneret fra ovenstående?
Svar: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Spørgsmål: Hvad er værdien af window.foo?
Svar: "bar"
Hvis window.foo er falsk ellers vil det bevare sin værdi.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Spørgsmål: Hvad er resultatet af de to ovennævnte alerts?
** Svar: “Hello World” & ReferenceError: bar er ikke defineret **

var foo = [];
foo.push(1);
foo.push(2);

Spørgsmål: Hvad er værdien af foo.length?
**Svar: 2

var foo = {};
foo.bar = 'hello';

Spørgsmål: Hvad er værdien af foo.length?
**Svar: undefined

foo = foo||bar

Spørgsmål: Hvad betyder?
**Svar: if(!foo) foo = bar

foo>>1

Spørgsmål: Hvad betyder?
**Svar: Math.floor(foo/2)

foo|0
foo+.5|0

Spørgsmål: Hvad betyder?
**Svar: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Spørgsmål: Hvordan får man antallet af parametre?
**Svar: foo.length //dette eksempel er 3

jQuery-specifikke spørgsmål:

  • Forklar “kæde”(chaining).
  • Forklar “deferreds”.
  • Nævn nogle jQuery specifikke optimeringer du kan implementere?
  • Hvad betyder .end() gøre?
  • Hvordan og hvorfor, ville du namespace en bundet event handler?
  • Navn 4 forskellige værdier, du kan give en jQuery metoden.
    • Selector (string), HTML (string), Callback (funktion), HTMLElement, objekt, array, element array, jQuery objekt osv.
  • Hvad er effects (eller fx) queue?
  • Hvad er forskellen mellem .get(), [], og .eq()?
  • Hvad er forskellen mellem .bind(), .live(), og .delegate()?
  • Hvad er forskellen mellem $ og $.fn? Eller hvad er $.fn.
  • Optimer denne selector:
$(".foo div#bar:eq(0)")
  • Forskel mellem delegate() og live()?

CSS-specifikke spørgsmål:

  • Beskriv hvad en “reset” CSS-fil laver, og hvordan den nyttigt.
  • Beskrive Floats og hvordan de virker.
  • Hvilken clearing teknikker findes der og hvilke er passende for hvilken sammenhæng?
  • Forklar CSS sprites, og hvordan du vil indføre dem på en side eller et websted.
  • Hvad er din yndlings billed udskiftning(image replacement) teknik og som bruger du?
  • CSS property hacks, konditionel inkluderet. css filer, eller … noget andet?
  • Hvordan serverer du dine sider for funktionen begrænset browsere?
    • Hvilke teknikker/processer bruger du?
  • Hvilke forskellige måder findes der for at visuelt skjule indhold (og gør det kun tilgængelig for skærmlæsere)?
  • Har du nogensinde brugt et grid system, og hvis ja, hvad foretrækker du?
  • Har du brugt eller implementeret media queries eller mobile specifikke layouts/CSS?
  • Noget kendskab til styling af SVG?
  • Hvordan optimerer du dine websider til tryk?
  • Hvad skal der til for at skrive effektiv CSS?
  • Bruger du CSS præprocessorer? (SASS, Compass, Stylus, LESS)
    • Hvis ja, beskriv, hvad du kan lide og ikke lide ved CSS præprocessorer som du har brugt.
  • Hvordan vil du implementere en web-design, der ikke bruger standard skrifttyper?
    • Webfonts (skrifttype tjenester som: Google Webfonts, Typekit osv.)
  • Forklare hvordan en browser afgør, hvilke elementer matcher en CSS selector?

Valgfri sjove spørgsmål:

  • Hvad er den fedeste ting, du nogensinde har kodet, hvad er du mest stolt af?
  • Kender du HTML5 bandetegn?
  • Er du nu, eller har du nogensinde været på en båd.
  • Hvad er dine foretrukne dele om de udviklere værktøjer som du bruger?
  • Har du nogen hygge projekter? Hvilken slags?
  • Forklare betydningen af ​​"cornify".
  • På et stykke papir, skriv ned bogstaverne A B C D E lodret. Nu sæt dem i faldende rækkefølge uden at skrive én linje kode.
    • Vent og se, om de vender papiret på hovedet
  • Pirate eller Ninja?
    • Bonus hvis det er en kombination og en god grund blev givet (+2 for zombie abe pirat ninjas)
  • Hvad ville du gøre, hvis ikke Webudvikling?
  • Hvor i verden er Carmen Sandiego?
  • Where in the world is Carmen Sandiego?
    • Tip: deres svar er altid forkert
  • Hvad er dit foretrukne funktion i Internet Explorer?
  • Færdiggør denne sætning: Brendan Eich og Doug Crockford er __________ af javascript.
  • JQuery: et godt bibliotek eller den bedste bibliotek? Diskuter.
  • http://www.w3schools.com/ eller http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/dutch/index.html b/_site/translations/dutch/index.html deleted file mode 100644 index 64e2a2816..000000000 --- a/_site/translations/dutch/index.html +++ /dev/null @@ -1 +0,0 @@ -Front-end interview vragen ★ Front-end Job Interview Questions

Front-end interview vragen

Front-end interview vragen

@version 2.0.0

Deze repo bevat een aantal front-end interview vragen die je kunnen helpen om ervaren kandidaten te vinden. Het is uiteraard niet aangeraden om elke vraag aan een sollicitant te stellen (dat zou ook uren in beslag nemen). Maar als je er een paar gebruikt is het mogelijk om het gewenste skillniveau te vinden dat je zoekt.

Rebecca Murphey’s Baseline For Front-End Developers is ook een geweldige bron om je in te lezen voordat je aan een interview begint.

Let op: Houd er rekening mee dat deze vragen meestal een open einde hebben en dat zou kunnen leiden tot interessante discussies die je meer over de persoon zelf kan vertellen dan een standaard antwoord.

####Originele Bijdragers

De meerderheid van deze vragen is geplukt uit een oksoclap thread origineel gemaakt door Paul Irish (@paul_irish) en aan bijgedragen door de volgende individuen:

Algemene Vragen:

  • Praat over je favoriete ontwikkelomgeving. (OS, Editor, Browsers, Tools etc.)
  • Kan je jouw workflow beschrijven als je een nieuwe web pagina maakt?
  • Kan je het verschil beschrijven tussen progressieve verbeteringen en gracieuse degradatie?
    • Bonus punten voor het beschrijven van feature detection
  • Leg uit wat “Semantische HTML” betekent.
  • Hoe zou je website assets/resources optimaliseren?
    • Kijk naar een aantal oplossingen zoals:
      • Bestands concatenatie
      • Betands minificatie
      • Content Delivery Network
      • Caching
      • etc.
  • Waarom is het beter om website resources van meerdere domeinen te laden?
    • Hoeveel resources kan een browser tegelijkertijd downloaden van een domein?
  • Noem 3 manieren om pagina laadtijd te verminderen. (waargenomen of gemeten tijd)
  • Als je op een project kwam te werken waar ze tabs gebruiken en jij gebruikt spaties, wat zou je doen?
    • Suggereren dat het project misschien iets als [EditorConfig] (http://editorconfig.org) kan gebruiken.
    • Je aanpassen aan de conventie (consistent blijven)
    • issue :retab! command
  • Schrijf een simpele slideshow pagina
    • Bonus punten als het geen JS gebruikt.
  • Welke tools gebruik je om je je code performance te testen?
    • Profiler, JSPerf, Dromaeo
  • Als je dit jaar één techniek zou willen beheersen, wat zou het zijn?
  • Kan je de verschillen tussen Long-Polling, Websockets en SSE benoemen?
  • Leg het belang uit van standaards en standaards organisaties.
  • Wat is FOUC? Hoe voorkom je FOUC?

HTML-Specifieke Vragen:

  • Wat doet een doctype?
  • Wat is het verschil tussen standaard modus en quirks modus?
  • Wat zijn de beperkingen als je XHTML pagina’s serveert?
    • Zijn er problemen als je ze serveert als application/xhtml+xml?
  • Hoe serveer je een pagina met content in meerdere talen?
    • Wat voor dingen moet je voor op passen als je designt of ontwikkelt voor meertalige sites?
  • Waar zijn data- attributen goed voor?
  • Stel je HTML5 voor als een open web platform. Wat zijn dan de bouwstenen van HTML5?
  • Beschrijf het verschil tussen cookies, sessionStorage en localStorage.

JS-Specifieke Vragen:

  • Beschrijf event delegatie
  • Leg uit hoe this werkt in JavaScript
  • Leg uit prototypal inheritance werkt
  • Hoe kan je je JavaScript testen?
  • AMD vs. CommonJS?
  • Wat is een hashtable?
  • Wat zijn undefined en undeclared variabelen?
  • Wat is een closure, en hoe/waarom zou je het gebruiken?
    • Je favoriete pattern om deze te gebruiken? argyle (Alleen toepasbaar bij IIFEs)
  • Wat is een typische use case voor anonieme functies?
  • Leg de “JavaScript module pattern” uit wanneer je het zou gebruiken.
    • Bonus punten voor het noemen van clean namespacing.
    • Wat als je modules namespace-loos zijn?
  • Hoe organiseer je je code? (module pattern, classical inheritance?)
  • Wat is het verschild tussen host objects en native objects?
  • Verschil tussen:
function Person(){} var person = Person() var person = new Person()
  • Wat is het verschil tussen .call en .apply?
  • Leg uit Function.prototype.bind?
  • Wanneer optimaliseer je je code?
  • Kan je uitleggen hoe overerving werkt in JavaScript?
  • Wanneer zou je document.write() gebruiken?
    • Veel ads gebruiken nog steeds document.write() ookal wordt dit meestal afgekeurd
  • Wat is het verschil tussen feature detection, feature inference en het gebruiken van een UA string
  • Leg AJAX zo gedetailleerd mogelijk uit
  • Leg uit hoe JSONP werkt (en hoe het niet echt AJAX is)
  • Heb je ooit JavaScript templating gebruikt?
    • Zo ja, welke libraries heb je gebruikt? (Mustache.js, Handlebars etc.)
  • Leg “hoisting” uit.
  • Beschrijf event bubbling.
  • Wat is het verschil tussen een “attribuut” en een “property”?
  • Waarom is het uitbreiden van built-in JavaScript objects geen goed idee?
  • Waarom is het uitbreiden van built ins een goed idee?
  • Wat is het verschil tussen document load en document ready?
  • Wat is het verschil tussen == en ===?
  • Leg uit hoe je een query string parameter uit een browsers window URL kan halen.
  • Leg de same-origin policy met betrekking tot JavaScript uit.
  • Beschrijf overerving patronen in JavaScript.
  • Maak dit werkend:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschrijf een strategie voor memoization (ontwijken van berekening repetitie) in JavaScript.
  • Waarom heet het een Ternary expression, waar doelt het woord “Ternary” op?
  • Wat is de ariteit van een functie?
  • Wat is "use strict";? Wat zijn de voor- en nadelen om dit te gebruiken?

JS-Code Voorbeelden:

~~3.14

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: 3

"ik hou van lasagna".split("").reverse().join("");

Vraag: Welke waarde wordt terug gegeven bij de bovenstaande code?
Antwoord: "angasal nav uoh ki"

( window.foo || ( window.foo = "bar" ) );

Vraag: What is the value of window.foo?
Antwoord: "bar"
Alleen als window.foo falsy was, anders leverde het zijn waarde op.

var foo = "Hallo"; (function() { var bar = " Wereld"; alert(foo + bar); })(); alert(foo + bar);

Vraag: Wat is de uitkomst van de twee alerts?
Antwoord: “Hallo Wereld” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vraag: Wat is de waarde van foo.length?
**Antwoord: 2

var foo = {};
foo.bar = 'hello';

Vraag: Wat is de waarde van foo.length?
**Antwoord: undefined

jQuery-Specifieke Vragen:

  • Leg “chaining” uit.
  • Leg “deferreds” uit.
  • Wat zijn een paar jQuery specifieke optimalisaties die jij kan implementeren?
  • Wat doet .end()?
  • Hoe en waarom zou je een bound event handler namespacen?
  • Noem 4 verschillende waardes die je aan een jQuery methode kan geven.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Wat is de effecten (fx) queue?
  • Wat is het verschil tussen .get(), [], en .eq()?
  • Wat is het verschil tussen .bind(), .live(), en .delegate()?
  • Wat is het verschil tussen $ en $.fn? Of sowieso, wat is $.fn.
  • Optimaliseer deze selector:
$(".foo div#bar:eq(0)")
  • Wat is het verschil tussen ‘delegate()’ en ‘live()’?

CSS-Specifieke Vragen:

  • Beschrijf wat een “reset” CSS bestand doet en hoe dit bruikbaar is.
  • Beschrijf Floats en hoe ze werken.
  • Wat zijn de verschillende clearing technieken en welke is toepasselijk voor welke context?
  • Leg CSS sprites uit en hoe je ze kan implementeren op een pagina.
  • Wat zijn jouw favoriete image replacement technieken en welke gebruik je wanneer?
  • CSS property hacks, conditionele ingeladen .css files, of… iets anders?
  • Hoe serveer je je pagina’s voor feature-constrained browsers?
    • Welke technieken/processen gebruik je?
  • Wat zijn de verschillende manieren om content visueel te verbergen (en het alleen zichtbaar te houden voor screenreaders)?
  • Heb je ooit een grid-systeem gebruikt en zo ja, wat is je voorkeur?
  • Heb je ooit media queries of mobiel specifieke layouts/CSS gebruikt of geïmplementeerd?
  • Ben je bekend met SVG styling?
  • Hoe optimaliseer je je pagina’s voor printen?
  • Wat zijn sommige van de “gotchas” voor het schrijven van efficiënte CSS?
  • Wat zijn de voor- en nadelen van CSS preprocessors? (SASS, Compass, Stylus, LESS)
    • Wat vind je wel en niet fijn aan diegene die jij hebt gebruikt.
  • Hoe zou je een website design implementeren dat gebruik maakt van non-standard fonts?
    • Webfonts (font services zoals: Google Webfonts, Typekit etc.)
  • Leg uit hoe een browser beslists welke elementen hij moet matchen met een CSS selector?

Optionele Losse Vragen:

  • Wat is het coolste dat je ooit gemaakt hebt. Waar ben je trots op?
  • Wat zijn de favoriete dingen van de ontwikkeltools die je gebruikt?
  • Heb je hobbyprojecten? Zo ja, wat voor?
  • Wat is je favoriete feature van Internet Explorer?
\ No newline at end of file diff --git a/_site/translations/farsi/index.html b/_site/translations/farsi/index.html deleted file mode 100644 index 13ff8a9f9..000000000 --- a/_site/translations/farsi/index.html +++ /dev/null @@ -1 +0,0 @@ -سوالات مصاحبه‌ی کاری فرانت‌-اند ★ Front-end Job Interview Questions

سوالات مصاحبه‌ی کاری فرانت‌-اند

سوالات مصاحبه‌ی کاری فرانت‌-اند

این فایل شامل چندین سوال مربوط به مصاحبه‌ی فرانت-اند هست که ازشون میشه در زمان بررسی داوطلب‌های بالقوه استفاده کرد. به هیچ وجه پیشنهاد نمیشه که تمام سوالات اینجا رو از یک داوطلب بپرسین (چون چند ساعت طول می‌کشه). انتخاب چند مورد از این لیست باید بهتون در بررسی توانایی‌هایی که نیاز دارید کمک کنه.

توجه: در نظر داشته باشید که ته خیلی از این سوالات باز هستن و ممکنه به یک بحث جذاب ختم بشن که بیشتر از یک جواب ساده به شما در مورد توانایی‌های شخص مورد نظر اطلاعات میده.

فهرست

  1. سوال‌های عمومی
  2. سوال‌های اچ‌تی‌ام‌ال
  3. سوال‌های سی‌اس‌اس
  4. سوال‌های جی‌اس
  5. سوال‌های تستینگ
  6. سوال‌های پرفورمنس
  7. سوال‌های شبکه
  8. سوال‌های کدینگ
  9. سوال‌های فان

درگیر شدن

  1. مشارکت کنندگان
  2. چطور مشارکت کنید
  3. مجوز

سوال‌های عمومی:

  • این هفته/امروز چه چیزی یاد گرفتی؟
  • چه چیزی توی کد زدن برات جذابه یا به هیجان میارتت؟
  • یه چالش فنی که جدیدا باهاش روبرو شدی چی بود و چطوری حلش کردی؟
  • وقتی میخوایی یه سایت یا یه وب اپلیکیشن بسازی، به چه چیزهای رابط کاربری، امنیتی، کارایی، سئو، نگه‌داری یا تکونولوژی توجه میکنی؟
  • در مورد محیط توسعه‌ی مورد علاقه‌ات بگو.
  • با کدوم سیستم کنترل ورژن آشنا هستی؟
  • میتونی گردش کارت رو برای وقتی که داری یه صفحه وب میسازی توضیح بدی؟
  • اگه ۵ تا استایل‌شیت مختلف داشته باشی، چطوری اون‌ها رو به نحو احسنت با هم توی سایت ادغام میکنی؟
  • میتونی تفاوت بین بهبود تصاعدی و افت شدید رو توضیح بدی؟
  • چطوری اَسِت‌ها/منابع یک وبسایت رو بهینه میکنی؟
  • یک مرورگر در هر لحظه از یک دامنه چنتا منابع دانلود میکنه؟
    • استثناها چیا هستن؟
  • سه روش بگو که بشه لود صفحه رو کم کرد (لود دیداری یا زمان لود واقعی)
  • اگه یهو وارد یه پروژه بشی و ببینی که از تَب استفاده کردن و تو از اسپس استفاده کردی، چیکار میکنی؟
  • توضیح بده که چطوری یه صفحه‌ی اسلایدشوی ساده می‌سازی.
  • اگه میتونستی یک تکنولوژی رو امسال استاد بشی، دنبال چی می‌رفتی؟
  • اهمیت استاندارد‌ها و سازمان‌های مشخص کردن استاندارد رو توضیح بده.
  • فلش محتوی بدون استایل (FOUC) چیه؟ چطوری میشه ازش پرهیز کرد؟
  • توضیح بده که AIRA و صفحه‌خوان‌ها چین و چطوری میشه یک وبسایت رو در دسترس قرار داد؟
  • مزایا و معایب انیمیشن‌های سی‌اس‌اس در مقایسه با جاوااسکریپت رو توضیح بده.
  • CORS مخفف چیه و به چه مسئله‌ای اشاره داره؟

سوال‌های اچ‌تی‌ام‌ال:

  • doctype چیکار میکنه؟
  • فرق بین حالت‌های کاملا استاندارد، تقریبا استاندارد و قدیمی (quirks) چیه؟
  • تفاوت بین اچ‌تی‌ام‌ال و اکس‌اچ‌تی‌ام‌ال چیه؟
  • مشکلی برای سرو کردن صفحه‌ای به صورت application/xhtml+xml هست؟
  • چطور یه صفحه‌ای رو با محتوای چندزبانه سرو میکنی؟
  • وقتی که داری سایت چندزبانه طراحی میکنی یا توسعه میدی، به چه چیزهایی باید حواست باشه؟
  • اتریبیوت‌های data- به چه دردی میخورن؟
  • اچ‌تی‌ام‌ال۵ رو یک پلتفرم وب آزاد در نظر بگیر. بلوک‌های سازنده‌ی اچ‌تی‌ام‌ال۵ چیا هستن؟
  • فرق بین یک <script>، <script async> و <script defer> رو شرح بده.
  • چرا به طور کلی فکر خوبیه که <link>های سی‌اس‌اس رو داخل <head></head> و <script>های جی‌اس رو قبل از </body> قرار داد؟ هیچ استثنایی میشناسی؟
  • رندر شدن تصاعدی چیه؟
  • قبلا زبان‌های تمپلیت‌سازی اچ‌تی‌ام‌ال استفاده کردی؟

سوال‌های سی‌اس‌اس:

  • توی سی‌اس‌اس فرق بین کلاس و آی‌دی چیه؟
  • توی سی‌اس‌اس فرق بین «normalizing» و «resetting» چیه؟ خودت کدومشون رو انتخاب میکردی، و چرا؟
  • فلوت رو توضیح بده و بگو چطوری کار میکنن.
  • زد-ایندکس رو توضیح بده و بگو روی هم چینی زمینه چطوری ایجاد میشه.
  • BFC‌ (Block Formatting Context) چیه و چطوری کار میکنه؟
  • روش‌های مختلف برای پاک کردن چیه و هر کدوم به درد چه موقعیتی می‌خوره؟
  • اسپریت‌های سی‌اس‌اس رو توضیح بده و بگو چطوری اون‌ها رو روی صفحه یا سایت پیاده‌سازی می‌کنی؟
  • روش‌های جایگزینی تصویر مورد علاقه‌ات چیا هستن و از هر کدوم کی استفاده می‌کنی؟
  • برای حل کردن مشکلات استایل‌های مختص به مرورگر، چطوری عمل می‌کنی؟
    • از چه تکنیک/پروسه‌ای استفاده می‌کنی؟
  • راه‌های مختلف برای مخفی کردن بصری محتوی (و قابل خوندن کردنشون فقط برای صفحه‌خوان‌ها) چیا هستن؟
  • تا حالا از یک گرید سیستم استفاده کردی، اگه آره، کدومشون رو ترجیح میدی؟
  • تاحالا از مدیا کوئری‌ها یا لی‌اوت/سی‌اس‌اس مخصوص موبایل استفاده یا پیاده‌سازی کردی؟
  • با استایل دادن به SVG آشنا هستی؟
  • یک صفحه‌ی وب رو چطوری برای چاپ بهینه می‌کنی؟
  • چنتا از «مچ‌گیری»‌های لازم برای نوشتن سی‌اس‌اس کارآمد چیا هستن؟
  • مزایا و معایب استفاده از پیش‌پردازنده‌های سی‌اس‌اس چیا هستن؟
    • توضیح بده چه چیزایی از پیش‌پردازنده‌های سی‌اس‌اس که قبلا استفاده کردی رو دوست داشتی و دوست نداشتی.
  • یه دیزاین کلی که فونت‌های غیراستاندارد داره رو چطوری پیاده سازی می‌کنی؟
  • توضیح بده که یک مرورگر چطوری مشخص میکنه کدوم المنت با کدوم سلکتور سی‌اس‌اس مچ میشه.
  • سودو المنت‌ها رو توصیف کن و بحث کن که برای چی ازشون استفاده می‌کنن.
  • چیزی رو که از باکس مدل فهمیدی توضیح بده و بگو چطوری توی سی‌اس‌اس به مرورگر میفهمونی تا لی‌اوتت رو توی باکس مدل‌های متفاوتی رندر کنه.
  • * { box-sizing: border-box; } چیکار میکنه؟ فوایدش چیه؟
  • هر چی مقدار برای پراپرتی دیسپلی یادت میاد رو لیست کن.
  • فرق بین اینلاین و اینلاین-بلاک چیه؟
  • فرق بین یک المنت با پوزیشن ریلیتیو، فیکسد، ابسولوت و استایتک چیه؟
  • «C» داخل سی‌اس‌اس برای Casacading یا آبشاری هست. اولویت توی اختصاص استایل چطوری مشخص می‌شه (چنتا مثال)؟
  • از چه فریم‌ورک‌های سی‌اس‌اس به صورت لوکال یا توی پروداکشن استفاده کردی؟
  • تا حالا با فلکس‌باک یا ویژگی‌های جدید گرید توی سی‌اس‌اس بازی بازی کردی؟
  • طراحی ریسپانسیو با طراحی آداپتیو چه تفاوتی داره؟
  • تاحالا با گرافیک رتینا کار کردی؟ اگه آره، کی و از چه تکنیک‌هایی استفاده کردی؟
  • دلیل هست که از translate() به جای جاگذاری ابسولوت یا برعکس استفاده کنی؟ و چرا؟

سوال‌های جی‌اس:

  • ایونت دلیگیشن رو توضیح بده.
  • توضیح بده this توی جاوااسکریپت چطوری کار میکنه.
  • توضیح بده ارث‌بری پروتوتایپی چطوری کار میکنه.
  • نظرت در مورد AMD در برابر CommonJS چیه؟
  • توضیح بده چرا قطعه‌ی روبرو به عنوان یک IIFE کار نمیکنه: function foo(){ }();.
    • چه چیزی احتیاج داره تا به شیوه‌ی صحیح IIFE بشه؟
  • فرق بین یک متغییر که null، undefined یا اعلام نشده هست چیه؟
    • چطوری وضعیت هر کدوم از این‌ها رو چک می‌کنی؟
  • کلوژر چیه و چطور/چرا ازش استفاده می‌کنی؟
  • استفاده‌ی معمول از فانکشن‌های انانیموس چیه؟
  • چطوری کدهات رو مرتب میکنی؟ (ماژول پترن، ارث‌بری کلاسیک)
  • فرق بین آبجکت‌های هاست و آبجکت‌های نیتیو چیه؟
  • فرق بین: function Person(){}، var person = Person()، و var person = new Person()؟
  • فرق بین .call و .apply چیه؟
  • Function.prototype.bind رو توضیح بده.
  • چه موقع از document.write() استفاده میکنی؟
  • فرق بین تشخیص ویژگی، استنتاج ویژگی و استفاده از استرینگ UA چیه؟
  • ایجکس رو تا تمام جزئیاتی که می‌تونی توضیح بده.
  • مزایا و معایب استفاده از ایجکس چیا هستن؟
  • توضیح بده که JSONP چطوری کار میکنه (و چطوری واقعا ایجکس نیست؟)
  • تاحالا از تمپلیت‌سازی جاوااسکریپتی استفاده کردی؟
    • اگه آره، از چه کتابخونه‌هایی استفاده کردی؟
  • «هویستینگ» رو توضیح بده.
  • ایونت بابلینگ رو توضیح بده.
  • فرق بین یک «اتریبیوت» و یک «پراپرتی» چیه؟
  • چرا اکستند کردن یه آبجکت جاوااسکریپتی بیلت-این فکر خوبی نیست؟
  • فرق بین ایونت load داکیومنت و DOMContentLoaded چیه؟
  • فرق بین == و === چیه؟
  • سیاستگذاری سیم-اوریجین رو از دید جاوااسکریپت توضیح بده.
  • کاری کن این کار کنه:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • چرا میگن اکسپرشن Ternary، کلمه‌ی «Ternary» چه چیزی رو میگه؟
  • "use strict"; چیه؟ مزایا و معایب استفاده ازش چیه؟
  • یه حلقه بساز که تا 100 تکرار بشه در حالی که برای مضارب 3 "fizz"، برای مضارب 5 "buzz" و برای مضارب 3 و 5 "fizzbuzz" رو خروجی بده.
  • چرا به طور کلی، فکر خوبیه تا اسکوپ جنرال یک وبسایت رو همینطوری که هست بزاریم بمونه و هیچوقت بهش دست نزنیم؟
  • چرا از چیزهایی مثل ایونت load استفاده میکنی؟ این ایونت معایبی هم داره؟ جایگزینی میشناسی، و چرا از اونها استفاده میکنی؟
  • توضیح بده که یک اپ سینگل پیج چیه و چطوری میشه سئوی یکیشون رو درست کرد؟
  • نهایت تجربه‌ات توی کار کردن ب پرامیس‌ها و/یا پروفیل‌هاش چیه؟
  • مزایا و معایب استفاده از پرامیس‌ها به جای کال‌بک‌ها چیه؟
  • چنتا از مزایا/معایب نوشتن کدهای جاوااسکریپت به زبانی که به جاوااسکریپت کامپایل میشه چیا هست؟
  • از چه ابزارها و تکنیک‌هایی برای دیباگ کردن کدهای جاوااسکریپت استفاده می‌کنی؟
  • از چه ساختار زبانی برای طی کردن پراپرتی‌های یک آبجکت یا آیتم‌های آرایه استفاده میکنی؟
  • تفاوت بین آبجکت‌های تغییرپذیر و تغییرناپذیر رو توی جاوااسکریپت توضیح بده.
    • یه مثال از آبجکت تغییرناپذیر توی جاوااسکریپت بزن.
    • مزایا و معایب تغییرناپذیری چیه؟
    • چطوری میتونی توی کدهای خودت به تغییرناپذیری رو اجرا کنی؟
  • فرق بین فانکشن‌های همگام و غیرهمگام رو توضیح بده.
  • ایونت لوپ چیه؟
    • فرق بین استک کال و صف تسک چیه؟
  • فرق بین استفاده از foo توی function foo() {} و var foo = function() {} رو توضیح بده.

سوال‌های تستینگ:

  • مزایا/معایب تست کردن کدهات چیا هستن؟
  • از چه ابزارهایی برای تست کردن فانکشنالیتی کدهات استفاده می‌کنی؟
  • فرق بین تست یونیت و فانکشنال/اینتگریشن تست چیه؟
  • هدف ابزارهای لینت کردن کد چی هست؟

سوال‌های پرفورمنس:

  • از چه ابزاری استفاده میکنی تا یه باگ مربوط به پرفورمنس رو توی کدهات پیدا کنی؟
  • چه راه‌هایی وجود داره تا پرفورمنس اسکرول کردن سایتت بهبود پیدا کنه؟
  • فرق بین لی‌اوت، پینتینگ و کامپوزیتینگ رو توضیح بده.

سوال‌های شبکه:

  • از قدیم، چرا همیشه بهتر بوده تا اَسِت‌های سایت رو از دامین‌های مختلف سرو کرد؟
  • بهترین تعریفی رو که از پردازشی وقتی که یوآرال یک وبسایتی رو تایپ میکنی تا وقتی که لود شدنش روی صفحه‌ی نمایشت تموم بشه انجام میشه، ارائه بده.
  • فرق بین ایونت‌های Long-Polling، Websocketها و Server-Sent چیه؟
  • هدرهای ریکوئست و ریسپانس‌های زیر رو توضیح بده:
    • Diff. between Expires, Date, Age and If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • متدهای اچ‌تی‌تی‌پی چی هستن؟ تمام متدهای اچ‌تی‌تی‌پی که میشناسی لیست کن و توضیحشون بده.

سوال‌های کدینگ:

سوال: مقدار foo چیست؟

var foo = 10 + '20';

سوال: چیکار میکنی تا این کار کنه؟

add(2, 5); // 7
add(2)(5); // 7

سوال: مقدار برگشته از عبارت زیر چیست؟

"i'm a lasagna hog".split("").reverse().join("");

سوال: مقدار window.foo چیست؟

( window.foo || ( window.foo = "bar" ) );

سوال: خروجی دو آلرت زیر چیست؟

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

سوال: مقدار foo.length چیست؟

var foo = [];
foo.push(1);
foo.push(2);

سوال: مقدار foo.x چیست؟

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

سوال: کد زیر چه چیزی رو پرینت می‌کند؟

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

سوال‌های فان:

  • پروژه‌ی باحالی که جدیدا روش کار کردی چی بود؟
  • از چه چیزهایی از ابزارهای توسعه‌دهنده‌ای که استفاده می‌کنی خوشت میاد؟
  • چه کسی الهام بخش تو توی کامیونیتی فرانت-اند کارها هست؟
  • پروژه‌ی خونگی داری؟ چجور پروژه‌ایه؟
  • فیچر مورد علاقه‌ات توی اینترنت اکسپلورر چیه؟
  • قهوه‌ات رو چطوری دوست داری؟

مشارکت کنندگان:

این نوشته با همکاری @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed و @iansym از سال ۲۰۰۹ آغاز شده است.

از آن موقع تا کنون بیش از ۱۰۰ دولوپر در آن مشارکت کرده‌اند.

این سند توسط @JavidIzadfar به فارسی برگردانده شده است.

\ No newline at end of file diff --git a/_site/translations/french/index.html b/_site/translations/french/index.html deleted file mode 100644 index 14310d23e..000000000 --- a/_site/translations/french/index.html +++ /dev/null @@ -1 +0,0 @@ -Questionnaire de recrutement pour développeur front-end ★ Front-end Job Interview Questions

Questionnaire de recrutement pour développeur front-end

Questionnaire de recrutement pour développeur front-end

Cette liste contient un certain nombre de questions que vous pouvez poser lors d’un entretien d’embauche pour un développeur Front-End. Il n’est en aucun cas recommandé de poser toutes ces questions à un candidat (ça prendrait des heures). Choisissez en quelques-unes liées au profil que vous rechercher afin de vérifier les compétences dont vous avez besoin.

Note: Gardez en tête que la plupart de ces questions sont ouvertes et qu’elles peuvent mener à des discussions intéressantes, qui vous en apprendront plus sur les capacités de la personne.

Table des matières

  1. Questions générales
  2. Questions sur HTML
  3. Questions sur CSS
  4. Questions sur JS
  5. Questions sur réseau
  6. Questions sur la programmation
  7. Questions pour le fun

S’impliquer :

  1. Contributeurs
  2. Comment contribuer (en)
  3. Licence

[⬆]

Questions générales:

  • Qu’avez-vous appris cette semaine ?
  • Qu’est ce qui vous motive ou vous intéresse dans le développement ?
  • Quel a été le dernier défi technique que vous avez expérimenté et comment l’avez-vous résolu ?
  • Quelles considérations en terme d’UI, Sécurité, Performance, SEO, Maintenabilité ou Technologie faites-vous lorsque vous concevez une application web ou site ?
  • Parlez-moi de votre environnement de travail préféré.
  • Avec quels logiciels de gestion de versions êtes-vous familier?
  • Pouvez-vous décrire comment vous travaillez (votre workflow) lorsque vous créez une page web ?
  • Si vous aviez 5 feuilles de style différentes, de quelle façon les intégreriez-vous le mieux dans un site ?
  • Pouvez-vous décrire la différence entre amélioration progressive et dégradation gracieuse ?
  • Comment optimisez-vous les performances de vos pages web (assets/ressources) ?
  • Combien de ressources différentes à la fois un navigateur peut-il télécharger à partir d’un même domaine ?
    • Quelles sont les exceptions ?
  • Donnez 3 façons qui permettent de réduire le temps de chargement d’une page (perçu ou réel).
  • Si vous commencez à travailler sur un projet existant, où votre prédécesseur a utilisé des tabulations pour indenter son code et que vous utilisez des espaces, que faites-vous ?
  • Décrivez comment vous développeriez un simple diaporama
  • Quels outils utilisez-vous pour tester la performance de votre code ?
  • Si vous pouviez maîtriser parfaitement une technologie cette année, laquelle serait-elle ?
  • Expliquez l’importance des standards et des organisations les édictant.
  • Qu’est-ce que le FOUC (flash of unstyled content) et comment l’évitez-vous ?
  • Expliquez ce que sont ARIA et les lecteurs d’écrans, et comment rendre votre site internet accessible
  • Expliquez quelques-uns des pour et contre des animations CSS par rapport aux animations JavaScript
  • Que signifie CORS et quel problème aborde-t-il ?

[⬆]

Questions sur HTML :

  • Que fait un doctype ?
  • Quelle est la différence entre les modes standard et quirks ?
  • Quelles sont les différences entre HTML et XHTML ?
  • Y a-t-il des problèmes à envoyer des pages avec le Content-Type application/xhtml+xml ?
  • Comment servez-vous une page avec du contenu multilingue ?
  • À quoi devez-vous faire attention quand vous designez ou développez des pages pour des sites multilingues ?
  • À quoi les attributs data- servent-ils ?
  • Si l’on considère que HTML5 est une API Web ouverte, quelles sont les briques de base de HTML5 ?
  • Décrivez la différence entre cookie, sessionStorage, et localStorage.
  • Décrivez la différence entre <script>, <script async> et <script defer>.
  • Pourquoi est-ce généralement une bonne idée de positionner les <link> à l’intérieur de <head></head> et les <script> juste avant </body>? Connaissez-vous des exceptions ?
  • Qu’est-ce que le rendu progressif ?
  • Pourquoi utiliseriez-vous l’attribut srcset dans une balise image ? Expliquez le processus utilisé par le navigateur lors de l’évaluation du contenu de cet attribut.

[⬆]

Questions sur CSS :

  • Quelle est la différence entre les classes et les IDs en CSS ?
  • Quelle est la différence entre un “reset” et une “normalisation” en CSS ? Lequel choisiriez-vous et pourquoi ?
  • Décrivez le positionnement flottant et son fonctionnement.
  • Décrivez le z-index et comment le contexte d’empilement se forme ?
  • Quelles sont les différentes méthodes de “clearing” des éléments flottants, et laquelle est appropriée pour chaque contexte ?
  • Expliquez ce que sont les “sprites” CSS et comment vous les implémenteriez sur une page ou un site.
  • Quelles sont vos techniques favorites de remplacement d’images, et comment les utilisez-vous ?
  • Quelle approche choisiriez-vous pour réparer des bugs au niveau du CSS spécifique à certains navigateurs ?
  • Comment servez-vous vos pages pour les navigateurs aux fonctionnalités réduites ?
    • Quelles techniques/procédés utilisez-vous ?
  • Quelles sont les différentes manières de masquer du contenu (en le laissant disponible pour les lecteurs d’écran) ?
  • Avez-vous déjà utilisé un système de grille, et si oui, lequel préférez-vous ?
  • Avez-vous déjà implémenté des “media queries”, ou des “layouts CSS” spécifiques aux mobiles ?
  • Avez-vous déjà touché au style d’un SVG ?
  • Comment optimisez-vous vos pages pour l’impression (le print) ?
  • Quelques astuces pour écrire du CSS efficacement ?
  • Quels sont les avantages/désavantages de l’utilisation des préprocesseurs CSS ? (SASS, Compass, Stylus, LESS)
    • Si vous avez un avis, décrivez ce que vous aimez et n’aimez pas des préprocesseurs que vous avez utilisé.
  • Comment implémenteriez-vous un design qui utilise des polices de caractères non standards ?
  • Expliquez comment un navigateur détermine quels éléments correspondent à un sélecteur CSS.
  • Expliquez ce que vous avez compris du modèle de boite (box model) et comment implémenteriez vous une mise en page avec des modèles de boite différents.
  • Qu’est-ce que * { box-sizing: border-box; } fait ? Quels sont ses désavantages ?
  • Listez autant de valeurs que vous pouvez pour la propriété display.
  • Quelle est la différence entre inline et inline-block ?
  • Quelle est la différence entre les éléments ayant relative, fixed, absolute et static comme position ?
  • Le ‘C’ dans CSS veut dire Cascade (Cascading). Comment la priorité est-elle définie lors de l’assignement de styles (exemples) ? Comment pouvez-vous utiliser ce système à votre avantage ?
  • Quels frameworks CSS avez-vous utilisé localement, ou en production ? Comment feriez-vous pour les changer/améliorer ?
  • Avez-vous expérimenté le récent flexbox ?
  • En quoi le “responsive design” est différent du “adaptive design” ?
  • Avez-vous déjà travaillé avec des images “retina” ? Si oui, à quel moment et quelles techniques avez-vous utilisées ?
  • Y a-t-il des raisons particulières pour lesquelles vous voudriez utilser translate() plutôt que position: absolute ou vice-versa ? Et pourquoi ?

[⬆]

Questions sur JS :

  • Expliquez la délégation d’évènement.
  • Expliquez comment fonctionne this en Javascript.
  • Expliquez comment fonctionne l’héritage de prototype.
  • Comment testez-vous votre code Javascript ?
  • Que pensez-vous d’AMD par rapport à CommonJS ?
  • Expliquez pourquoi ce qui suit n’est pas une IIFE (Immediately Invoked Function Expression) : function foo(){ }();.
    • Qu’est-ce qu’il faut changer pour faire une IIFE correcte ?
  • Quelle est la différence entre une variable null, undefined et non déclarée ?
    • Comment feriez-vous pour vérifier chacun de ces états ?
  • Qu’est-ce qu’une “closure” et comment/pourquoi en utiliser une ?
  • Pouvez-vous décrire la principale difference entre la boucle forEach et la boucle .map() et pourquoi choisiriez-vous l’une et pas l’autre ?
  • Quelle est l’utilisation typique d’une fonction anonyme ?
  • Comment organisez-vous votre code ? (pattern modulaire, héritage classique ?)
  • Quelle est la différence entre des objets hôtes et des objets natifs ?
  • Différence entre: function Person() {}, var person = Person() et var person = new Person() ?
  • Quelle est la différence entre .call et .apply ?
  • Expliquez Function.prototype.bind ?
  • Comment optimisez-vous votre code ?
  • Pouvez-vous expliquer comment fonctionne l’héritage en Javascript ?
  • Quand utiliseriez-vous document.write() ?
  • Quelle est la différence entre détection de “feature”, inférence de “feature” et l’utilisation du “User-Agent” ?
  • Expliquez ce qu’est AJAX avec autant de détails que possible.
  • Expliquez comment fonctionne JSONP (et pourquoi ce n’est pas réellement de l’AJAX).
  • Avez-vous déjà utilisé des “templates” en Javascript ?
    • Si oui, quelles librairies avez-vous utilisées ?
  • Expliquez le phénomène de “hoisting”.
  • Décrivez le “event bubbling”.
  • Quelle est la différence entre un “attribut” et une “propriété” ?
  • Pourquoi étendre des objets natifs de Javascript n’est-il pas une bonne idée ?
  • Pourquoi étendre des objets natifs est-il une bonne idée ?
  • Quelle est la différence entre les évènements “document load” et “document ready” ?
  • Quelle est la différence entre == et === ?
  • Expliquez la politique d’origine commune (same-origin policy) et ses implications en JavaScript.
  • Expliquez les patterns d’héritage en JavaScript.
  • Faites fonctionner ceci :
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Qu’est ce que l’opérateur ternaire ? Qu’est-ce que ce mot indique ?
  • Qu’est-ce que "use strict";? Quels sont les avantages et désavantages de son utilisation ?
  • Créez une boucle for qui se répète 100 fois et affichez “fizz” aux multiples de 3, "buzz" aux multiples de 5 et “fizzbuzz” aux multiples de 3 et 5.
  • Pourquoi il est en général préférable de laissez le ‘scope’ global d’un site tel quel et ne jamais y toucher ?
  • Pourquoi utiliseriez-vous quelque chose comme l’événement load ? Est-ce que cet évènement a des avantages ? Connaissez-vous des alternatives, et pourquoi les utiliseriez-vous ?
  • Expliquez ce qu’est une application mono-page (Single Page Application) et comment feriez-vous pour qu’elle soit optimisée pour le référencement (SEO).
  • Quelle est l’étendue de votre expérience avec les “Promises” et/ou leurs “polyfills” ?
  • Quels sont les pour et contre de l’utilisation des “Promises” à la place des “callbacks” ?
  • Quels sont les avantages/inconvénients de l’écriture de code JavaScript dans un language qui compile en JavaScript ?
  • Quels outils et techniques utilisez-vous pour le “debugging” du code javascript ?
  • Quels langages de construction utilisez-vous pour les itérations sur les propriétés d’objet et éléments de tableau.
  • Expliquez la difference entre les objets muables et les objets immuables.
    • Donnez un exemple d’objet immuable en javascript.
    • Quels sont les avantages et inconvénients de l’immuabilité ?
    • Comment pouvez-vous réaliser l’immuabilité dans votre code ?
  • Expliquez la différence entre les fonctions synchrones et asynchrones.
  • Qu’est ce qu’une boucle d’événement ?
    • Quelle est la différence entre la pile d’appels et la file d’attente de tâches?
  • Expliquez les différences dans l’usage de foo entre foo() {} et var foo = function() {}
  • Quelles sont les différences entre les variables crées en utilisant let, var ou const ?

[⬆]

Questions sur les Tests

  • Quels sont les avantages/inconvénients de tester votre code ?
  • Quels outils utiliseriez-vous pour tester les fonctionnalités de votre code.
  • Quel est la difference entre un test unitaire et un test fonctionnel/d’intégration ?
  • Quel est le but d’un outil de lissage de style de code ?

[⬆]

Questions sur la performance

  • Quels outils utiliseriez-vous pour trouver une erreur de performance dans votre code ?
  • Comment pouvez-vous améliorer les performances de défilement de votre site Web ?
  • Expliquez la différence entre la mise en page, la peinture et la composition.

[⬆]

Questions sur le réseau

  • Pourquoi est-il préférable de disposer ses assets sur des domaines différents ?
  • Faites de votre mieux pour décrire le processus à partir du moment où vous tapez l’URL d’un site internet jusqu’au moment où la page a finit de charger.
  • Quelle est la différence entre “Long-Polling”, “Websockets” et les événements “Server-Sent” ?
  • Expliquez les entêtes de requêtes et réponses suivant :
    • Différences entre Expires, Date, Age et If-Modified-
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Quelles sont les différentes actions (verbes) HTTP ? Listez toutes celles que vous connaissez et expliquez-les.

[⬆]

Questions sur la programmation :

Quelle est la valeur de foo ?

var foo = 10 + '20';

Comment feriez-vous marcher ceci ?

add(2, 5); // 7
add(2)(5); // 7

Que retourne ce code ?

"je suis un bouffeur de lasagne".split("").reverse().join("");

Que retourne window.foo ?

( window.foo || ( window.foo = "bar" ) );

Qu’affichent les deux alertes ci-dessous ?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Quelle est la valeur de foo.length ?

var foo = [];
foo.push(1);
foo.push(2);

[⬆]

Questions pour le fun :

  • Quel est le truc le plus cool que vous ayez programmé, de quoi êtes-vous le plus fier ?
  • Quelles sont les parties favorites des outils de développement que vous utilisez ?
  • Qui vous inspire dans la communauté front-end ?
  • Avez-vous des projets chouchous ? Quel genre ?
  • Quelle est votre fonctionnalité favorite dans IE ?
  • Comment voulez-vous votre café ?

[⬆]

Contributeurs :

Ce document a démarré avec la collaboration de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed et @iansym.

Il a depuis reçu des contributions de plus de 100 développeurs.

\ No newline at end of file diff --git a/_site/translations/german/index.html b/_site/translations/german/index.html deleted file mode 100644 index 174ef5aca..000000000 --- a/_site/translations/german/index.html +++ /dev/null @@ -1 +0,0 @@ -Fragen im Bewerbungsgespräch für Frontend-Entwickler ★ Front-end Job Interview Questions

Fragen im Bewerbungsgespräch für Frontend-Entwickler

Fragen im Bewerbungsgespräch für Frontend-Entwickler

@version 2.0.0

Dieses Repo enthält einige Fragen, die zur Einschätzung von geeigneten Frontend-Entwicklern innerhalb eines Bewerbungsgesprächs verwendet werden können. Es ist auf keinen Fall ratsam, einem Bewerber jede einzelne Frage zu stellen (das würde Stunden dauern). Es mag hilfreich sein, eine handvoll passender Fragen aus dieser Liste auszuwählen, um die Fähigkeiten abzuklopfen, die für den Job wichtig sind.

Rebecca Murphey’s Baseline For Front-End Developers (Englisch) ist ebenso eine nützliche Quelle zur Vorbereitung auf ein Bewerbungsgespräch.

Anmerkung: Beachte bitte, dass viele dieser Fragen so offen gehalten sind, dass sie interessante Diskussionen auslösen können, in deren Verlauf du viel mehr über die Fähigkeiten eines Bewerbers erfahren kannst, als in kurzen, direkten Antworten.

Initiatoren und Mitwirkende

Ein Großteil der Fragen wurden aus einer Diskussion bei oksoclap entnommen, die von Paul Irish (@paul_irish) angestoßen wurde, und an der später folgende Personen beteiligt waren:

Allgemeine Fragen:

  • Welche Versionsverwaltung hast du bisher verwendet (Git, SVN, etc.)?
  • Wie sieht deine bevorzugte Entwicklungsumgebung aus? (Betriebssystem, Editor, Browser, Werkzeuge, etc.)
  • Beschreibe bitte deinen Arbeitsablauf, wenn du eine Website entwickelst.
  • Kannst du den Unterschied zwischen Progressive Enhancement und Graceful Degradation beschreiben?
    • Extra-Punkte für die Beschreibung von Feature Detection
  • Beschreibe bitte, was »Semantisches HTML« bedeutet.
  • In welchem Browser entwickelst du vornehmlich und welche Entwicklerwerkzeuge verwendest du dabei?
  • Wie würdest du die Ressourcen einer Website im Hinblick auf Performance optimieren?
    • Verschiedene Lösungsansätze könnten sein:
      • Zusammenfassen von Dateien
      • Minifizierung
      • Nutzung von CDN
      • Caching
      • etc.
  • Warum ist es sinnvoll, Ressourcen über mehr als eine Domain abzufragen?
    • Wie viele Quellen kann ein Browser von einer Domain parallel empfangen?
  • Benenne drei Umstände, die das Laden einer Seite verlangsamen können (hinsichtlich der Wahrnehmung oder der tatsächlichen Ladezeit).
  • Wie verhältst du dich, wenn du in ein neues Projekt kommst, in dem Tabs verwendet werden und du aber Leerzeichen verwendest?
    • Vorschlagen, dass für das Projekt sowas wie EditorConfig (http://editorconfig.org) verwendet werden soll.
    • Sich an die Vorgaben des Projekts halten.
    • issue :retab! command
  • Entwickle eine simple Slideshow-Seite.
    • Bonuspunkte, wenn sie kein JS verwendet.
  • Welche Werkzeuge nutzt du zum Testen der Performance deines Codes?
  • Wenn du eine Technologie in diesem Jahr meistern könntest, welche wäre das?
  • Erkläre die Bedeutung von Standards und Standardisierungsorganisationen?
  • Was ist FOUC? Wie vermeidest du FOUC?

HTML-spezifische Fragen:

  • Was tut ein doctype und wie viele von ihnen kannst du benennen?
  • Was ist der Unterschied zwischen Standards-Modus und Quirks-Modus?
  • Welche Einschränkungen gibt es beim Ausliefern von XHTML-Seiten?
    • Gibt es Probleme, wenn Seiten als application/xhtml+xml ausgeliefert werden?
  • Wie lieferst du eine Seite mit Inhalten in verschiedenen Sprachen aus?
    • Vor welchen Dingen solltest du dich hüten, wenn du mehrsprachige Websites designst oder entwickelst?
  • Darf man XHTML-Syntax in HTML5 verwenden?
  • Wie verwendet man XML in HTML5?
  • Wofür sind data--Attribute nützlich?
  • Was sind die Inhaltsmodelle in HTML4 und sind sie unterschiedlich in HTML5?
  • Stelle dir HTML5 als eine offene Internetplattform vor. Was sind die Basiskomponenten von HTML5?
  • Beschreibe die Unterschiede zwischen Cookies, sessionStorage und localStorage.

JS-spezifische Fragen:

  • Erkläre Event Delegation
  • Erkläre, wie this in JavaScript funktioniert.
  • Erkläre, wie prototypische Vererbung funktioniert.
  • Wie gehst du vor beim Testen von JavaScript?
  • AMD vs. CommonJS?
  • Welche JavaScript-Bibliotheken hast du bisher benutzt?
  • Hast du jemals den Sourcecode von Bibliotheken/Frameworks angeschaut, die du benutzt?
  • Was ist ein hashtable?
  • Was sind undefined und undeclared Variablen?
  • Was ist eine Closure und wie/warum würdest du eine verwenden?
    • Dein bevorzugtes Pattern, um sie zu generieren? Argyle (Nur geeignet für IIFEs).
  • Was ist ein typischer Anwendungsfall für anonymous functions?
  • Erkläre das »JavaScript Module Pattern« und wann du es verwenden würdest.
    • Bonuspunkte, wenn sauberes Namespacing genannt wird.
    • Und wenn deine Module ohne Namespace sind?
  • Wie organisierst du deinen Code? (Module Pattern, klassische Vererbung?)
  • Was ist der Unterschied zwischen host objects und native objects?
  • Unterschied zwischen:
function Person(){} var person = Person() var person = new Person()
  • Worin unterscheiden sich .call und .apply?
  • Erkläre Function.prototype.bind.
  • Wann optimierst du deinen Code?
  • Kannst du erklären, wie Vererbung in JavaScript funktioniert?
  • Wann verwendet man document.write()?
    • Die meisten Werbebanner verwenden noch document.write(), obwohl es verpönt ist.
  • Was sind die Unterschiede zwischen Feature Detection, Feature Inference und Verwendung des UA-Strings?
  • Erkläre AJAX so detailiert wie möglich.
  • Erkläre wie JSONP funktioniert (und warum es nicht wirklich AJAX ist).
  • Hast du schonmal JavaScript-Templating verwendet?
    • Wenn ja, welche Bibliotheken hast du verwendet (Mustache, Handlebars, etc.)?
  • Erkläre »Hoisting«.
  • Erkläre Event Bubbling.
  • Was ist der Unterschied zwischen einem »Attribut« und einer »Property«?
  • Warum ist es nicht sinnvoll, JavaScript-eigene Objekte zu erweitern?
  • Warum ist es sinnvoll, Kernfunktionen zu erweitern?
  • Unterschied zwischen document load event und document ready event?
  • Was ist der Unterschied zwischen == und ===?
  • Erkläre, wie du einen Query-String-Parameter aus der URL des Browserfensters abfragst.
  • Erkläre die same-origin policy und in welcher Form sie JavaScript betrifft.
  • Erkläre Vererbungsmuster in JavaScript.
  • Bringe dies zum Laufen:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Beschreibe eine Strategie für Memoization (Vermeidung von Berechnungsschleifen) in JavaScript.
  • Warum heißt es »Ternary expression« und worauf deutet das Wort »Ternary« hin?
  • Was ist die Stelligkeit (Arity) einer Funktion?
  • Was ist "use strict";? Was sind die Vor- und Nachteile bei der Verwendung?

JS-Codebeispiele:

~~3.14

Frage: Welcher Wert wird zurückgegeben?
Antwort: 3

"Draußen nur Kännchen".split("").reverse().join("");

Frage: Welcher Wert wird zurückgegeben?
Antwort: "nehcnnäK run neßuarD"

( window.foo || ( window.foo = "bar" ) );

Frage: Welchen Wert hat window.foo?
Antwort: "bar"
nur wenn window.foo false war, andernfalls behält es seinen Wert.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Frage: Was ist das Ergebnis der beiden alerts oben?
Antwort: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Frage: Welchen Wert hat foo.length?
**Antwort: 2

var foo = {};
foo.bar = 'hello';

Frage: Welchen Wert hat foo.length?
**Antwort: undefined

jQuery-spezifische Fragen:

  • Erkläre »Chaining«.
  • Erkläre »Deferreds«.
  • Was sind ein paar jQuery-spezifische Optimierungen, die man vornehmen kann?
  • Was macht .end()?
  • Wie und warum würdest du einen Namespace für einen gebundenen Event handler verwenden?
  • Benenne 4 verschiedene Werte, die man einer jQuery-Methode übergeben kann.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object etc.
  • Was ist die effects (oder fx) queue?
  • Was ist der Unterschied zwischen .get(), [] und .eq()?
  • Was ist der Unterschied zwischen .bind(), .live(), und .delegate()?
  • Was ist der Unterschied zwischen $ und $.fn? Was ist überhaupt $.fn?
  • Optimiere diesen Selektor:
$(".foo div#bar:eq(0)")
  • Unterschied zwischen ‘delegate()’ und ‘live()’?

CSS-spezifische Fragen:

  • Erkläre was ein »Reset«-CSS macht und wofür es nützlich ist.
  • Beschreibe Floats und wie sie funktionieren.
  • Was sind die verschiedenen Clear-Methoden und welche ist geeignet für welchen Kontext?
  • Erkläre CSS-Sprites und wie du sie auf einer Seite oder Website implementieren würdest.
  • Was sind deine bevorzugten Image-Replacement-Techniken und wann benutzt du welche davon?
  • CSS-Hacks, per conditional eingebundene .css-Ressourcen oder… was sonst?
  • Wie lieferst du Seiten für funktional beschränkte Browser aus?
    • Welche Techniken/Prozesse verwendest du dafür?
  • Was sind die verschiedenen Möglichkeiten, um Inhalte visuell auszublenden (und für Screenreader zugänglich zu machen)?
  • Hast du schonmal ein Grid-System verwendet, und wenn ja, welches bevorzugst du?
  • Hast du media queries oder mobile-spezifische Layouts/CSS verwendet/entwickelt?
  • Bist du mit dem Styling von SVG vertraut?
  • Wie optimierst du Websites für den Druck?
  • Was sind ein paar Kniffe, um effizientes CSS zu schreiben?
  • Verwendest du CSS-Präprozessoren (Sass, Compass, Stylus, LESS)?
    • Wenn ja, beschreibe bitte, was du an den verwendeten magst oder nicht magst.
  • Wie würdest du ein Webdesign umsetzen, das Nicht-Standard-Schriften verwendet?
    • Webfonts (Dienste wie Google Webfonts, Typekit, etc.)
  • Erkläre wie ein Browser entscheidet, welche Elemente von einem CSS-Selektor erfasst werden.

Optionale Spaßfragen:

  • Was ist das großartigste, was du je entwickelt hast, und worauf bist du am meisten stolz?
  • Kennst du das Zeichen der HTML5-Gang?
  • Bist du gerade oder warst du jemals auf einem Boot?
  • Was sind die besten Eigenschaften der Entwicklerwerkzeuge, die du benutzt?
  • Hast du irgendwelche Freizeitprojekte? Welcher Art?
  • Erkläre die Bedeutung von »cornify«.
  • Schreibe auf einen Zettel die Buchstaben A B C D E von oben nach unten. Jetzt sortiere diese in umgekehrter Abfolge, ohne eine Zeile Code zu schreiben.
    • Warte einen Moment und schaue, ob sie den Zettel umdrehen.
  • Pirat oder Ninja?
    • Bonuspunkt, wenn es eine Kombi ist und begründet werden kann (+2 für Zombieaffenpiratenninja).
  • Wenn nicht Web-Entwicklung, was würdest du dann tun?
  • Wo ist Carmen Sandiego?
    • Tipp: Die Antwort ist immer falsch.
  • Was ist deine Lieblingsfunktion des Internet Explorers?
  • Ergänze diesen Satz: Brendan Eich und Doug Crockford sind die __________ von JavaScript.
  • jQuery: Eine großartige Bibliothek oder die großartigste Bibliothek von allen? Diskutiere.
  • http://www.w3schools.com/ oder http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/greek/index.html b/_site/translations/greek/index.html deleted file mode 100644 index bd178cd43..000000000 --- a/_site/translations/greek/index.html +++ /dev/null @@ -1 +0,0 @@ -Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers ★ Front-end Job Interview Questions

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers

Αυτό το αποθετήριο (repo) περιέχει μια σειρά από front-end ερωτήσεις συνέντευξης που μπορούν να χρησιμοποιηθούν κατά την εξέταση πιθανών υποψηφίων. Σε καμία περίπτωση δεν προτείνεται να θέσετε όλα τα ερωτήματα που βρίσκονται εδώ στον ίδιο υποψήφιο (αυτό θα έπαιρνε ώρες). Επιλέγοντας όμως μερικές από αυτές, θα μπορέσετε να επιλέξετε τον υποψήφιο με τις κατάλληλες για σας δεξιότητες.

Επίσης, πριν προχωρήσετε στις συνεντεύξεις, θα ήταν εξαιρετικά χρήσιμο να διαβάσετε το άρθρο της Rebecca Murphey “Baseline For Front-End Developers”.

Σημείωση: Λάβετε υπόψη ότι πολλές από αυτές τις ερωτήσεις είναι ελευθέρου θέματος και μπορεί να οδηγήσουν σε ενδιαφέρουσες συζητήσεις που θα σας πουν πολλά περισσότερα πράγματα σχετικά με τις δυνατότητες του υποψήφιου από μια απλή απάντηση.

Περιεχόμενα

  1. Αρχικοί Συντελεστές
  2. Γενικές Ερωτήσεις
  3. HTML Ερωτήσεις
  4. CSS Ερωτήσεις
  5. JS Ερωτήσεις
  6. jQuery Ερωτήσεις
  7. Coding Ερωτήσεις
  8. Διασκεδαστικές Ερωτήσεις
  9. Άλλες Εξαιρετικές Πηγές

[⬆] Αρχικοί Συντελεστές:

Οι περισσότερες ερωτήσεις προέκυψαν από ένα oksoclap thread που δημιουργήθηκε αρχικά από τον Paul Irish (@paul_irish) και στο οποίο συνείσφεραν τα παρακάτω άτομα:

[⬆] Γενικές Ερωτήσεις:

  • Τι μάθατε χτές/αυτή την εβδομάδα;
  • Τι σε ενθουσιάζει ή σας ενδιαφέρει σχετικά με τον προγραμματισμό;
  • Τι σκέφτεστε σχετικά με το UI, Ασφάλεια, Απόδοση, SEO, Συντηρησιμότητα και Τεχνολογία, ενώ υλοποιείτε μια web εφαρμογή ή ιστοσελίδα;
  • Μιλήστε σχετικά με το προτιμώμενο περιβάλλον ανάπτυξής σας. (OS, Editor, Φυλλομετρητές, εργαλεία κ.λπ.)
  • Με ποια έκδοση version control συστήματος είστε εξοικειωμένος;
  • Μπορείτε να περιγράψετε τη ροή της εργασίας σας κατά την διάρκεια δημιουργίας μιας ιστοσελίδας;
  • Μπορείτε να περιγράψετε τη διαφορά μεταξύ progressive enhancement και graceful degradation;
    • Επιπλέον βαθμοί για την περιγραφή feature detection
  • Εξηγήστε τι σημαίνει “Semantic HTML”.
  • Πώς μπορείτε να κάνετε optimize τα στοιχεία/πόρους των ιστοσελίδων σας;
    • Ψάχνοντας για μια σειρά από λύσεις που μπορεί να περιλαμβάνουν:
      • File concatenation
      • File minification
      • CDN Hosted
      • Caching
      • etc.
  • Γιατί είναι καλύτερα να σερβίρετε τα στοιχεία της ιστοσελίδας σας από πολλά domains;
    • Πόσα resources τη φορά μπορεί να κατεβάσει ένας φυλλομετρητής από κάθε domain;
  • Ονομάστε 3 τρόπους μείωσης του page load. (θεωρητικός ή πραγματικός χρόνος φόρτωσης)
  • Αν μπείτε σε κάποιο έργο στο οποίο χρησιμοποιούν tabs και εσείς έχετε συνηθίσει spaces, τι θα κάνατε;
    • Προτείνετε να χρησιμοποιηθεί στο έργο κάτι σαν το EditorConfig (http://editorconfig.org)
    • Συμμορφωθείτε με τις συμβάσεις (μείνετε συνεπής)
    • issue :retab! command
  • Δημιουργήστε μια απλή slideshow σελίδα
    • Επιπλέον βαθμοί αν δεν χρησιμοποιηθεί καθόλου JS.
  • Ποια εργαλεία χρησιμοποιείτε για να ελέγξετε την απόδοση του κώδικά σας;
    • Profiler, JSPerf, Dromaeo
  • Αν θα μπορούσατε να κατέχετε μια τεχνολογία φέτος, ποια θα ήταν αυτή;
  • Ποιες είναι οι διαφορές μεταξύ Long-Polling, WebSockets και SSE;
  • Εξηγήστε τη σημασία των standards και των οργανισμών τους.
  • Τι είναι FOUC; Πώς μπορείτε να αποφύγετε το FOUC;
  • Περιγράψτε όσο καλύτερα γίνεται τη διαδικασία από τη στιγμή που θα πληκτρολογείτε το URL ενός ιστότοπου μέχρι το τελείωμα του loading στην οθόνη σας.

[⬆] HTML Ερωτήσεις:

  • Τι κάνει το doctype?
  • Ποια είναι η διαφορά μεταξύ standards mode και quirks mode;
  • Ποιοι είναι περιορισμοί όταν “σερβίρετε” XHTML σελίδες;
    • Υπάρχουν προβλήματα όταν “σερβίρετε” σελίδες ως application/xhtml+xml;
  • Πώς σερβίρετε μια σελίδα με περιεχόμενο σε πολλές γλώσσες;
    • Σε τι είδους πράγματα πρέπει να είστε προσεκτικοί κατά τον σχεδιασμό ή την ανάπτυξη για πολυγλωσσικά sites;
  • Σε τι είναι χρήσιμα τα data- attributes;
  • Εξετάστε την HTML5 ως μια ανοιχτή web πλατφόρμα. Ποια είναι τα δομικά στοιχεία της;
  • Περιγράψτε τη διαφορά μεταξύ των cookies, sessionStorage και localStorage.
  • Μπορείτε να εξηγήσετε τη διαφορά μεταξύ GET και POST;

[⬆] CSS Ερωτήσεις:

  • Περιγράψτε τι κάνει ένα “reset” CSS αρχείο και γιατί είναι χρήσιμο.
  • Περιγράψτε τι είναι τα “Floats” και πώς λειτουργούν.
  • Περιγράψτε το z-index και πως λειτουργεί ο τρόπο στοίβαξης.
  • Ποιες είναι οι διάφορες τεχνικές “clearing” και ποια είναι η κατάλληλη για κάθε περίπτωση;
  • Εξηγήστε τί είναι τα CSS sprites, και πώς θα τα υλοποιούσατε σε μια σελίδα ή site.
  • Ποιες είναι οι αγαπημένες σας image replacement τεχνικές και ποιες χρησιμοποιείτε;
  • CSS property hacks, conditionally included .css αρχεία, ή… κάτι άλλο;
  • Πώς σερβίρεται τις σελίδες σας για feature-constrained browsers;
    • Ποιες τεχνικές/εργασίες χρησιμοποιείτε;
  • Ποιοι είναι οι διαφορετικοί τρόποι για αποκρύψετε οπτικά (visually hide) περιεχόμενο (και να είναι διαθέσιμo μόνο για screen readers);
  • Έχετε χρησιμοποιήσει ποτέ κάποιο grid system, και αν ναι, ποιο προτιμάτε;
  • Έχετε χρησιμοποιήσει ή υλοποιήσει media queries ή mobile specific layouts/CSS;
  • Κάποια εξοικείωση σε styling SVG;
  • Πώς θα βελτιστοποιήσετε τις ιστοσελίδες σας για εκτύπωση;
  • Ποια είναι μερικά από τα “gotchas” για συγγραφή αποτελεσματικής CSS;
  • Ποια είναι τα πλεονεκτήματα/μειονεκτήματα κατά την χρήση CSS preprocessors; (SASS, Compass, Stylus, LESS)
    • Εάν έχετε χρησιμοποιήσει CSS preprocessors, περιγράψτε τι σας αρέσει και τι όχι.
  • Πώς θα υλοποιούσατε ένα web design δείγμα που χρησιμοποιεί μη-standard γραμματοσειρές;
    • Webfonts (υπηρεσίες γραμματοσειρών όπως: Google Webfonts, Typekit etc.)
  • Εξηγήστε πώς ένας browser καθορίζει ποια στοιχεία ταιριάζουν με έναν CSS selector;
  • Εξηγήστε το “box model” και πως θα πείτε στον browser μέσω CSS να ρεντάρει (render) το layout σε διαφορετικά box models.
  • Τι κάνει το * { box-sizing: border-box; }? Ποια είναι τα πλεονεκτήματά του;
  • Αναφέρετε όσες τιμές (values) μπορείτε να θυμηθείτε για το display property.
  • Ποια είναι η διαφορά μεταξύ inline και inline-block;
  • Ποια είναι η διαφορά μεταξύ relative, fixed, absolute και statically τοποθετυμένου element;
  • Τι υπάρχοντα CSS frameworks έχετε χρησιμοποιήσει τοπικά, ή σε παραγωγή; (Bootstrap, PureCSS, Foundation κτλ.)
    • Αν ναι, ποια από αυτά; Αν μπορούσατε, πώς θα τα αλλάζατε/βελτιώνατε;
  • Έχετε παίξει με τις νέες CSS Flexbox ή Grid προδιαγραφές;
    • Αν ναι, τι γνώμη έχετε για την επίδοση τους?

[⬆] JS Ερωτήσεις:

  • Εξηγήστε το “event delegation”
  • Εξηγήστε πως λειτουργεί το this στην JavaScript
  • Εξηγήστε πως λειτουργεί η prototypal κληρονομικότητα
  • Πως κάνετε τεστ στη JavaScript;
  • AMD vs. CommonJS;
  • Τι είναι το hashtable;
  • Εξηγήστε γιατί το παρακάτω δεν λειτουργεί σαν IIFE: function foo(){ }();.
    • Τι χρειάζεται να αλάξει έτσι ώστε να λειτουργήσει σαν IIFE;
  • Ποια είναι η διαφορά ανάμεσα σε μια μεταβλητή που είναι: null, undefined και undeclared;
    • Πώς θα ελέγξετε οποιαδήποτε από τις παραπάνω καταστάσεις;
  • Τί είναι closure, και πως/γιατί να το χρησιμοποιήσετε;
  • Ποια είναι η πιο χαρακτηριστική χρήση των anonymous functions;
  • Εξηγήστε την “JavaScript module pattern” και πότε θα την χρησιμοποιούσατε.
    • Επιπλέον βαθμοί για την αναφορά καθαρού namespacing.
    • Τι γίνεται αν τα modules είναι namespace-less;
  • Πώς οργανώνετε τον κωδικό σας; (module pattern, classical inheritance;)
  • Ποια είναι η διαφορά μεταξύ host objects και native objects;
  • Διαφορά μεταξύ: function Person(){}, var person = Person(), και var person = new Person();
  • Ποια είναι η διαφορά μεταξύ .call and .apply;
  • Εξηγήστε τι είναι Function.prototype.bind;
  • Πότε βελτιστοποιείτε τον κώδικα σας;
  • Μπορείτε να μας εξηγήσετε πώς λειτουργεί η κληρονομικότητα (inheritance) στην JavaScript;
  • Πότε θα χρησιμοποιήσετε document.write();
    • Οι περισσότερες διαφημίσεις που δημιουργούνται χρησιμοποιούν ακόμα document.write () αν και η χρήση του είναι παρακινδυνευμένη
  • Ποια είναι η διαφορά μεταξύ feature detection, feature inference, και χρησιμοποιώντας το UA string
  • Εξηγήστε το AJAX με όσες περισσότερες λεπτομέρειες μπορείτε
  • Εξηγήστε πώς λειτουργεί το JSONP (και πως δεν είναι στην πραγματικότητα AJAX)
  • Έχετε χρησιμοποιήσει ποτέ JavaScript templating?
    • Αν ναι, ποιες libraries έχετε χρησιμοποιήσει; (Mustache.js, Handlebars κτλ.)
  • Εξηγήστε τι είναι το “hoisting”.
  • Περιγράψτε το event bubbling.
  • Ποια είναι η διαφορά μεταξύ “attribute” και “property”;
  • Γιατί η επέκταση (extending) των built in JavaScript objects δεν είναι καλή ιδέα;
  • Γιατί η επέκταση (extending) των built ins είναι καλή ιδέα;
  • Ποια είναι η διαφορά μεταξύ document load event και document ready event;
  • Ποια είναι η διαφορά μεταξύ == and ===;
  • Εξηγήστε πώς θα πάρετε μια παράμετρο query string από το URL του παράθυρου (window) του browser.
  • Εξηγήστε την πολιτική same-origin σε σχέση με την JavaScript.
  • Περιγράψτε τις inheritance patterns της JavaScript.
  • Κάνε το παρακάτω να δουλέψει:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Περιγράψτε μια στρατηγική για memoization (αποφεύγοντας τον υπολογισμό επανάληψης) σε JavaScript.
  • Γιατί ονομάζεται Ternary expression, τι υποδεικνύει η λέξη “Ternary”;
  • Τι είναι η arity μιας συνάρτησης (function);
  • Τι σημαίνει "use strict";; Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα στην χρήση του;

[⬆] jQuery Ερωτήσεις:

  • Εξηγήστε το “chaining”.
  • Εξηγήστε το “deferreds”.
  • Ποιές jQuery βελτιστοποιήσεις μπορείτε να υλοποιήσετε;
  • Τι κάνει το .end();
  • Πώς, και γιατί, να χρησιμοποιήσεις namespace σε έναν bound event handler;
  • Ονόμασε 4 διαφορετικές τιμές που μπορείς να περάσεις στην jQuery method.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object κτλ.
  • Τι είναι η effects (ή fx) queue;
  • Ποια είναι η διαφορά μεταξύ .get(), [], και .eq();
  • Ποια είναι η διαφορά μεταξύ .bind(), .live(), και .delegate()?
  • Ποια είναι η διαφορά μεταξύ $ and $.fn; Η απλά τι είναι $.fn.
  • Βελτιστοποιήστε τον παρακάτω selector:
$(".foo div#bar:eq(0)")

[⬆] Code Ερωτήσεις:

modulo(12, 5) // 2

Ερώτηση: Υλοποιήστε μια modulo function που ικανοποιεί το παραπάνω

"i'm a lasagna hog".split("").reverse().join("");

Ερώτηση: Τι τιμή επιστρέφει από την παραπάνω δήλωση;

Απάντηση: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Ερώτηση: Ποια είναι η τιμή του window.foo?

Απάντηση: “bar” (μόνο αν το window.foo ήταν falsey αλλιώς θα διατηρούσε την τιμή)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Ερώτηση: Ποιο είναι το αποτέλεσμα των δύο παραπάνω alerts?

Απάντηση: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Ερώτηση: Ποια είναι η τιμή του foo.length?

Απάντηση: 2

[⬆] Διασκεδαστικές Ερωτήσεις:

  • Ποιο είναι το πιο σημαντικό πράγμα που έχετε υπολοιήση, ποιο είναι αυτό για το οποίο αισθάνεστε πραγματικά περήφανος;
  • Ποια είναι τα αγαπημένα σας εργαλεία στα developer tools που χρησιμοποιείτε;
  • Έχετε κάποια pet projects; Τι ακριβώς;
  • Ποιο είναι το αγαπημένο σας χαρακτηριστικό στον Internet Explorer?

[⬆] Άλλες Εξαιρετικές Πηγές:

\ No newline at end of file diff --git a/_site/translations/hebrew/index.html b/_site/translations/hebrew/index.html deleted file mode 100644 index a3c106b1a..000000000 --- a/_site/translations/hebrew/index.html +++ /dev/null @@ -1,52 +0,0 @@ -שאלות לראיונות עבודה בנושא פיתוח - צד לקוח ★ Front-end Job Interview Questions

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

שאלות לראיונות עבודה בנושא פיתוח - צד לקוח

המסמך כולל מספר שאלות המופיעות בראיונות עבודה בנושא צד-לקוח היכולות לסייע להעריך את הידע של מועמדים פוטנציאליים. אין צורך להשתמש בכל אחת מהשאלות הנ״ל על מועמד אחד מסוים (הדבר יימשך שעות). בחירת מספר שאלות מסוימות מהרשימה יאפשר למראיין להעריך את הכישורים הנדרשים מהמועמד.


שימו לב כי שאלות רבות ברשימה הן פתוחות, ועשויות להוביל לדיון מעניין בנושא התשובה או הגישה של המועמד, וכתוצאה מכך ללמד את המראיין הרבה יותר לגבי כישורי המועמד מאשר שאלות סגורות.

תוכן העניינים:

  1. שאלות כלליות
  2. שאלות בנושא HTML
  3. שאלות בנושא CSS
  4. שאלות בנושא JavaScript
  5. שאלות בנושא נגישות (קישור לאתר חיצוני)
  6. שאלות בנושא בדיקות (Testing)
  7. שאלות בנושא ביצועים (Performance)
  8. שאלות בנושא רשתות (Networks)
  9. שאלות תכנות
  10. שאלות כיפיות

כיצד לסייע לפרויקט

  1. רשימת המשתתפים
  2. כיצד לתרום לפרויקט
  3. רשיונות

שאלות כלליות:

  • מה למדת אתמול/ בשבוע האחרון?
  • מה הדבר שמרגש אותך בנוגע לתכנות?
  • ספר/י על אתגר טכני שחווית לאחרונה, וכיצד פתרת אותו?
  • באילו שיטות השתמשת כדי לשפר ביצועים בתהליך הבנייה או התחזוקה של אתר?
  • ספר/י על עקרונות SEO שבהם השתמשת לאחרונה.
  • האם יש לך דוגמאות לטכניקות נפוצות שבהן השתמשת כדי להתמודד עם אתגרי האבטחה בפיתוח צד-לקוח?
  • באילו פעולות נקטת בפרויקטים שלך כדי לשפר את יכולת הניהול והתחזוקה של הקוד שלך?
  • ספר/י על סביבת הפיתוח המועדפת עליך/עלייך.
  • באיזו מערכת/מערכות ניהול גרסאות (Version Contro System) אתה נוהג להשתמש?
  • תאר/י את תהליך העבודה שלך כאשר את/ה בונה אתר.
  • אם יש לך 5 גיליונות סגנונות (stylesheets) שונים, מהי הדרך הטובה ביותר להטמיע אותם באתר?
  • מה ההבדל בין "Progressive Enhancement" לבין "Graceful Degradation"?
  • כיצד תבצע/י אופטימיזציה לרשימת המשאבים (assets/ resources) של האתר?
  • כמה משאבים (resources) יוריד הדפדפן מדומיין נתון בכל פעם? מהם המקרים יוצאי הדופן?
  • מנה/מני 3 דרכים להפחתת זמן טעינת הדף (זמן ממשי או הזמן כפי שהוא נתפס ע״י המשתמש).
  • הצטרפת לפרויקט, והצוות משתמש בטאבים בעוד שאת/ה משתמש/ת ברווחים. מה תעשה/י?
  • תאר/י כיצד תיצור/תצרי דף מצגת פשוט.
  • לו היית יכול/ה ללמוד באופן יסודי טכנולוגיה אחת במהלך השנה הקרובה - איזו טכנולוגיה זו היתה?
  • הסבר/ הסבירי את החשיבות של standards ושל standards bodies.
  • מהו "Flash" או תוכן בלתי מעוצב, וכיצד תימנע/י מ-FOUC?
  • מהם "ARIA" וקוראי מסך, וכיצד תיצור/תצרי אתר נגיש?
  • מנה כמה נקודות בעד ונגד אנימציית CSS ואנימציית JavaScript.
  • מהן ראשי התיבות "CORS" ובאיזה תחום הן עוסקות?

שאלות בנושא HTML:

  • מה עושה doctype?
  • כיצד תספק/י דף/אתר במספר שפות?
  • לאילו דברים חשוב להיזהר או לשים לב כשבונים אתרים במספר שפות?
  • מה התועלת של התואר (attribute) בשם "-data"?
  • מהן אבני היסוד של HTML5?
  • תאר את ההבדלים בין "cookie", "sessionStorage", ו"localStorage".
  • תאר את ההבדלים בין <script>, <script async>, ו"<script defer>".
  • מדוע זה בדרך כלל רעיון טוב למקם את תגיד ה-CSS מסוג <link> בין תגיות <head></head> וקוד JS בדיוק לפני התגית <body/>? האם ישנם מקרים יוצאי דופן?
  • מהו progressive rendering?
  • לשם מה משתמשים בתכונה (attribute) בשם srcset בתגית image? הסבר/הסבירי את התהליך שהדפדפן משתמש בו על מנת להעריך את התכונה.
  • האם השתמשת ב-HTML templating languages אחרות בעבר?

שאלות בנושא CSS

  • מהי selector specificity וכיצד זה עובד?
  • מה ההבדל בין resetting לבין normalizing הגדרות CSS? באילו מהשניים תבחר/י ומדוע?
  • תאר/י מהם Floats וכיצד הם עובדים.
  • תאר/י מהו z-index וכיצד stacking context נוצר.
  • תאר/י מהו BFC או Block Formatting Context, וכיצד הוא עובד.
  • מהן צורות ה-clearing השונות, ובאילו מהן כדאי להשתמש ולשם מה?
  • כיצד תטפל/י בבעיות עיצוב המאפיינות דפדפן מסוים?
  • כיצד תתאים/י את האתר שלך לדפדפנים בעלי מגבלת מאפיינים (feature-constrained)? באילו טכניקות/ תהליכים תשתמש/י?
  • מהן הדרכים השונות להסתיר תוכן ולאפשר תצוגה שלו באמצעות קוראי מסך?
  • האם השתמשת בעבר בשיטת העיצוב grid? במידה וכן - איזו שיטה את/ה מעדיפ/ה?
  • האם השתמשת ב-media queries או בעיצוב מיוחד למובייל?
  • האם את/ה מכיר/ה את המונח styling SVG?
  • האם תוכל לתת דוגמה לסוג נוסף של '@media' פרט ל-'screen'?
  • מהם כמה עקרונות של כתיבת CSS אפקטיבי?
  • מה היתרונות/ חסרונות בשימוש במעבדי CSS? תאר מה אהבת/ אהבת פחות במעבדי CSS שבהם השתמשת בעבר.
  • כיצד תטמיע עיצוב לווב שמשתמש בפונטים לא סטנדרטיים?
  • הסבר/י כיצד הדפדפן קובע אילו אלמנטים מתאימים לאיזה סלקטור?
  • הסבר/י מהם pseudo-elements ולמה הם משמשים?
  • הסבר/י את הבנתך בנושא box model, וכיצד תאמר/י לדפדפן לרנדר את העיצוב במודל box model אחר?
  • מה עושה { ;box-sizing: border-box } *? מה יתרונותיו?
  • על מה אחראי התואר display? תנ/י דוגמה למספר שימושים שלו.
  • מה ההבדל בין inline לבין inline-block?
  • מה ההבדל בין relative, fixed, absolute ו-statically positioned?
  • באילו CSS frameworks השתמשת באופן מקומי, או בפרודקשן? כיצד תשנה/ תשפר אותם?
  • האם יצא לך להתנסות ב-CSS Flexbox או Grid specs?
  • הסבר/י את ההבדל בין לבנות אתר ריספונסיבי לבין לבנות אתר בגישת mobile first.
  • האם עבדת עם גרפיקת רטינה? במידה וכן, מתי ובאילו טכניקות השתמשת?
  • האם ישנה סיבה שבה תשתמש/י ב-()translate במקום absolute positioning, ולהיפך? מדוע?

שאלות בנושא JavaScript

  • הסבר/י את המונח event delegation.
  • הסבר/י כיצד this עובד בג׳אווהסקריפט.
  • הסבר/י כיצד prototypal inheritance עובדת.
  • מה דעתך על AMD לעומת CommonJS?
  • הסבר/י מדוע הקוד הבא לא יעבוד כ-IIFE:
    function foo(){ }();

    מה יש לשנות על מנת שהקוד יעבוד?
  • מה ההבדל בין null, undefined, ומשתנה שלא הוגדר? כיצד תבדוק/י את מצבם של משתנים מסוג זה?
  • מהו closure וכיצד תשתמש/י בו?
  • הסבר/י את ההבדל בין לולאת forEach לבין לולאת .map(), ומה הסיבה לבחור אחד על פני האחר?
  • לשם מה משתמשים על פי רוב בפונקציה אנונימית?
  • כיצד את/ה מארגן/ת את הקוד שלך (תבנית מודולים, תורשת קלאסית)?
  • מה ההבדל בין host objects לבין native objects?
  • מה ההבדלים בין שלוש הדוגמאות הבאות:
    -      function Person(){}
    -      var person = Person()
    -      var person = new Person()
    -    
  • מה ההבדל בין .call לבין .apply?
  • הסבר/י מהו Function.prototype.bind.
  • מה ההבדל בין feature detection, feature inference לבין שימוש ב-UA string?
  • הסבר/י מהו Ajax כמה שיותר לעומק.
  • מהם היתרונות והחסרונות של שימוש ב-Ajax?
  • הסבר/י כיצד JSONP עובד, ובמה הוא שונה מ-Ajax?
  • האם השתמשת בעבר ב-JavaScript templating? במידה וכן, באילו ספריות השתמשת?
  • מהו hoisting?
  • מהו event bubbling?
  • מה ההבדל בין attribute לבין property?
  • מדוע הרחבה של אוביקטים מסוג built-in בג׳אווהסקריפט אינו רעיון טוב?
  • מה ההבדל בין document load event לבין document DOMContentLoaded event?
  • מה ההבדל בין == לבין ===?
  • הסבר/י את מדיניות ה-same-origin בהקשר של ג׳אווהסקריפט.
  • כיצד תגרום/י לקוד הבא לעבוד:
    duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • מה משמעות השם Ternary operator, ומה מרמזת המילה Ternary?
  • מהו "use strict";? מה היתרונות והחסרות של שימוש בכלי זה?
  • צור/צרי לולאה שמבצעת עד 100 איטרציות תוך כדי שהיא מדפיסה "fizz" במכפלה של 3, "buzz" במכפלות של 5, ו-"fizzbuzz" במכפלות של 3 ו-5.
  • מדוע זה בדרך כלל רעיון טוב לא להשתמש ב-global scope של אתר?
  • לשם מה תשתמש/י במשהו כמו איבנט load? האם לאיבנט זה ישנם חסרונות? האם ידוע לך על אלטרנטיבות, ובאילו מקרים תשתמש/י בהם?
  • הסבר/י מהי אפליקציית עמוד יחיד (single page app), וכיצד תיצור/י כזו שתהיה SEO-friendly?
  • כמה ניסיון יש לך בשימוש ב-Promises ו/או ה-polyfills שלהן?
  • מהם היתרונות והחסרונות של שימוש ב-Promises לעומת שימוש ב-callbacks?
  • מהם כמה מהיתרונות והחסרונות של כתיבת קוד ג׳אווהסקיפט בשפה שמתקמפלת (compiles to) ג׳אווהסקריפט?
  • באילו כלים וטכניקות תשתמש/י כדי לדבג (debugging) קוד שנכתב בג׳אווהסקריפט?
  • באילו constructions של השפה תשתמש/י כדי לבצע איטרציה על איברים של אוביקט ואיברים של מערך?
  • הסבר/י את ההבדלים בין אוביקטים הניתנים לשינוי לבין כאלה שאינם ניתנים לשינוי (mutable/immutable).
    • תן/י דוגמה לאוביקט שאינו ניתן לשינוי (immutable) בג׳אווהסקריפט.
    • מהם היתרונות של immutability?
    • כיצד תוכל/י להשיג immutability בקוד שלך?
  • הסבר/י את ההבדל בין פונקציות סינכרוניות לא-סינכרוניות.
  • מהו event loop? מה ההבדל בין call stack לבין task queue?
  • הסבר/י את ההבדלים בשימוש ב-foo במקרים הבאים:
    -      function foo() {};
    -      var foo = function() {};
    -    
  • מה ההבדלים בין משתנים שנוצרו באמצעות מילות המפתח let, var, ו-const?
  • מה ההבדל בין constructors של מחלקה ב-ES6 לבין constructors של פונקציה ב-ES5?
  • האם תוכל/י להדגים מקרה שבו כדאי להשתמש בסינטקס פונקציות החץ החדש? כיצד סינטקס זה שונה מפונקציות אחרות?
  • מה היתרון בשימוש של סינטקס החץ => עבור method בתוך constructor?
  • מה ההגדרה של פונקציה מסוג higher-order?
  • תן/י דוגמה ל-destructuring של מערך או של אוביקט.
  • תן/י דוגמה לגמישות ביצירת strings שמציע שימוש ב-Template Literals הזמין ב-ES6.
  • תן/י דוגמה לפונקציית curry, והסבר/י אילו יתרונות מציע סינטקס זה?
  • מה היתרונות שבשימוש ב-spread syntax ומה ההבדל בינו לבין rest syntax?
  • האם ניתן לשתף קוד בין קבצים?
  • מה הסיבה שבגינה תרצה/י ליצור static class members?

שאלות בנושא בדיקות (Testing)

  • מהם חלק מהיתרונות והחסרונות בביצוע בדיקות לקוד שלך?
  • באילו כלים תשתמש/י כדי לבדוק את הפונקציונליות של הקוד שלך?
  • מה ההבדל בין unit test לבין functional/integration test?
  • מה היתרונות של כלי linting לקוד?

שאלות בנושא ביצועים (Performance)

  • באילו כלים תשתמש/י כדי לאתר באג ביצועים בקוד שלך?
  • באילו דרכים ניתן לשפר את ביצועי הגלילה באתר?
  • הסבר/י את ההבדלים בין layout, painting ו-compositing.

שאלות בנושא רשתות (Networks)

  • מדוע היה נהוג לספק את נכסי האתר (assets) מתוך מספר דומיינים שונים?
  • הסבר/י את התהליך מרגע שהמשתמש מקליד URL עד לסיום טעינת האתר על המסך.
  • מה ההבדלים בין Long-Polling, Websockets ואירועי Server-Sent?
  • הסבר את ה-headers הבאים:
    • Diff. between Expires, Date, Age and If-Modified-...
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • מהן HTTP methods? מנה/י את ה-HTTP methods שאת/ה מכיר/ה, והסבר/י אותן.

שאלות תכנות:

    מהו הערך של foo?

    -    var foo = 10 + '20';
    -  

    מה יהיה ה-output של הקוד הבא?

    -    console.log(0.1 + 0.2 == 0.3);
    -  

    כיצד תגרום/תגרמי לקוד הבא לעבוד?

    -    add(2, 5); // 7
    -    add(2)(5); // 7
    -  

    מה יהיה הערך המוחזר מהקוד הבא:

    -    "i'm a lasagna hog".split("").reverse().join("");
    -  

    מה הערך של window.foo?

    -    ( window.foo || ( window.foo = "bar" ) );
    -  

    מה תהיה התוצאה של שתי הודעות ה-alert המופיעות למטה?

    -    var foo = "Hello";
    -    (function() {
    -      var bar = " World";
    -      alert(foo + bar);
    -    })();
    -    alert(foo + bar);
    -  

    מהו הערך של foo.length?

    -    var foo = [];
    -    foo.push(1);
    -    foo.push(2);
    -  

    מהו הערך של foo.x?

    -    var foo = {n: 1};
    -    var bar = foo;
    -    foo.x = foo = {n: 2};
    -  

    מה יעשה הקוד הבא?

    -    console.log('one');
    -    setTimeout(function() {
    -      console.log('two');
    -    }, 0);
    -    console.log('three');
    -  

    מה ההבדל בין ארבע ה-promises הבאות?

    -    doSomething().then(function () {
    -      return doSomethingElse();
    -    });
    -
    doSomething().then(function () {
    -  doSomethingElse();
    -});
    -
    -doSomething().then(doSomethingElse());
    -
    -doSomething().then(doSomethingElse);
    -
    -

שאלות כיפיות:

  • ספר/י על פרויקט מעניין/ מגניב שעליו עבדת לאחרונה.
  • מהם הדברים שאת/ה אוהב/ת בנוגע לתוכנות הפיתוח איתן את/ה עובד/ת?
  • מי מעורר בך השראה בקהילת הפיתוח לווב?
  • האם יש לך פרויקטים אישיים? מאיזה סוג?
  • מה הפיצ׳ר האהוב עליך ב-Internet Explorer?
  • כיצד את/ה שותה את הקפה שלך?

תומכים:

פרויקט זה החל ב-2009 כשיתוף פעולה של @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal.

הפרויקט פעיל מאז בזכות תמיכתם של אנשים רבים ונהדרים.

\ No newline at end of file diff --git a/_site/translations/hungarian/index.html b/_site/translations/hungarian/index.html deleted file mode 100644 index eaf317979..000000000 --- a/_site/translations/hungarian/index.html +++ /dev/null @@ -1 +0,0 @@ -Interjú kérdések front-end fejlesztőknek ★ Front-end Job Interview Questions

Interjú kérdések front-end fejlesztőknek

Interjú kérdések front-end fejlesztőknek

Ebben a gyűjteményben összeválogattuk a legjobb front-end fejlesztő interjú kérdéseket. Ellenben nem tanácsoljuk az összes kérdés egyidejű feltevését, hiszen ez órákat venne igénybe de egy válogatott kérdéssorral megkönnyíthetjük a potenciális jelentkezők szelektálását.

Rebecca Murphey, Baseline For Front-End Developers cikke is hasznos alapja lehet egy interjúnak.

Megjegyzés: Ne feledd, hogy a kérdések többsége érdekes beszélgetésé alakulhat, ami többet elárulhat az emberről mintha csak egyszerű válaszokat adna.

Tartalom

  1. Eredeti közreműködők
  2. Általános kérdések
  3. HTML kérdések:
  4. CSS kérdések
  5. JS kérdések
  6. jQuery kérdések
  7. Példakódok
  8. Választható és vicces kérdések
  9. További referenciák

####[⬆] Eredeti közreműködők:

A kérdések többsége egy oksoclap beszélgetés alapján készült, amit Paul Irish (@paul_irish) kezdeményezett az alábbi közreműködőkkel:

####[⬆] Általános kérdések:

  • Tanultál valami újat a héten/tegnap és ha igen, mit?
  • Mi számodra a legérdekesebb és izgalmasabb a kódolás során?
  • Milyen UI, biztonsági, teljesítménybeli, SEO, karbantarthatósági és technológiai szempontokat tartasz szem elött fejlesztés közben?
  • Mi a számodra legelőnyösebb fejlesztői környezet? (operációs rendszer, szerkesztő, böngésző, fejlesztői eszközök, stb.)
  • Részletezd a munkafolyamatot, hogyan készítesz el egy weboldalt.
  • Mi a különbség a fokozatos javítása és a között, hogy a weboldalt folyamatosan optimalizálod régebbi és egyszerűbb felületekre is?
    • Bónusz pont a funkció működésének tesztelése adott eszközön.
  • Magyarázd el mit jelent a “szemantikus HTML”.
  • Milyen böngészőt és milyen eszközöket használsz a fejlesztéshez?
  • Hogyan optimalizálod egy weboldal forrásait/eszközeit?
    • Keress több megoldást, amik tartalmazzák az alábbiakat:
      • Fájl egyesítés
      • Fájl minimalizálás
      • CDN hoszting
      • Cachelés
      • stb.
  • Miert jobb az eszközöket egyszerre több domainnek is kiszolgálni?
    • Hány lekérdezés futhat a böngészőben egyidejűleg az adott domain irányába?
  • Nevezz meg 3 lehetőséget az oldalletöltés időtartámanak csökkentésére. (előtöltött vagy aktuális töltési idő)
  • Ha beszállsz egy projektbe, és ők tabot használnak te pedig szókozt a kód rendezésénél, mit teszel?
    • Tanácsolod, hogy használjatok valami technológiát, pl. EditorConfig
    • Elfogadod (vagy tartózkodsz)
    • issue :retab! command
  • Készíts egy egyszerű slideshow oldalt.
    • Bónusz pont ha nem szükséges hozzá JavaScript.
  • Milyen eszközökkel teszteled a kódod teljesítményét? ()
  • Ha idén elsajátíthatnál egy technológiát, mi lenne az?
  • Ismertesd a sztandardok fontosságát.
  • Mi a FOUC? Hogyan kerulöd el a FOUC-et?
  • Magyarázt el legjobb tudásod szerint mi történik a böngészőben attól kezdve hogy beírod az oldal url-jét, addig hogy az betöltődött a képernyőn.
  • Magyarázd el mi az ARIA és a képernyőolvasók, és hogy tudsz egy weboldalt hozzáférhetővé tenni hátrányos helyzetben élők számára.

####[⬆] HTML kérdések:

  • Mi a doctype feladata és hány fajtáját tudod megnevezni?
  • Mi a különbség a standard és a quirks módok között?
  • Nevezd meg az XHTML oldalak korlátait?
    • Van bármi akadálya annak, hogy egy oldalt application/xhtml+xml-ként szolgáljon ki?
  • Hogyan készítesz fel egy weboldalt többnyelvű tartalom megjelenítésére?
    • Mikre kell figyelni egy többnyelvű oldal tervezése és fejlesztése során?
  • Mire valók a data- attribútumok?
  • Tegyük fel, hogy a HTML5 egy nyílt webes felület. Mik az építőelemei?
  • Mi a különbség a cookie a sessionStorage és a localStorage között.
  • El tudod mondani mi a különbség a GET és a POST között?
  • Mi a különbség a <script>, <script async> és <script defer> között.

####[⬆] CSS kérdések:

  • Mire való a “reset” CSS fájl és mennyire hasznos?
  • Hogyan működik a CSS float?
  • Milyen clear technikákat ismersz és melyik milyen környezetben a megfelelő?
  • Magyarázd el a CSS sprites működését és, hogy hogyan alkalmazod egy weboldalon?
  • Mi a kedvenc képpel helyettesítő (image replacement) technikád és mit használsz mire?
  • CSS hackek, böngésző függő CSS fájlok, vagy… valami más?
  • Hogyan jelenítesz meg oldalakat korlátozott böngészőkben?
    • Milyen technológiákat/folyamatokat használsz?
  • Milyen módon tudsz tartalmakat vizuálisan elrejteni (és csak screen olvasók számára elérhetővé tenni)?
  • Használtál már “grid system”-et? Ha igen nevezz meg párat.
  • Használtál már “media query”-ket vagy mobil specifikus layoutokat/CSS-eket?
  • Jártas vagy az SVG használatában?
  • Hogyan alakítasz egy weboldalt nyomtatóbaráttá?
  • Mik a legjobb “ötletek” a hatékony CSS kód írásához?
  • Használsz CSS előfeldolgozó technilógiát? (SASS, Compass, Stylus, LESS)
    • Ha igen mit szeretsz és mit nem szeretsz bennük?
  • Hogyan valósítasz meg egy olyan dizájn kompozíciót, ami nem a szabványos betűtípusokat tartalmazza?
  • Miként határozza meg a böngésző a megfelelő CSS szelektort?
  • Hogyan értelmezed a “box model”-t és hogyan alkalmazod a böngészőkben?
  • Mit csinál a * { box-sizing: border-box; }? Mik az előnyei?
  • Sorold fel a display tulajdonság annyi értékét amennyit tudsz.
  • Mi a különbség az inline és az inline-block között?
  • Mi a különbség a relative , fixed, absolute és statikusan pozicionált elemek között?
  • A ‘C’ feloldása a CSS-ben a cascading (lépcsőzetes). Hogy van a prioritás meghatározva a stílusok közt (néhány példával)? Hogy használhatod ezt a rendszert a saját előnyödre?
  • Használtál már CSS keretrendszert? (Bootstrap, PureCSS, Foundation stb.)
  • Ha igen, melyiket? Ha tehetnéd, hogy változtatnád/fejlesztenéd tovább?
  • Foglalkoztál már az új CSS Flexbox és Grid specifikációkkal?
  • Miben más a reszponzív design és az adaptív design?
  • Dolgoztál már retina grafikával? Ha igen, milyen teknikákat használtál?

####[⬆] JS kérdések:

  • Mit jelent az event delegation?
  • Magyarázd el hogyan működik a this a JavaScript-ben.
  • Hogyan működik a protokol öröklés (prototypal inheritance)?
  • Hogyan teszteled a JavaScript kódodat?
  • AMD vs. CommonJS?
  • Mi a hashtábla?
  • Miért nem működik a következő kód IIFE-ként? function foo(){ }();
    • Mit kell megváltoztatni, hogy működjön?
  • Mit jelent az undefined és az undeclared változó?
    • Miként ellenőrzöd ezeket?
  • Mi a “closure”, milyen formáit ismered és hogyan használod azokat?
  • Hogyan néz ki egy anoním funkció?
  • Magyarázd el a JavaScript modul sablont és, hogy mikor használjuk.
    • Bónusz pont, ha említi a tiszta “namespace”-ket.
    • Mi történik akkor, ha a modul “namespace” mentes?
  • Miként rendszerezed a kódodat? (module pattern, classical inheritance)
  • Mi a különbség hoszt objektum és natív objektum között?
  • Mi a különbség az következő kódok között:
    function Person(){}, var person = Person() és var person = new Person()
  • Mi a különbség a .call és az .apply között?
  • Magyarázd el mire jó a Function.prototype.bind?
  • Mikor szoktad optimalizálni a kódodat?
  • Magyarázd el hogyan működik az öröklődés szabálya a JavaScript-ben?
  • Mikor használod a document.write() funkciót?
    • A legtöbb generált hírdetésben még mindig használják annak ellenére, hogy nem ajánlatos.
  • Mi a különbség a “feature” észlelés (detection), “feature” következtetés (inference) és az UA sztring használata között?
  • Magyarázd meg az AJAX működését a lehető legrészletesebben.
  • Magyarázd el, hogyan működik a JSONP (és miért nem AJAX valójában).
  • Használtál már JavaScript template rendszert?
    • Ha igen mit? (Mustache.js, Handlebars, stb.)
  • Mit jelent a “hoisting”?
  • Mit jelent az event bubbling?
  • Mi a különbség az “attribute” és a “property” között?
  • Miért nem jó ötlet kiegészíteni a beépített JavaScript objektumokat?
  • Miért jó ötlet kiegészíteni a bepített funkciókat?
  • Mi a különbség a “document load” és a “document ready” között?
  • Mi a különbség == és === között?
  • Hogyan olvasol be egy paramétert a böngésző ablak URL-ből?
  • Mit jelent a “same-origin” szabály a JavaScript-bet?
  • Ismertesd a JavaScript öröklési mintáját.
  • Javítsd ki az alábbi példát:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • írj le egy memorizáló stratégiát (ismétlődő kalkulációk nélkül) JavaScriptben.
  • Mit nevezünk “Ternary” kifejezésnek? Mire utal a “Ternary” szó?
  • Mennyi attribútumot lehet átadni egy funkciónak?
  • Mi a "use strict";, mik az előnyei és a hátrányai?
  • Készíts egy ciklust ami 100-ig számol, minden 3-al osztható számnál kiírja hogy “fizz”, minden 5-el osztható számnál kiírja hogy “buzz”, és minden 3-al és 5-el is osztható számnál kiírja hogy “fizzbuzz”
  • Általánosságban miért jó ötlet a weboldal global scope-ját érintetlenül hagyni?

####[⬆] jQuery kérdések:

  • Mit jelent a chaining?
  • Mit jelent a deferreds?
  • Milyen jQuery specifikus optimalizálást ismersz?
  • Mire használhatjuk az .end() funkciót?
  • Hogyan neveznél el egy kapcsolt esemény kezelőt (bound event handler) és miért?
  • Nevezz meg 4 különböző értéket, ami átadható egy jQuery folyamatnak.
    • Szelektor (sztring), HTML (sztring), Callback (funkció), HTMLElement, objektum, tömb, elemb tömb, jQuery objektum, stb.
  • Mit jelent az effektek (vagy fx) sorba állítas?
  • Mi a különbség .get(), [], és .eq() között?
  • Mi a különbség .bind(), .live(), és .delegate() között?
  • Mi a különbség $ és $.fn között? Vagy mit jelent a $.fn?
  • Optimalizáld a alábbi szelektort:
$(".foo div#bar:eq(0)")

####[⬆] Példakódok:

modulo(12, 5) // 2

Kérdés: Készítsd el a modulo funkció, hogy a fenti példa eredménye 2 legyen.

"i'm a lasagna hog".split("").reverse().join("");

Kérdés: Milyen értékkel tér vissza a fenti állítás?

Válasz: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Kérdés: Mi az értéke a window.foo-nak?

Válasz: “bar” (de csak ha a window.foo hamis egyébként megtartja az értékét.)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Kérdés: Mi a fenti két alert-nek a kimenete?

Válasz: “Hello World” és ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Kérdés: Mi a foo.length értéke?

Válasz: 2

####[⬆] Választható és vicces kérdések:

  • Mi a legjobb dolog, amit eddig kódoltál? Mire vagy a legbüszkébb?
  • Mi a kedvenced az általad használt fejlesztői eszközökben?
  • Van dédelgetett projekted? Ha igen, milyen?
  • Mit szeretsz a legjobban az Internet Explorerben?

####[⬆] További referenciák:

\ No newline at end of file diff --git a/_site/translations/index.html b/_site/translations/index.html deleted file mode 100644 index d8d04e6ad..000000000 --- a/_site/translations/index.html +++ /dev/null @@ -1 +0,0 @@ -Translations ★ Front-end Job Interview Questions
\ No newline at end of file diff --git a/_site/translations/indonesian/index.html b/_site/translations/indonesian/index.html deleted file mode 100644 index 8932ad802..000000000 --- a/_site/translations/indonesian/index.html +++ /dev/null @@ -1 +0,0 @@ -Daftar Pertanyaan Wawancara Kerja Front-End ★ Front-end Job Interview Questions

Daftar Pertanyaan Wawancara Kerja Front-End

Daftar Pertanyaan Wawancara Kerja Front-End

File ini berisi sejumlah pertanyaan teknis yang dapat digunakan saat mewawancarai calon pekerja. Namun, bukan berarti anda dianjurkan untuk bertanya kepada si calon pekerja dengan semua pertanyaan dari daftar di bawah ini (karena itu akan memakan waktu beberapa jam). Dengan cukup memilih beberapa pertanyaan dari daftar ini akan membantu anda mengenal kemampuan yang anda cari dari si calon pekerja.

Catatan: Perlu diingat bahwa kebanyakan pertanyaan-pertanyaan ini bersifat terbuka dan mungkin dapat mengarah menjadi diskusi menarik yang bisa memberikan gambaran lebih lanjut mengenai kemampuan seseorang.

Daftar Isi

  1. Pertanyaan Umum
  2. Pertanyaan HTML
  3. Pertanyaan CSS
  4. Pertanyaan JS
  5. Pertanyaan Pengujian
  6. Pertanyaan Kinerja
  7. Pertanyaan Jaringan
  8. Pertanyaan Koding
  9. Pertanyaan Seru / Sampingan

Cara Partisipasi

  1. Kontributor
  2. Cara Kontribusi
  3. Lisensi

Pertanyaan Umum:

  • Apa yang baru Anda pelajari kemarin / minggu ini?
  • Apa yang membuatmu tertarik dengan coding?
  • Tantangan teknis apa yang baru-baru ini Anda hadapi, dan bagaimana Anda mengatasinya?
  • Pertimbangan-pertimbangan apa yang Anda ambil dari sisi UI, Keamanan, Kinerja, SEO, Maintainability maupun Teknologi saat Anda membangun aplikasi web atau situs?
  • Jelaskan tentang lingkungan coding yang Anda sukai. (OS, Editor atau IDE, Browser, Tools, dll)
  • Sistem kontrol versi apa saja yang Anda kenali?
  • Dapatkah Anda menjelaskan alur kerja Anda ketika Anda membuat sebuah situs?
  • Katakan Anda memiliki 5 stylesheet yang berbeda, bagaimana cara terbaik untuk mengintegrasikannya ke situs Anda?
  • Dapatkah Anda menjelaskan perbedaan antara progressive enhancement dan graceful degradation?
  • Bagaimana Anda mengoptimalkan aset / resource sebuah website?
  • Berapa banyak resource yang didownload oleh browser dari domain pada suatu waktu?
    • Apa saja pengecualiannya?
  • Sebutkan 3 cara untuk mengurangi beban halaman (waktu yang dirasakan maupun waktu loading yang sebenarnya).
  • Jika Anda mendapatkan sebuah proyek, dan dalam proyek ini mereka menggunakan tab dan Anda menggunakan space, apa yang akan Anda lakukan?
  • Jelaskan bagaimana Anda membuat halaman slideshow sederhana.
  • Jika Anda bisa mempelajari satu teknologi tahun ini, apakah itu?
  • Jelaskan pentingnya standar dan badan-badan standar.
  • Apa itu Flash of Unstyled Content alias FOUC? Bagaimana Anda menghindari FOUC?
  • Jelaskan apa itu ARIA dan screenreader, dan bagaimana membuat sebuah website dapat diakses.
  • Jelaskan beberapa pro dan kontra animasi CSS dibandingkan animasi JavaScript.
  • Apa arti CORS dan tujuannya?

Pertanyaan HTML:

  • Apa yang doctype lakukan?
  • Apa perbedaan antara modus standar dan modus quirks?
  • Apa perbedaan antara HTML dan XHTML?
  • Apakah ada masalah dengan melayani halaman sebagai aplikasi/xhtml+xml?
  • Bagaimana Anda melayani halaman dengan konten dalam berbagai bahasa?
  • Apa saja hal yang harus Anda waspadai ketika mendesain atau mengembangkan situs multibahasa?
  • Apa kegunaan atribut data-?
  • Katakan HTML5 adalah platform web terbuka, apa saja yang membentuk HTML5?
  • Jelaskan perbedaan antara cookie, sessionStorage dan localStorage.
  • Jelaskan perbedaan antara <script>, <script async> dan <script defer>.
  • Mengapa meletakkan <link> CSS di antara <head></head> dan meletakkan <script> JS sebelum <body></body> dianggap baik pada umumnya? Apakah ada pengecualiannya?
  • Apa itu progressive rendering?
  • Apakah Anda pernah menggunakan bahasa HTML templating yang berbeda?
  • Jelaskan perbedaan antara GET danPOST.

Pertanyaan CSS:

  • Apa perbedaan antara class dan id dalam CSS?
  • Apa perbedaan antara reset dan normalisasi dalam CSS? Apa yang Anda pilih, dan kenapa?
  • Jelaskan float dan cara kerjanya.
  • Jelaskan z-index dan bagaimana susunan konteks terbentuk.
  • Apa saja teknik-teknik kliring, dan yang mana sesuai untuk konteks apa?
  • Jelaskan sprite CSS, dan bagaimana Anda implementasikan pada suatu halaman atau situs.
  • Apa teknik pengganti gambar favorit Anda? Dan yang mana akan Anda gunakan, lalu kapan digunakan?
  • Bagaimana anda menghadapi masalah styling yang spesifik pada browser?
  • Bagaimana Anda melayani halaman untuk browser dengan fitur terbatas?
    • Teknik / contents apa yang Anda gunakan?
  • Apa saja cara-cara untuk menyembunyikan suatu konten secara visual (dan membuatnya tersedia hanya untuk pembaca layar / screenreader)?
  • Apakah Anda pernah menggunakan sistem grid, dan jika pernah, apa yang lebih Anda sukai?
  • Apakah Anda pernah menggunakan atau menerapkan media query atau layout / CSS khusus untuk mobile?
  • Apakah Anda fasih dengan styling SVG?
  • Bagaimana Anda mengoptimalkan halaman web Anda untuk dicetak?
  • Apa saja yang perlu diwaspadai dalam menulis CSS yang efisien?
  • Apa keuntungan / kerugian dari menggunakan precontentsor CSS? (Sass, Compass, Stylus, LESS)
    • Jelaskan apa yang Anda sukai dan tidak sukai dari precontentsor CSS yang pernah Anda gunakan.
  • Bagaimana Anda akan menerapkan desain web comp yang menggunakan font non-standar?
  • Jelaskan bagaimana browser mencocokan suatu elemen dengan selector CSS.
  • Jelaskan apa itu pesudo-element dan bagaimana penggunaannya.
  • Jelaskan pemahaman Anda tentang model kotak, dan bagaimana Anda memberitahu suatu browser dalam CSS untuk menggunakan layout model kotak yang mana.
  • Apa yang terjadi dengan ini : { box-sizing: border-box; }? Apa keuntungannya?
  • Sebutkan sebanyak mungkin value untuk properti display yang anda ingat.
  • Apa perbedaan antara inline dan inline-block?
  • Apa perbedaan antara elemen yang diposisikan secara relative, fixed, absolute, dan static?
  • Huruf ‘C’ dalam CSS adalah singkatan dari Cascading. Bagaimana cara kerja prioritas dalam menentukan stylenya (berikan beberapa contoh)? Bagaimana Anda bisa menggunakan sistem ini untuk keuntungan Anda?
  • Framework CSS apa yang pernah Anda gunakan secara lokal, maupun dalam produksi? (Bootstrap, PureCSS, Foundation dll). Dan kalau bisa, bagaimana Anda ingin mengubah / memperbaikinya?
  • Apakah Anda pernah mencoba CSS Flexbox yang baru atau Grid specs?
  • Bagaimana desain responsif berbeda dari desain adaptif?
  • Apakah Anda pernah bekerja dengan grafis retina? Jika ya, kapan dan teknik apa yang Anda gunakan?
  • Apakah Anda mempunyai alasan untuk menggunakan translate() dibandingkan posisi absolute, ataupun sebaliknya? Kenapa?

Pertanyaan JS:

  • Jelaskan event delegation.
  • Jelaskan bagaimana cara kerja this dalam JavaScript.
  • Jelaskan cara kerja inheritance prototype.
  • Apa pendapat Anda mengenai AMD dan CommonJS?
  • Jelaskan mengapa berikut ini tidak bekerja sebagai IIFE: function foo () {} ();.
    • Apa yang perlu diubah untuk membuatnya sebagai IIFE?
  • Apa perbedaan antara variabel: null,undefined dan undeclared?
    • Bagaimana Anda menguji status-status variabel ini?
  • Apa itu closure, dan bagaimana / mengapa Anda akan menggunakannya?
  • Bagaimana biasanya fungsi anonim (anonymous function) digunakan?
  • Bagaimana Anda mengatur kode Anda? (pola modul, warisan klasik?)
  • Apa perbedaan antara host object dan native object?
  • Apa perbedaan antara: function Person(){}, var person = Person(), dan var person = new Person()?
  • Apa perbedaan antara .call dan.apply?
  • Jelaskan Function.prototype.bind.
  • Kapan saja document.write () digunakan?
  • Kapan saja Anda mengoptimalkan kode Anda?
  • Apa perbedaan antara fitur deteksi, fitur inferensi, dan penggunaan string UA?
  • Jelaskan AJAX sedetail mungkin.
  • Apa keuntungan dan kerugian menggunakan AJAX?
  • Jelaskan bagaimana cara kerja JSONP (dan bagaimana itu bukan AJAX).
  • Apakah Anda pernah menggunakan JavaScript template?
    • Kalau ya, library apa yang pernah Anda gunakan? (Mustache.js, Handlebars dll.)
  • Jelaskan “hoisting”.
  • Jelaskan event bubbling.
  • Apa perbedaan antara “atribut” dan “properti”?
  • Mengapa tidak baik meng-extend object Javascript built-in?
  • Apa perbedaan antara document load dan document ready?
  • Apa perbedaan antara == dan ===?
  • Jelaskan kebijakan same-origin dalam konteks JavaScript.
  • Kerjakan ini :
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Mengapa disebut ekspresi Ternary, dan apa maksud “Ternary”?
  • Apa itu "use strict";? Apa keuntungan dan kerugian dalam penggunaannya?
  • Buatkan loop yang beriterasi sampai 100, dan print “fizz” pada kelipatan 3, “buzz” pada kelipatan 5 dan “fizzbuzz” pada kelipatan 3 dan 5.
  • Kenapa pada umumnya, lebih baik membiarkan scope global dalam suatu website sebagai apa adanya dan jangan diutak-atik?
  • Kenapa load event digunakan? Apakah event ini mempunyai kerugiannya? Apakah Anda tau cara alternatif lain, dan kenapa Anda menggunakan cara itu?
  • Jelaskan apa itu single page app, dan bagaimana membuatnya ramah SEO?
  • Sejauh apa pengalaman Anda dengan promise dan / atau polyfills?
  • Apakah pro dan kontrak menggunakan promise dibandingkan callback?
  • Apa keuntungan / kerugian menulis kode JavaScript dalam bahasa yang kompile ke JavaScript?
  • Program dan teknik apa yang Anda gunakan dalam mendebug kode Javascript?
  • Konstruksi bahasa apa yang Anda gunakan untuk mengiterasi properti objek dan array?
  • Jelaskan perbedaan antara object mutable dan immutable
    • Apa contoh objek immutable dalam JavaScript?
    • Apa pro dan kontra immutability?
    • Bagaimana Anda mencapai immutability dalam kode Anda?
  • Jelaskan perbedaan antara fungsi synchronous dan asynchronous
  • event loop itu apa?
  • Perbedaan antara call stack dan task queue itu apa?

Pertanyaan Pengujian

  • Apakah keuntungan / kerugian menguji kode Anda?
  • Program apa yang Anda gunakan untuk menguji kinerja kode Anda?
  • Apa saja perbedaan antara tes unit dan tes fungsi/integrasi?
  • Apakah tujuan program lint?

Pertanyaan Kinerja

  • Tool apa yang Anda gunakan untuk mencari masalah kinerja dalam kode Anda?
  • Apa saja cara-cara yang dapat meningkatkan kinerja scrolling dalam website Anda?
  • Jelaskan perbedaan antara layout, painting, dan compositing.

Pertanyaan Jaringan:

  • Secara tradisional, mengapa lebih baik untuk melayani aset situs dari beberapa domain?
  • Jelaskan semampu Anda, bagaimana contents kerja dari saat Anda mengetikkan URL situs web sampai saat halamannya selesai tampil di layar Anda.
  • Apakah perbedaan antara Long-Polling, Websockets dan Server-Sent Events (SSE)?
  • Jelaskan request dan response header berikut ini:
    • Perbedaan antara Expires, Date, Age dan If-Modified-…
    • Do Not Track (DNT)
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • aksi HTTP itu apa? Sebutkan aksi-aksi HTTP yang Anda tahu, dan jelaskan.

Pertanyaan koding:

Pertanyaan: Apakah hasil foo?

var foo = 10 + '20';

Pertanyaan: Bagaimana Anda akan membuat fungsi berikut ini bekerja?

add(2, 5); // 7
add(2)(5); // 7

Pertanyaan: Apakah hasil yang akan dikembalikan dari pernyataan berikut?

"i'm a lasagna hog".split("").reverse().join("");

Pertanyaan: Apakah nilai window.foo?

( window.foo || (window.foo = "bar") );

Pertanyaan: Apakah hasil dari dua alert di bawah ini?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pertanyaan: Apakah hasil foo.length?

var foo = [];
foo.push (1);
foo.push (2);

Pertanyaan: Apakah hasil foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pertanyaan: Apakah hasil yang akan diprint dalam kode berikut ini?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Pertanyaan Seru / Sampingan:

  • Apa saja proyek menarik yang baru-baru ini Anda kerjakan?
  • Apa sajakah hal-hal yang Anda sukai tentang alat pengembang yang Anda gunakan?
  • Apakah Anda mempunyai proyek yang anda sukai? Apa saja?
  • Apa fitur favorit Anda di Internet Explorer?
  • Apa tipe kopi favorit Anda?

Contributors:

Dokumen ini dimulai pada tahun 2009 sebagai kolaborasi dari @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed dan @iansym.

Dari sejak itu, dokumen ini sudah menerima kontribusi lebih dari 100 developers.

\ No newline at end of file diff --git a/_site/translations/italian/index.html b/_site/translations/italian/index.html deleted file mode 100644 index 920d6f174..000000000 --- a/_site/translations/italian/index.html +++ /dev/null @@ -1 +0,0 @@ -Domande per il colloquio di lavoro per front-end ★ Front-end Job Interview Questions

Domande per il colloquio di lavoro per front-end

Domande per il colloquio di lavoro per front-end

Questo repository contiene una serie di domande che possono essere usate nei colloqui di lavoro quando si esaminano i potenziali candidati per il ruolo di front-end. Non è affatto consigliato usare ogni singola domanda con lo stesso candidato (richiederebbe ore). Scegliere alcune di queste domande dalla lista dovrebbe aiutarti ad esaminare le skill che richiedi.

L’articolo Baseline For Front-End Developers di Rebecca Murphey è un’ottima risorsa da leggere prima di affrontare un colloquio.

Nota: Tieni presente che molte di queste domande sono a risposta aperta e possono portare a interessanti discussioni che ti possono far capire le capacità di una persona più di quello che farebbe una risposta diretta.

Indice dei Contenuti

  1. Collaboratori Originali
  2. Domande Generali
  3. Domande Specifiche su HTML
  4. Domande Specifiche su CSS
  5. Domande Specifiche su JS
  6. Domande Specifiche su jQuery
  7. Domande con Codice
  8. Domande per Divertimento
  9. Altre Ottime Risorse

####[⬆] Collaboratori Originali:

La maggior parte delle domande sono state prese da una discussione su oksoclap originariamente creata da Paul Irish (@paul_irish) e con il contributo delle seguenti persone:

####[⬆] Domande Generali:

  • Cosa hai imparato ieri/questa settimana?
  • Cosa ti entusiasma o ti interessa della programmazione?
  • Qual è una sfida tecnica che hai incontrato e come l’hai risolta?
  • Quali considerazioni fai riguardo alla UI, alla Sicurezza, alle Prestazioni, al SEO, alla Manutenibilità o alla Tecnologia mentre costruisci una applicazione web o un sito?
  • Parla del tuo ambiente di sviluppo preferito. (Sistema Operativo, Editor di testo, Browser, Strumenti ecc.)
  • Con quali sistemi di controllo di versione [VCS] hai familiarità?
  • Puoi descrivere il tuo metodo di lavoro quando crei una pagina web?
  • Se avessi 5 fogli di stile differenti, come ti comporteresti per integrarli al meglio nel sito?
  • Puoi descrivere la differenza tra miglioramento progressivo [progressive enhancement] e degradazione elegante [graceful degradation]?
  • Come ottimizzeresti le risorse/asset di un sito?
  • Quante risorse scaricherà per volta un browser da uno specifico dominio?
    • Quali sono le eccezioni?
  • Citami 3 modi per diminuire il caricamento della pagina. (percepito o effettivo tempo di caricamento)
  • Se cominci a lavorare su un progetto già iniziato dove vengono usati tab invece di spazi, cosa fai?
  • Descrivi come creeresti una semplice pagina con slideshow.
  • Se avessi la possibilità id diventare esperto in una tecnologia, quale sceglieresti?
  • Spiega l’importanza degli standard e degli enti di normazione.
  • Cosa è il FOUC? Come eviti il FOUC?
  • Spiega cosa sono ARIA e lettori di schermo [screenreaders] e come rendere un sito web accessibile.
  • Spiega alcuni dei pro e contro delle animazioni CSS rispetto alle animazioni Javascript.

####[⬆] Domande su HTML:

  • Cosa fa il doctype?
  • Qual è la differenza tra standard mode e quirks mode?
  • Qual è la differenza tra HTML e XHTML?
  • Ci sono dei problemi a servire le pagine come application/xhtml+xml?
  • Come servi una pagina con il contenuto in più lingue?
  • A cosa devi far attenzione quando progetti o sviluppi siti multilingua?
  • Per cosa sono utili gli attributi data-?
  • Considera HTML5 come una piattaforma web aperta. Quali sono i mattoni di HTML5?
  • Descrivi le differenze tra cookie, sessionStorage e localStorage.
  • Descrivi la differenza tra <script>, <script async> e <script defer>.
  • Perche è generalmente una buona idea posizionare CSS <link> tags all’interno di <head></head> e Javascript <script> tags appena prima di </body>? Conosci eccezioni?
  • Cos’è il rendering progressivo [progressive rendering]?
  • Hai mai utilizzato differeti liguaggi di templating HTML prima?

####[⬆] Domande Specifiche su CSS:

  • Descrivi cosa fa un file CSS “reset” e in cosa è utile.
  • Descrivi i Float e come funzionano.
  • Quali sono le varie tecniche di clearing e quale è appropriata per quale contesto?
  • Spiega gli sprite CSS, e come li implementeresti in una pagina o in un sito.
  • Quali sono le tue tecniche di sostituzione immagini [image replacement] preferite e quale usi quando?
  • Hack delle proprietà CSS, file .css inclusi con condizioni, o… altro?
  • Come servi le tue pagine per i browser con funzionalità limitate?
    • Che tecniche/processi usi?
  • Quali sono i vari modi per nascondere visualmente il contenuto (e renderlo disponibile solo per gli screen reader)?
  • Hai mai usato un sistema di griglie [grid system], e se sì, qual è il tuo preferito?
  • Hai mai usato o implementato media queries o CSS/layout specifici per mobile?
  • Familiarità con lo styling SVG?
  • Come ottimizzi le tue pagine web per la stampa?
  • Quali sono alcuni dei “trucchi” per scrivere CSS efficiente?
  • Quali sono i vantaggi/svantaggi nell’usare i preprocessori CSS? (SASS, Compass, Stylus, LESS)
    • Se sì, descrivi cosa ti piace e cosa non ti piace dei preprocessori CSS che hai usato.
  • Come implementeresti una grafica web che usa font non standard?
    • Webfonts (servizi di font tipo: Google Webfonts, Typekit, ecc…)
  • Spiega come un browser determina quali elementi corrispondono a un selettore CSS.
  • Spiega la tua comprensione del box model e come useresti i CSS per dire al browser di rappresentare il tuo layout nei vari box model.

####[⬆] Domande Specifiche su JS:

  • Spiega l’event delegation.
  • Spiega come funziona this in JavaScript.
  • Spiega come funziona l’ereditarietà prototipale [prototypal inheritance].
  • Come fai a testare il tuo codice JavaScript?
  • AMD contro CommonJS?
  • Cosa è una hashtable?
  • Spiega perché il seguente codice non funziona come UN IIFE: function foo(){ }();.
    • Cosa c’è bisogno di cambiare per renderlo correttamente un IIFE?
  • Quale è la differenza tra una variabile che è: null, undefined or undeclared?
    • Come faresti per controllare questi stati?
  • Cosa è una chiusura [closure], e come/perché ne useresti una?
  • Qual è l’uso tipico di una funzione anonima?
  • Spiega il “JavaScript module pattern” e quando lo useresti.
    • Punti bonus se menziona namespacing pulito.
    • E se i tuoi moduli sono senza namespace?
  • Come organizzi il tuo codice? (module pattern, ereditarietà classica?)
  • Qual è la differenza tra oggetti host e oggetti nativi?
  • Differenza tra: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual è la differenza tra .call e .apply?
  • Spiega Function.prototype.bind?
  • Quando ottimizzi il tuo codice?
  • Puoi spiegare come funziona l’ereditarietà in JavaScript?
  • Quando useresti document.write()?
    • La maggior parte delle pubblicità usa document.write() sebbene il suo utilizzo venga malvisto
  • Qual è la differenza tra il rilevamento di funzionalità [feature detection], la deduzione di funzionalità [feature inference], e l’uso della stringa UA
  • Spiega AJAX nel modo più dettagliato possibile
  • Spiega come funziona JSONP (e come non è veramente AJAX)
  • Hai mai usato il templating JavaScript?
    • Se se sì, quali librerie hai utilizzato? (Mustache.js, Handlebars ecc…)
  • Spiega “hoisting”.
  • Descrivi l’event bubbling.
  • Qual è la differenza tra un “attribute” e una “property”?
  • Perché extending built negli oggetti JavaScript non è una buona idea?
  • Perché extending built è una buona idea?
  • Differenza tra l’evento document load e l’evento document ready?
  • Qual è la differenza tra == e ===?
  • Spiega come prenderesti il parametro query string dall’URL della finestra del browser.
  • Spiega la policy “stessa origine” [same-origin] per quanto riguarda JavaScript.
  • Descrivi i pattern di ereditarietà in JavaScript.
  • Cosa ottieni da:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Descrivi la tecnica della memoizzazione (evitando la ripetizione del calcolo) in JavaScript.
  • Perché è chiamata espressione Ternaria, cosa indica la parola “Ternaria”?
  • Cosa è l’arietà di una funzione?
  • Cosa è "use strict";? Quali sono i vantaggi e gli svantaggi nell’usarlo?

####[⬆] Domande Specifiche su jQuery:

  • Spiega la “concatenazione” [chaining].
  • Spiega “deferreds”.
  • Quali sono alcune ottimizzazioni specifiche per jQuery che puoi implementare?
  • Cosa fa .end()?
  • Come, e perché, assegneresti un namespace al gestore di un evento?
  • Citami 4 differenti valori che puoi passare al metodo jQuery.
    • Selettore [selector] (testo), HTML (testo), Callback (funzione), HTMLElement, oggetti, array, element array, oggetto jQuery, ecc…
  • Cosa è la coda di effetti [fx queue]?
  • Qual è la differenza tra .get(), [], e .eq()?
  • Qual è la differenza tra .bind(), .live(), e .delegate()?
  • Qual è la differenza tra $ e $.fn? O anche solo cosa è $.fn.
  • Ottimizza questo selettore:
$(".foo div#bar:eq(0)")

####[⬆] Domande con Codice:

modulo(12, 5) // 2

Domanda: Implementa la funzione modulo che soddisfi quanto sopra

"i'm a lasagna hog".split("").reverse().join("");

Domanda: Quale valore viene ritornato dalla dichiarazione qui sopra?

Risposta: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Domanda: Qual è il valore di window.foo?

Risposta: “bar” (solo se window.foo era falso altrimenti manterrà il suo valore)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Domanda: Qual è il risultato dei due alert qui sopra?

Risposta: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Domanda: Qual è il valore di foo.length?

Risposta: 2

####[⬆] Domande per Divertimento:

  • Qual è la cosa più bella che hai mai sviluppato, di cosa sei più orgoglioso?
  • Quali sono le tue parti preferite degli strumenti di sviluppo che usi?
  • Hai qualche progetto personale? Di che tipo?
  • Qual è la tua feature preferita di Internet Explorer?

####[⬆] Altre Ottime Risorse:

\ No newline at end of file diff --git a/_site/translations/japanese/index.html b/_site/translations/japanese/index.html deleted file mode 100644 index 6b9e7a628..000000000 --- a/_site/translations/japanese/index.html +++ /dev/null @@ -1 +0,0 @@ -フロントエンドデベロッパー面接時の質問事項 ★ Front-end Job Interview Questions

フロントエンドデベロッパー面接時の質問事項

フロントエンドデベロッパー面接時の質問事項

@バージョン 2.0.0

本レポジトリはフロントエンドデベロッパー志願者のポテンシャルを見極めるのに有効な面接時の質問事項を列挙します。全ての下記質問事項を一人の志願者に聞くことは推奨されません(それは数時間もかかってしまうでしょう)。あなたが必要としているスキルを見極めるためには、下記の質問リストからいくつかの項目を選択するのがよいでしょう。

Rebecca MurpheyBaseline For Front-End Developersもとても参考になるので面接前によく読むことをおすすめします。

注意: これらの質問の多くはオープンエンド型の質問であり、志願者から興味深い考えを引き出すことができるでしょう。この回答は単純でストレートな回答よりもより志願者の能力を見極めるのに役立ちます。

オリジナルのコントリビューター

質問の多くはPaul Irish (@paul_irish)と下記のコントリビューターによって作成されたoksoclapスレッドをもとに作成されています。

一般的な質問事項

  • 昨日・今週に何を学びましたか?
  • 何があなたをコーディングに惹きつけていますか?
  • 最近直面した技術的な困難はどんなものですか?また、それをどのように解決しましたか?
  • ウェブアプリやウェブサイトを構築する際にユーザーインターフェース、パフォーマンス、SEO、メンテナンス性などについてどのように考えますか?
  • 好きな開発環境について教えてください。(OS、エディタ、ブラウザ、ツール等)
  • webページを作るときのあなたのワークフローを教えてください。
  • どのバージョン管理ツールに慣れていますか?(Git, SVNなど)
  • 5つの異なるスタイルシートをウェブサイトに統合する最適な方法はどんなものですか?
  • プログレッシブエンハンスメントとグレースフルデグラデーションの違いを説明してください。
  • ウェブサイトのアセット・リソースの最適化をどのように行いますか?
    • 下記のようないくつかのソリューションが期待されます。
      • ファイル結合
      • ファイルの縮小
      • CDNホスティング
      • キャッシュ利用
      • など
  • 複数のドメインからアセットを提供したほうがよい理由は何ですか?
  • 一度にブラウザが与えられたドメインからダウンロードできるリソースの数はいくつですか?
    • 例外は何ですか?
  • ページロードを減らす3つの方法を挙げてください。
  • プロジェクトに加入したときに、もし彼らがタブを使い、あなたがスペースを使っていたとしたらどうしますか?
    • EditorConfig (http://editorconfig.org) といったプラグインを利用するように提案する
    • 慣習に従う (一貫性を保つ)
    • issue :retab! command
  • シンプルなスライドショーのページを書いてください。
    • JSを使わなかったらボーナスポイント。
  • コードのパフォーマンスをテストするのにどんなツールを使いますか?
    • プロファイラー、JSPerf、Dromaeo
  • もし今年1つの技術をマスターできるとしたら、何をマスターしますか?
  • 標準化と標準化団体の重要性を説明してください。
  • FOUCとは何ですか? どのようにFOUCを防ぐことができますか?
  • ARIAとスクリーンリーダーとはなにか、またそれらがウェブサイトをどのようにアクセシブルにするか説明してください。
  • CSSアニメーションとJavaScriptアニメーションのそれぞれの利点と欠点を幾つか説明してください。
  • CORSとは何の省略ですか?また、それはどんな問題を表しますか?

HTMLに関する質問事項

  • doctypeは何をしているか説明してください。
  • スタンダードモードとクアークスモードの違いは何ですか?
  • XHTMLページを提供するときの制限は何ですか?
    • application/xhtml+xmlとしてページを提供することに何か問題はありますか?
  • 多言語でコンテンツをどのように提供しますか?
    • 多言語化サイトのデザイン・開発時にどのようなことに注意すべきですか?
  • data-属性は何にとって良いですか?
  • HTML5をオープンなWEBプラットフォームとしてみなしましょう。HTML5の基本的な構成要素は何ですか?
  • クッキー、セッションストレージ、ローカルストレージの違いを述べてください。

JSに関する質問事項

  • イベントデリゲーションを説明してください。
  • JavaScriptにおいてthisがどのように機能するか説明してください。
  • プロトタイプ継承がどのように機能するか説明してください。
  • JavaScriptをテストするのにどのように対処しますか?
  • AMDとCommonJS、何が違いますか?
  • ハッシュテーブルとは何ですか?
  • undefinedundeclared変数は何ですか?
  • クロージャとは何ですか? どのように、そしてなぜそれを使うのですか?
    • クロージャを作成するときに使うあなたの好きなパターンは何ですか? (即時実行関数表現にのみ適用)
  • 匿名関数が有効な典型的なユースケースは何ですか?
  • 「JavaScriptモジュールパターン」とそれを使う場面を説明してください。
    • 名前空間について述べたらボーナスポイント。
    • もしモジュールが名前空間無しだとしたらどうなりますか?
  • コードをどのように整理しますか?(モジュールパターン、古典的な継承を使う?)
  • ホストオブジェクトとネイティブオブジェクトの違いは何ですか?
  • 下記コードの違いは何?function Person(){}, var person = Person(), var person = new Person()
  • .call.applyの違いは何ですか?
  • Function.prototype.bindを説明してください。
  • いつコードを最適化しますか?
  • JavaScriptにおいてどのように継承が機能しているか説明してください。
  • document.write()はいつ使いますか?
    • 生成される広告の多くはいまだに嫌われている方法であるdocument.write()を活用しています。
  • feature detection, feature inference, UA stringの使用の違いは何ですか?
  • AJAXをできるだけ詳しく述べてください。
  • JSONPがどのように機能するか述べてください。(またそれがどのようにAJAXとは異なっているのか)
  • JavaScriptテンプレートは使ったことはありますか?
    • 使ったことがあるのなら、何のライブラリを使いましたか?(Mustache.js, Handlebarsなど)
  • 「巻き上げ」を説明してください。
  • イベントバブリングを説明してください。
  • 「属性」と「プロパティ」の違いは何ですか?
  • どうしてビルトインJavaScriptを拡張することは良くないのですか?
  • ドキュメントロードイベントとドキュメントレディイベントの違いを述べてください。
  • =====の違いは何ですか?
  • ブラウザのウィンドウURLからクエリ文字列をどのように取得するかを説明してください。
  • JSに関するsame-origin policyを説明してください。
  • JavaScriptにおける継承パターンを述べてください。
  • 下記を動くように書き変えてください。
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • JavaScriptにおけるメモ化(計算の繰り返しの回避)の方針について述べてください。
  • 三項演算子と呼ばれる理由は何ですか? 「三項」という言葉が示していることは何ですか?
  • 関数のarityとは何ですか?
  • "use strict";とは何ですか? これを使うことのメリット、デメリットは何ですか?

JSコードの例

~~3.14

質問: 上ステートメントで得られる値は何ですか?
回答: 3

"i'm a lasagna hog".split("").reverse().join("");

質問: 上ステートメントで得られる値は何ですか?
回答: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

質問: window.fooの値は何ですか?
回答: "bar"
window.fooがfalseと判断される場合のみ。trueの場合はその値を保持し続ける。

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

質問: 上2つのアラートの結果はどうなりますか?
回答: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

質問: foo.lengthの値はどうなりますか?
回答: 2

var foo = {};
foo.bar = 'hello';

質問: foo.lengthの値はどうなりますか?
回答: undefined

jQueryに関する質問事項

  • 「chaining(チェイン)」を説明してください。
  • 「deferreds」を説明してください。
  • jQueryに関する最適化としてどんなことができますか?
  • .end()は何ですか?
  • イベントハンドラに名前空間を与えるにはどのようにすればいいですか。またなぜ名前空間を与えますか。
  • jQueryメソッドに渡すことができる4つの異なる値を挙げてください。
    • セレクター (string)、HTML (string)、コールバック (function)、HTMLエレメント、オブジェクト、配列、エレメントの配列、jQueryオブジェクト等
  • エフェクト(あるいはfx)キューとは何ですか?
  • .get()[].eq()の違いは何ですか?
  • .bind().live().delegate()の違いは何ですか?
  • $$.fnの違いは何ですか? 単に$.fnと書いた場合はどうですか?
  • 下記のセレクターを最適化してください:
$(".foo div#bar:eq(0)")
  • delegate()live()の違いは何ですか?

CSSに関する質問事項

  • ‘reset’ CSSファイルとは何ですか? またその有用性は何ですか?
  • フロートとそれらがどのように機能するかを説明してください。
  • フロートクリアの様々なテクニックは何ですか?その内のどれが適切でそれはどんな状況ですか?
  • CSSスプライトを説明してください。またページやサイトでそれをどのように実装しますか?
  • 1番好きな画像置き換えテクニックは何ですか?またいつどのテクニックを使いますか?
  • .cssファイルに含み得るCSSハックは何ですか?また.cssファイル以外ではどうしますか?
  • 機能が制限されたブラウザに対してどのようにページを提供しますか?
    • どんなテクニック、プロセスを使いますか?
  • コンテンツを視覚的に見えなくするのにどんな方法がありますか?(またスクリーンリーダーユーザーのみに見えるようにする方法は何ですか?)
  • グリッドシステムを使ったことはありますか? 使い続けたいと思いましたか?
  • メディアクエリ、あるいはモバイルに特化したレイアウト、CSSを組んだことはありますか?
  • SVGのスタイリングの知識は何かしら持っていますか?
  • 印刷用ページの最適化はどのように行いますか?
  • CSS記述における「gotchas(見落としがちなミス)」は何ですか?
  • CSSプリプロセッサのメリット、デメリットは何ですか?(SASS、Compass、Stylus、LESS)
    • 使ったことのあるCSSプリプロセッサについてそれの好きなところ、嫌いなところを説明してください。
  • 非標準のフォントを使用したwebデザインカンプをどのように実装しますか?
    • ウェブフォント(Googleウェブフォント、Typekit 等)
  • ブラウザがどのようにあるエレメントがどのCSSセレクタにマッチするかを決定しているかを説明してください。

その他の質問事項

  • あなたがコーディングした中で一番素晴らしいものは何ですか? 何が一番誇れますか?
  • あなたが使っている開発者ツールの一番好きなところは何ですか?
  • 何か暖めてるアイディアは持っていますか? それはどんなものですか?
  • インターネットエクスプローラーの最も好きな機能は何ですか?
\ No newline at end of file diff --git a/_site/translations/korean/index.html b/_site/translations/korean/index.html deleted file mode 100644 index d821d65b6..000000000 --- a/_site/translations/korean/index.html +++ /dev/null @@ -1 +0,0 @@ -프론트엔드 면접 문제 은행 ★ Front-end Job Interview Questions

프론트엔드 면접 문제 은행

프론트엔드 면접 문제 은행

이 파일에는 잠재적인 프론트엔드 개발자 후보를 선정할 때 사용할 수 있는 여러 가지 면접 질문들이 있습니다. 후보자에게 모든 문제를 사용하는 것은 많은 시간이 소요되기 때문에 추천하지 않습니다. 대신, 여러분이 요구하는 주요 기술과 관련된 질문들을 몇 가지 선정해서 사용해보세요.

참고: 여기 있는 많은 질문은 자유롭게 추가/수정/삭제될 수 있고 정답보다 그 사람의 능력에 관해 이야기하는 흥미로는 토론을 끌어낼 수 있다는 것을 기억하세요.

목차

  1. 일반적인 질문
  2. HTML 관련 질문
  3. CSS 관련 질문
  4. JS 관련 질문
  5. 테스트 관련 질문
  6. 성능 관련 질문
  7. 코딩 관련 질문

함께하기

  1. 함께하는 분들
  2. 함께하는 방법
  3. 라이선스

일반적인 질문:

  • 어제/이번 주에 무엇을 공부하셨나요?
  • 코딩을 할 때 당신을 들뜨게 하거나 흥미를 끄는 것들은 무엇은 가요?
  • 최근에 당신이 경험한 기술적인 문제는 무엇이고 그것을 어떻게 해결했나요?
  • 웹 애플리케이션이나 사이트를 만들 때 고려해야 할 UI, Security, Performance, SEO, Maintainability에 대해서 설명해주세요.
  • 선호하는 개발 환경에 대해 자유롭게 이야기해 주세요.
  • 버전 관리 시스템은 어떤 것들을 사용해보셨습니까?
  • 당신이 웹 페이지를 만들 때의 과정을 설명해주실 수 있을까요?
  • 당신에게 5가지 다른 stylesheet가 있습니다. 어떤 방법으로 사이트에 제공하는 게 가장 효과적일까요?
  • 점진적 향상법(progressive enhancement)과 우아한 성능저하법(graceful degradation)의 차이를 설명하실 수 있습니까?
  • 웹사이트에서 assets/resources를 최적화하는 방법에 관해 설명해주세요.
  • 브라우저가 한 번에 1개의 도메인에서 내려받는 자원은 몇 개인가요?
    • 예외에는 어떤 것들이 있나요?
  • 페이지 로드 시간을 줄이는 세 가지 방법에 관해서 이야기 해 보세요.
  • 당신이 프로젝트에 합류했습니다. 근데 그들은 Tab을 이용하고, 당신은 Space를 사용했습니다. 어떻게 하실 건가요?
  • 간단한 Slideshow 페이지를 만드는 방법에 관해서 이야기해 보세요.
  • 만약 당신이 올해 기술적 책임자가 되었다면 무엇을 먼저 하시겠습니까?
  • 표준의 중요성에 관해 설명해주세요.
  • Flash of Unstyled Content에 관해 설명해주세요. 또 FOUC를 피하기 위해선 어떻게 해야 하나요?
  • ARIA와 screenreader에 대해 설명해주세요. 또 접근성을 지원하는 웹사이트를 어떻게 만드는지에 대해도 설명해주세요.
  • CSS 애니메이션과 JavaScript 애니메이션의 차이점에 관해 설명해주세요.
  • CORS는 무엇의 약자이고 어떤 문제에 대해서 언급하는 것인가요?

HTML 관련 질문:

  • doctype이 무엇을 하는 것인가요?
  • 표준모드(standards mode)와 쿽스모드(quirks mode)의 다른 점은 무엇인가요?
  • XML과 XHTML의 다른 점은 무엇인가요
  • XHTML을 이용한 페이지의 한계점은 무엇이 있나요?
  • application/xhtml+xml으로 지정한 페이지에 어떠한 문제가 있나요?
  • 다국어가 포함된 페이지는 어떤 방식으로 제공하나요?
  • 다국어 페이지를 제공하는 여러 방법에 관해 설명해주세요.
  • data-속성은 무엇을 하는 것인가요? 사용했을 때 이점은 무엇인가요?
  • HTML5를 오픈 웹 플랫폼(open web platform)으로 생각해본다면, 어떤 것들로 구성돼 있을까요?
  • 쿠키(Cookies)세션저장소(sessionStorage)로컬저장소(localStorage)의 차이점을 설명해주세요.
  • <script>, <script async><script defer>의 차이점에 관해 설명해주세요.
  • CSS<link><head></head>사이에 쓰는 것과 JS<script><body></body>뒤에 사용하는 것은 좋은 사용법일까요? 어디에 배치하는 게 좋을까요?
  • Progressive rendering이란 무엇인가요?
  • 이미지 태그에 srcset 속성을 사용하는 이유는 무엇인가요? 브라우저가 이 속성을 가진 콘텐츠를 평가할 때 사용하는 과정을 설명해보세요.
  • HTML templating language를 사용해 본 경험이 있나요?

CSS 관련 질문:

  • class와 id의 차이점에 관해서 설명해주세요.
  • “reset” CSS가 무엇인지, 어떻게 유용한지 설명해주세요.
  • Floats가 어떻게 동작하는지 설명해주세요.
  • z-index에 관해 설명해주세요.
  • BFC(Block Formatting Context)에 관해 설명해주세요
  • 클리어링(Clearing) 기술에는 어떤 것들이 있으며, 어떨 때 어떻게 사용하는 것이 적절한지 설명하세요.
  • CSS 스프라이트(CSS Sprites)를 설명하고, 페이지나 사이트를 어떻게 향상하는지 설명하세요.
  • Image Replacement를 사용해야 할 때, 선호하는 기술과 언제 사용하는지를 설명해주세요.
  • 브라우저 스펙 차이에 따른 스타일링 이슈를 수정하기 위해서 어떻게 접근하나요?
  • 기능이 제약된 브라우저를 위해서 어떤 방식으로 페이지를 만드나요?
    • 어떠한 기술과 절차를 거치는지 설명하세요.
  • 시각적으로 보이지 않고 스크린 리더에서만 가능하게 하는 방법에 관해 설명해주세요.
  • 그리드 시스템(Grid system)을 사용한 적이 있나요? 있다면 어떠한 것을 선호하나요?
  • 미디어 쿼리(media queries)를 사용한 적이 있나요? 혹은 모바일에 맞는 layout과 CSS를 사용한 적이 있나요?
  • SVG를 스타일링하는데 익숙하신가요?
  • 인쇄하기 위해 웹페이지를 어떻게 최적화 하나요?
  • 효율적인 CSS를 작성하기 위한 "비법(gotchas)"은 어떤 게 있나요?
  • CSS 전처리(CSS preprocessors)를 사용해보셨나요?
    • 그렇다면, 사용 경험에 기반을 둬 좋았던 점과 나빴던 점을 설명해주세요.
  • 페이지에서 표준 폰트가 아닌 폰트 디자인을 사용할 때 어떤 방식으로 처리하시나요? (웹폰트를 제외하고)
  • CSS Selector가 어떠한 원리로 동작하는지 설명해주세요.
  • pseudo-elements에 관해서 설명하고 어디에서 사용되는지 이야기해보세요.
  • box model에 관해 설명하고 브라우저에서 어떻게 동작하는지 설명해주세요.
  • * { box-sizing: border-box; }은 무엇이고 사용했을때 이점은 무엇인가요?
  • 기억나는 display 속성에 대한 값들을 나열해보세요.
  • inline과 inline-block의 차이점은 무엇인가요?
  • 요소를 배치하는 방법(relative, fixed, absolute, static) 간의 차이는 무엇인가요?
  • CSS에서 'C’는 Cascading을 의미합니다. Cascading에 관해서 설명해주세요. 또 cascading system의 장점은 무엇인가요?
  • CSS framework를 사용해본 적이 있으신가요? 실무에서 사용해보았다면 어떤 이점이 있었나요?
  • 새로운 CSS Flexbox 혹은 Grid 스펙을 사용해 보신 적 있나요?
  • 반응형(Responsive) 디자인은 적응형(Adaptive) 디자인과 어떤 차이점이 있나요?
  • 레티나 그래픽 환경에서 작업해 보신 적이 있나요? 하셨다면 어떤 기술을 사용하셨나요?
  • 절대 좌표대신 translate() 혹은 반대로 사용하는 이유가 있나요? 있다면 이유에 관해서 설명해주세요.

JS 관련 질문:

  • event delegation에 관해 설명해주세요.
  • this는 JavaScript에서 어떻게 작동하는지 설명해주세요.
  • prototype 기반 상속은 어떻게 하는지 설명해주세요.
  • AMD와 CommonJS는 무엇이고, 이것들에 대해 어떻게 생각하시나요?
  • 다음 코드가 즉시 호출 함수 표현식(IIFE)로 동작하지 않는 이유에 관해서 설명해보세요: function foo(){ }();.
    • IIFE로 만들기 위해서는 어떻게 해야 하나요?
  • nullunedefined 그리고 undeclared의 차이점은 무엇인가요?
    • 두개를 구분하기 위해서는 어떻게 하면 될까요?
  • 클로져(Closure)는 무엇이며, 어떻게/왜 사용하는지 설명해주세요.
    • 클로져를 만들 때 선호하는 패턴은 무엇인가요? argyle (IIFEs에만 적용할 수 있다)
  • 익명함수(anonymous functions)는 주로 어떤 상황에서 사용하나요?
  • 당신의 코드를 어떻게 구성하는지? (모듈 패턴, 전통적 상속)
  • 호스트 객체(Host Objects)와 네이티브 객체(Native Objects)의 차이점은 무엇인가요?
  • 다음 코드의 차이점은 무엇인가요?
function Person(){} var person = Person() var person = new Person()
  • .call.apply의 차이점은 무엇인가요?
  • Function.prototype.bind을 설명하세요.
  • document.write()는 언제 사용하나요?
  • UA 문자열을 이용하여 기능 검출(feature detection)과 기능 추론(feature inference)의 차이점을 설명하세요.
  • AJAX에 관해 가능한 한 자세히 설명하세요.
  • AJAX를 사용했을 때의 장단점에 대해 설명해주세요.
  • JSON이 어떻게 동작 되는지 설명하세요. (그리고 AJAX와 어떻게 다른지 설명하세요.)
  • 기존에 JavaScript 템플릿을 사용한 적이 있나요? 만약에 있다면, 어떠한 방식으로 사용했는지 말씀해주세요.
  • "호이스팅(Hoisting)"에 대해서 설명하세요.
  • 이벤트 버블링(Event Bubbling)에 대해서 설명하세요.
  • 이벤트 캡쳐링(Event Capturing)에 대해서 설명하세요.
  • "속성(Attribute)"와 "요소(property)"의 차이가 무엇인가요?
  • 내장된 JavaScript 객체를 확장하는 것이 좋지 않은 이유는 무엇인가요?
  • document load event와 DOMContentLoaded event의 차이점은 무엇인가요?
  • =====의 차이점은 무엇인가요?
  • JavaScript의 "동일출처정책(the same-origin policy)"에 대해서 설명하세요.
  • 다음 코드를 동작하게 만드세요.
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • 삼항식(Ternary statement)을 사용하는 이유는 무엇이고, 그것을 표현하기 위한 연산자 단어는 무엇인가요?
  • use strict;은 무엇이고, 사용했을 때 장단점에 관해서 설명해주세요.
  • 100번 반복되는 반복문이 있습니다. 3의 배수일 때는 fizz, 5의 배수일 때는 buzz, 3과 5의 공배수일 때는 fizzbuzz가 출력되는 코드를 작성해보세요.
  • 전역 scope를 사용했을 때 장단점에 관해 설명해주세요.
  • 때때로 load event를 사용하는 이유에 관해 설명해주세요. 또 단점이 있다면 대안에 대해서도 설명해주세요.
  • SPA에서 SEO에 유리하도록 만들기 위한 방법에 대해 설명해주세요.
  • Promise를 사용해 본 경험이 있나요?
  • Promise가 콜백 대비 장/단점은 무엇인지 설명해주세요.
  • JavaScript의 작동방식의 장단점에 관해 설명해주세요.
  • JavaScript를 디버깅할 때 사용하는 도구가 있으면 설명해주세요.
  • 객체 안의 속성과 배열의 아이템을 순회할 때 사용하는 문법에 관해 설명해주세요.
  • mutable object와 immutable object에 관해 설명해주세요.
    • JavaScript에서 immutable 객체의 예를 들어보세요.
    • immutability의 장/단점은 무엇인가요?
    • 자신의 코드에서 불변성(immutability를) 어떻게 달성할 수 있나요?
  • 동기방식과 비동기 방식 함수의 차이에 관해서 설명해주세요.
  • event loop이란 무엇인가요?
    • call stack과 task queue에 관해 설명해주세요.
  • function foo() {}var foo = function() {}에서 foo 의 차이가 무엇인지 설명해보세요.
  • let, var, const의 차이점에 관해서 설명해주세요.

테스트 관련 질문들:

  • test code를 작성하면서 개발하는 방식의 장점과 단점에 대해 설명해주세요.
  • test code를 테스트하는 툴을 사용해보신 경험이 있나요?
  • 유닛 테스트와 함수테스트의 차이점은 무엇인가요?
  • code style linting tool을 사용했을때 장점은 무엇인가요?

성능 관련 질문들:

  • 성능관련 이슈들을 발견하기 위해서 사용하는 방법은 무엇인가요?
  • 웹사이트 scrolling 성능을 향상시키기 위한 몇가지 방법에 대해 설명해보세요.
  • 브라우저의 layout, painting, compositing에 대해 설명해보세요.

네트워크 질문들:

  • 전통적으로, 웹사이트의 assets을 여러 도메인으로 서빙했을 때 장점은 무엇인가요?
  • URL로 접속했을 때 어떤 플로우로 화면에 웹사이트가 그려지는지 네트워크 관점에서 설명해주세요.
  • Long-Polling과 Websocket, Server-Sent Event에 대해 설명해주세요.
  • 다음 request header들에 대해 설명해주세요.
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP와 HTTPS에 대해 설명해주세요.
  • HTTP Method들에 대해 설명해주세요.

코딩 질문:

질문: foo의 값은 무엇인가요?

var foo = 10 + '20';

질문: 아래 코드의 결과값은 무엇인가요?

console.log(0.1 + 0.2 == 0.3);

질문: 아래 코드가 동작하게 하기 위해선 어떻게 해야할까요?

add(2, 5); // 7
add(2)(5); // 7

질문: 아래 구문의 반환값은 무엇인가요?

"i'm a lasagna hog".split("").reverse().join("");

Question: What is the value of window.foo?
질문: window.foo의 값은 무엇인가요?

( window.foo || ( window.foo = "bar" ) );

질문: 아래 두 alert의 결과값은 무엇인가요?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

질문: foo.length의 값은 무엇인가요?

var foo = [];
foo.push(1);
foo.push(2);

질문: foo.x의 값은 무엇인가요?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

질문: 아래 코드의 출력값은 무엇인가요?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

그 외 흥미로운 질문들:

  • 최근에 수행했던 흥미로운 프로젝트는 무엇인가요?
  • 사용하는 개발 도구에서 마음에 드는 부분은 무엇인가요?
  • 프론트엔드 커뮤니티에서 당신에게 영감을 준 사람이 있다면 누구인가요?
  • 애완동물 관련 프로젝트를 해 보았나요? 해보았다면 어떤 종류의 프로젝트인가요?
  • IE에서 가장 좋아하는 기능은 무엇인가요?
  • 어떤 커피를 좋아하시나요?

함께하는 분들:

이 문서는 2009년에 다음에 언급된 분들과의 협업으로 시작했습니다.
@paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

현재는 100이 넘는 개발자들이 함께하고 있습니다.

\ No newline at end of file diff --git a/_site/translations/korean/reference.html b/_site/translations/korean/reference.html deleted file mode 100644 index e0c3c26f8..000000000 --- a/_site/translations/korean/reference.html +++ /dev/null @@ -1,4 +0,0 @@ -해설집 ★ Front-end Job Interview Questions

해설집

##해설집

이 문서는 정답을 알려주는 문서가 아닙니다.
-면접에 대한 답은 스스로가 찾아야 좋으며,
-그 판단을 돕기 위한 해설서 임을 밝히는 바입니다.
-

##기여자
@Songhun(http://songhun.blogspot.com)
@YiHanghee(http://blog.javarouka.me)

##일반적인 질문에 대한 참고

  • SNS에 대해서 물어보는 이유가 무엇일까요?

##HTML에 대한 참고

  • doctype에 대한 설명은 Wikipedia 에서 찾아볼 수 있습니다.
  • 표준 모드는 W3C의 표준에 맞춘 구현 렌더링으로 동작하며(미세하게 다릅니다), 쿽스 모드는 다양한 브라우저 및 표준 정립 이전의 구버전 기준으로 작성된 HTML의 fallback 과 비슷합니다.
  • XHTML 과 HTML의 차이 블로그 포스팅에 4부작(?)으로 좋은 설명이 있네요.
    • application/xhtml+xml 컨텐트 타입은 브라우저에 따라 해석할 수 없기도 합니다.(IE…)
  • 엘리먼트의(특히 루트인 html) lang attribute 와 관련이 있을까요…?
  • HTML 5 + XML = XHTML 5, <!doctype xhtml>
  • Programer custom attribute. ex) 자동차를 엘리먼트로 나타내야 할 경우를 생각해보면 기본 html 속성으로는 부족하겠죠.
  • HTML4의 콘텐츠 모델이 div와 span에 id와 클래스를 입힌 inline 및 block display의 사용자 정의형이라면, HTML5는 그것을 표준화한 콘텐츠 모델.
  • open web platform 이 뭘까요…?
  • 서버와 공유할 필요가 있는지의 여부, 저장 용량, 저장 생명주기에 따라 셋을 구분할 수 있습니다.

##Javascript에 대한 참고

##jQuery에 대한 참고

##CSS 참고

##흥미로운 질문들에 대한 참고

\ No newline at end of file diff --git a/_site/translations/latvian/index.html b/_site/translations/latvian/index.html deleted file mode 100644 index 790574707..000000000 --- a/_site/translations/latvian/index.html +++ /dev/null @@ -1 +0,0 @@ -Front-end web programmētāja darba intervijas jautājumi ★ Front-end Job Interview Questions

Front-end web programmētāja darba intervijas jautājumi

Front-end web programmētāja darba intervijas jautājumi

Šis repozitorijs satur vairākus ar front-end web programmētāja darba prasmēm saistītus jautājumus, ko var izmantot, intervējot potenciālos vakances kandidātus. Nav ieteicams izmantot katru šeit minēto jautājumu, jo tas patērētu ļoti daudz laika. Izvēlieties tikai dažus jautājumus no šī saraksta, kas Jums palīdzēs ātrāk atlasīt kandidātus ar nepieciešamajām prasmēm.

Rebecca Murphey Baseline For Front-End Developers raksts ir ļoti piemērota lasāmviela, kuru izlasīt pirms dodaties uz darba interviju.

Piezīme: Paturiet prātā, ka daudzi no šiem jautājumiem ir atvērta tipa, kas varētu izvērsties plašākā diskusijā un ļautu iepazīt cilvēka prasmes daudz labāk nekā tieša atbilde.

Saturs

  1. Sākotnējie Kontributori
  2. Vispārēji Jautājumi
  3. HTML Jautājumi
  4. CSS Jautājumi
  5. JS Jautājumi
  6. jQuery Jautājumi
  7. Kodēšanas Jautājumi
  8. Interesanti Jautājumi
  9. Citas Lieliskas Atsauces

####[⬆] Sākotnējie Kontributori:

Vairums no jautājumiem tika paņemti no oksoclap raksta, ko sākotnēji izveidoja Paul Irish (@paul_irish) un kuru papildināja sekojoši cilvēki:

####[⬆] Vispārēji Jautājumi:

  • Ko jaunu Jūs apguvāt vakar/šonedēļ?
  • Kas Jūs aizrauj un interesē programmēšanā?
  • Kādas UI (lietotāja interfeisa), performances, SEO, apkopes vai tehnoloģijas apsvērumus jūs ņemat vērā, kad veidojat web-aplikāciju vai mājas lapu?
  • Pastāstiet par sev vēlemo darba vidi. (Operētājsistēma, pārlūki, rīki utt.)
  • Vai variet aprakstīt savu darba procesu, kad veidojiet mājas lapu?
  • Vai jūs variet aprakstīt starpību starp “progressive enhancement” un “graceful degradation”?
    • Bonus punkti, ja tiek pieminēta funkciju noteikšana (feature detection).
  • Izskaidrojiet, ko nozīmē “Semantisks HTML”.
  • Kā Jūs optimizētu mājas lapas failus/resurus?
    • Potenciāli vairāki risinājumu, starp kuriem būtu:
      • Failu konkatenācija (savienošana)
      • Failu minimizēšana
      • CDN hostēšana
      • Kešošana
      • u.c.
  • Kāpēc ir labāk lapas resurus izvietot uz vairākiem domēniem?
    • Cik daudz resursus pārlūks spēj vienlaicīgi lejuplādēt no viena domēna?
  • Nosauciet 3 veidus, kā samazināt lapas ielādes laiku (šķietamo vai faktisko)
  • Kā Jūs rīkotos, ja Jūs pievienotos projektam un viņi izmantotu tabulāciju, bet Jūs atstarpes koda atkāpju veidošanai?
    • Ieteiktu projektā izmantot kaut ko līdzīgu EditorConfig (http://editorconfig.org)
    • Pieskaņoties kolēģiem
    • Veikt retabulāciju ar ‘:retab!’ komandu
  • Izveidojiet vienkāršū slaidrāža lapu
    • Bonus punkti, ja netiek izmantots JavaScript
  • Kādus rīkus Jūs izmantojiet, lai pārbaudītu sava koda veiktspēju (performanci)?
    • Profiler, JSPerf, Dromaeo
  • Ja šogad Jūs varētu pilnībā apgūt vienu tehnoloģiju, kura tā būtu?
  • Kādas ir atšķirības starp Long-Polling, Websockets un SSE?
  • Izskaidrojiet standartu un standartizēšanas komisiju nozīmi.
  • Kas ir FOUC? Kā izvairīties no FOUC?

####[⬆] HTML Jautājumi:

  • Ko dara doctype?
  • Kāda ir starpība starp standarta režīmu un quirks režīmu?
  • Kādi ir XHTML lapu ierobežojumi?
    • Vai var rasties problēmas, ja lapa tiek servēta kā application/xhtml+xml?
  • Kā servēt lapu ar saturu vairākās valodās?
    • Par ko ir īpaši jāpiedomā, kad dizainē vai izstrādā vairāku valodu mājas lapas?
  • Ar ko ir noderīgi data- atribūti?
  • Pieņemot, ka HTML5 ir atvērta web-platforma, kas ir HTML5 pamatelementi?
  • Aprakstiet atšķirības starp sīkdatnēm (cookies), sessionStorage un localStorage.

####[⬆] CSS Jautājumi:

  • Aprakstiet, ko dara “reset” CSS fails un ar ko tas ir noderīgs.
  • Aprakstiet Float parametru un to, kā tas strādā.
  • Kādas ir dažādas Clear parametra lietošanas tehnikas un kādā kontekstā katra ir vispiemērotākā?
  • Izskaidrojiet, kas ir CSS spraiti (sprites) un kā Jūs tos izmantotu lapā?
  • Kāda ir Jūsu iecienītākā attēlu aizvietošanas tehnika un kādos brīžos Jūs to izmantojiet?
  • CSS parametru hacki, nosacīti iekļauti .css faili vai kas cits?
  • Kā Jūs servējat lapas priekš pārlūkiem ar ierobežotu funkcionalitāti?
    • Kādas tehnikas/procesu Jūs piekopjat?
  • Kādi ir dažādi paņēmieni, kā vizuāli noslēpt saturu (un padarīt to pieejamu tikai priekš ekrāna lasītājiem)?
  • Vai esat kādreiz izmantojis režģa (grid) sistēmu? Ja jā, tad kurai dodiet priekšroku?
  • Vai esat izmantojis mediju vaicājumus (media queries) vai izkārtojumus(layouts)/CSS domātus speciāli priekš mobilajām iekārtām?
  • Vai esat pazīstams ar SVG stilu definēšanu?
  • Kā Jūs optimizējiet mājas lapas priekš printēšanas?
  • Kādi ir dažādi triki un paņēmieni (kā arī ar ko der uzmanīties), lai veidotu efektīvu CSS?
  • Kādi ir plusi/mīnusi izmantojot CSS preprocesorus? (SASS, Compass, Stylus, LESS)
    • Aprakstiet plusus un mīnusus tiem CSS preprocesoriem, kurus esiet izmantojis.
  • Kā Jūs veidotu mājas lapas dizainu, kas izmanto nestandarta fontus?
    • Webonti (tādi fontu servisi kā Google Webfonts, Typekit u.c.)
  • Izskaidrojiet kā pārlūks nosaka kuri elementi atbilst CSS selektoriem?
  • Izskaidrojiet kā Jūs saprotiet “box model” un kā Jūs ar CSS palīdzību norādītu pārlūkam attēlot izkārtojumu(layout) ar dažādiem “box model” iestatījumiem.

####[⬆] JS Jautājumi:

  • Izskaidrojiet notikumu deleģēšanu (event delegation)
  • Izskaidrojiet kā this strādā JavaScript valodā
  • Izskaidrojiet kā strādā prototipiskā mantošana?
  • Kā Jūs testējat savu JavaScript kodu?
  • AMD vai CommonJS?
  • Kas ir asociatīvais masīvs (hashtable)?
  • Paskaidrojiet kāpēc šis kods nestrādā kā IIFE: function foo(){ }();.
    • Kas ir jāpamaina, lai tā pareizi strādātu kā IIFE?
  • Kāda ir atšķirība starp mainīgajiem, kas ir definēti kā: null, undefined or undeclared?
    • Kā jūs pārbaudītu vai mainīgais atbilst kādam no šiem stāvokļiem?
  • Kas ir slēgums(closure) un kā/kāpēc Jūs tādu izmantotu?
  • Kādos gadījumos parasti tiek izmantotas anonīmās funkcijas?
  • Izskaidrojiet “JavaScript module pattern” un kādos gadījumos Jūs to izmantotu.
    • Bonus punkti, ja tiek pieminēta tīra nosaukumvietas uzturēšana (clean namespacing)
    • Gadījumā ja Jūsu moduļi neizmanto nosaukumvietu?
  • Kā Jūs organizējat savu kodu? (Moduļu veidā, klasiskā mantošana?)
  • Kāda ir atšķirība starp “host” objektiem un “native” objektiem?
  • Kāda ir atšķirība starp: function Person(){}, var person = Person(), un var person = new Person()?
  • Kāda ir atšķirība starp .call un .apply?
  • Izskaidrojiet Function.prototype.bind?
  • Kurā brīdī Jūs optimizējiet savu kodu?
  • Vai variet izskaidrot kā JavaScript valodā strādā mantošana?
  • Kādos gadījumos Jūs izmantotu document.write()?
    • Vairums reklāmas joprojām izmanto document.write() kaut arī šāda prakse tiek pelta.
  • Kāda ir atšķirība starp funkciju noteikšanu (feature detection), funkciju secināšanu (feature inference) un UA virknes (UA string) izmantošanu?
  • Izskaidrojiet AJAX cik vien detalizēti iespējams
  • Izskaidrojiet kā stradā JSONP (un kā tas atšķiras no AJAX)
  • Vai esat jebkad izmantojuši JavaScript šablonošanai (templating)?
    • Ja jā, kuras bibliotēkas Jūs esat izmantojuši? (Mustache.js, Handlebars etc.)
  • Izskaidrojiet “hoisting”
  • Izskaidrojiet notikumu burbuļošanu (event bubbling)
  • Kāda ir atšķirība starp atribūtu un rekvizītu (property)?
  • Kāpēc paplašināt iebūvētos JavaScript objektus nav laba doma?
  • Kāpēc paplašināt “built ins” ir laba doma?
  • Kāda ir atšķirība starp “document load” un “document ready” notikumu?
  • Kāda ir atšķirība starp == un ===?
  • Paskaidrojiet kā Jūs iegūtu kverija stringa parametru no pārlūka loga URL?
  • Izskaidrojiet vietējās izcelsmes (same-origin) noteikumu attiecībā uz JavaScript
  • Izskaidrojiet mantošanas paternus JavaScript valodā.
  • Lieciet šim strādāt:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Izskaidrojoet memoizācijas stratēģiju (izvairīšanos no aprēķinu atkārtošanas) JavaScript valodā.
  • Kāpēc to sauc par ternāru izteiksmi (Ternary expression)? Uz ko norāda vārds ternārs?
  • Kas ir funkcijas “arity”?
  • Kas ir "use strict";? Kādas ir priekšrocības un trūkumi to izmantojot?

####[⬆] jQuery Jautājumi:

  • Izskaidrojiet savirknēšanu (chaining).
  • Izskaidrojiet novēlojumus (deferreds).
  • Kādas ir jQuery specifiskas optimizācijas, ko Jūs spējat ieviest praksē?
  • Ko veic .end()?
  • Kā un kāpēc Jūs nosauktu pievienotu notikumu apdarinātāju (bound event handler)?
  • Nosauciet 4 dažādas vērtības, ko Jūs varat padot jQuery metodei
    • Selektoru (virkne), HTML (virkne), atgriezenisko funkciju (funkcija), HTMLElement, Object, Array, Element Array, Jquery Object u.c.
  • Kas ir efektu (vai fx) rinda?
  • Kāda ir atšķirība starp .get(), [], un .eq()?
  • Kāda ir atšķirība starp .bind(), .live(), un .delegate()?
  • Kāda ir atšķirība starp $ un $.fn? Vai vienkārši kas ir $.fn?
  • Optimizējiet šo selektoru
$(".foo div#bar:eq(0)")

####[⬆] Kodēšanas Jautājumi:

modulo(12, 5) // 2

Jautājums: Izveidojiet modulo funkciju, kas apmierina augstākminēto

"i'm a lasagna hog".split("").reverse().join("");

*Jautājums: Kāda vērtība tiek atgriezta no augšākminētā koda?

Atbilde: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Jautājums: Kāda ir window.foo vērtība?

Atbilde: “bar” (vienīgi°ja window.foo “falsey”, savādāk tas paturētu savu esošo vērtību)

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Jautājums: Kāds ir abu augstākminēto paziņojumu iznākums?

Atbilde: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Jautājums: Kāda ir foo.length vērtība?

Atbilde: 2

####[⬆] Interesanti Jautājumi:

  • Kas ir pati foršākā lieta, ko jebkat esiet uzprogrammējis un ar ko lepojaties?
  • Kuras ir Jūsu izstrādes rīku iemīļotākās funkcijas, kuras izmantojiet?
  • Vai Jums ir kādi hobiju projekti? Kādi?
  • Kāda ir Jūsu iecienītakā Internet Explorer raksturiezīme?

####[⬆] Citas Lieliskas Atsauces:

\ No newline at end of file diff --git a/_site/translations/polish/index.html b/_site/translations/polish/index.html deleted file mode 100644 index 3c30a6658..000000000 --- a/_site/translations/polish/index.html +++ /dev/null @@ -1 +0,0 @@ -Pytania kwalifikacyjne na stanowisko front-end web developera ★ Front-end Job Interview Questions

Pytania kwalifikacyjne na stanowisko front-end web developera

Pytania kwalifikacyjne na stanowisko front-end web developera

@version 2.0.0

To repozytorium zawiera wiele pytań weryfikujących wiedzę potencjalnych kandydatów na stanowisko front-end web developera. Nie zaleca się zadawania wszystkich pytań jednej osobie (zajęłoby to godziny). Wybranie pojedynczych pozycji z listy pomoże w sprawdzeniu wymaganych umiejętności.

Rebecca Murphey opracowała Podstawowe wymagania dla Front-End web developerów, które są warte przeczytania zanim udamy się na rozmowę o pracę.

Uwaga: Pamiętaj, że wiele pytań jest otwartych, co prowadzi do ciekawych dyskusji, które powiedzą Ci więcej o możliwościach danej osoby, niż w przypadku prostej odpowiedzi.

Pierwotni autorzy

Większość pytań zaczerpnięto z wątku oksoclap stworzonego pierwotnie przez Paula Irisha (@paul_irish) i rozwijanego przez następujące osoby:

Pytania ogólne:

  • Czego nauczyłeś się wczoraj/w tym tygodniu?
  • Co pobudza lub interesuje cię w programowaniu?
  • Jakie jest Twoje preferowane środowisko programistyczne? (system operacyjny, edytor, przeglądarki, narzędzia itd.)
  • Opisz kolejne zadania podczas tworzenia strony internetowej?
  • Opisz różnicę między stopniowym ulepszaniem (progressive enhancement) i wdzięczną degradacją (graceful degradation)?
    • Dodatkowe punkty za opisanie wykrywania obsługi cech (feature detection)
  • Wyjaśnij, co kryje się za terminem “semantyczny HTML”.
  • Jak optymalizowałbyś zasoby strony internetowej?
    • Myśląc o wielu rozwiązaniach, które zawierają:
      • Łączenie plików
      • Zmniejszenie rozmiaru plików
      • Zasoby CDN
      • Buforowanie
      • itd.
  • Dlaczego serwowanie zasobów strony przez wiele domen jest lepsze?
    • Ile zasobów pobiera przeglądarka z danej domeny w jednej chwili?
  • Podaj 3 sposoby na zmniejszenie czasu ładowania strony. (postrzeganego lub rzeczywistego czasu ładowania)
  • Jeśli dołączasz do projektu, w którym używa się tabulacji, a ty używasz spacji, co wtedy zrobisz?
    • Sugerowanie użycia narzędzi w stylu EditorConfig (http://editorconfig.org)
    • Zgodnie z konwencjami (pozostań konsekwentny)
    • issue :retab! command
  • Napisz prosty pokaz slajdów
    • Dodatkowe punkty, jeśli nie używasz JS.
  • Jakich narzędzi używasz do sprawdzenia wydajności swojego kodu?
    • Profiler, JSPerf, Dromaeo
  • Gdybyś mógł opanować jedną technologię w tym roku, jaka byłaby to technologia?
  • Wyjaśnij znaczenie standardów sieciowych i ich twórców.
  • Czym jest FOUC? Jak unikasz FOUC?

Pytania HTML:

  • Co robi doctype i jakie znasz przykłady?
  • Jaka jest różnica między trybem standardów a trybem dziwactw (quirks mode)?
  • Jakie są ograniczenia w serwowaniu stron XHTML?
    • Czy istnieją problemy z serwowaniem stron jako application/xhtml+xml?
  • Jak serwujesz stronę z treścią w wielu językach?
    • Co jest ważne przy projektowaniu i tworzeniu stron wielojęzycznych?
  • Jaka jest przydatność atrybutów data-
  • Rozpatrujemy HTML5 jako otwartą platformę internetową. Jakie składniki tworzą HTML5?
  • Opisz różnice między cookies, sessionStorage i localStorage.

Pytania JS:

  • Wyjaśnij delegację zdarzeń.
  • Wyjaśnij jak działa this w JavaScripcie.
  • Wyjaśnij jak działa dziedziczenie prototypowe.
  • Jak radzisz sobie z testowaniem swojego kodu JavaScript?
  • AMD kontra CommonJS?
  • Czym jest tablica mieszająca (hashtable)?
  • Co oznaczają komunikaty undefined i undeclared dla zmiennych?
  • Czym są domknięcia, jak i po co są używane?
    • Ulubiony wzorzec używany do ich tworzenia? argyle (Dotyczy tylko IIFE)
  • Jakie znasz typowe użycie funkcji anonimowych?
  • Wyjaśnij pojęcie “Moduł JavaScript” i kiedy jest warte stosowania.
    • Dodatkowe punkty za wzmiankę na temat czystości przestrzeni nazw.
    • Co jeśli Twój kod nie używa przestrzeni nazw?
  • Jak organizujesz swój kod? (moduły, klasyczne dziedziczenie?)
  • Jaka jest różnicza między obiektami typu host i native?
  • Różnica między:
function Person(){} var person = Person() var person = new Person()
  • Jaka jest różnica między .call i .apply?
  • Wyjaśnij Function.prototype.bind?
  • Kiedy optymalizujesz swój kod?
  • Wyjaśnij działanie dziedziczenia w JavaScript?
  • Kiedy użyłbyś document.write()?
    • Wiele generowanych reklam używa document.write() choć nie jest to mile widziane
  • Jakie są różnice między wykrywaniem obsługi funkcji, wnioskowaniem obsługi funkcji i używaniem ciągu UA?
  • Omów AJAX jak najbardziej szczegółowo.
  • Wyjaśnij działanie JSONP (i dlaczego nie jest właściwie AJAX).
  • Czy kiedykolwiek używałeś szablonów w JavaScript?
    • Jeśli tak, jakie to były biblioteki? (Mustache.js, Handlebars itd.)
  • Wyjaśnij pojęcie “hoisting”.
  • Opisz bąbelkowanie zdarzeń.
  • Jak jest różnica między “atrybutem” i “właściwością”?
  • Czemu rozszerzanie obiektów wbudowanych w JavaScript jest złym pomysłem?
  • Czemu rozszerzanie to dobry pomysł?
  • Jak jest różnicą między zdarzeniami load i ready dla strony internetowej?
  • Jaka jest różnica między == i ===?
  • Wyjaśnij ewentualny sposób pobrania parametrów z adresu URL w oknie przeglądarki.
  • Wyjaśnij politykę same-origin w odniesieniu do JavaScript.
  • Opisz wzorce dziedziczenia w JavaScript.
  • Napisz działający kod:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opisz strategię zapamiętywania (unikanie powtarzalnych obliczeń) w JavaScript.
  • Dlaczego mówimy wyrażenie trójkowe, co dokładnie oznacza słowo “trójkowy”?
  • Czym jest arity funkcji?
  • Co oznacza "use strict";? Jakie są zalety i wady takiego rozwiązania?

Przykłady kodu JS:

~~3.14

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: 3

"i'm a lasagna hog".split("").reverse().join("");

Pytanie: Jaka wartość zostanie zwrócona przez powyższe wyrażenie?
Odpowiedź: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pytanie: Jaka jest wartość window.foo?
Odpowiedź: "bar"
tylko jeśli window.foo było fałszywe, w innym przypadku zwraca swoją wartość.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pytanie: Jaki będzie wyniki wywołania dwóch powyższych poleceń alert?
Odpowiedź: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: 2

var foo = {};
foo.bar = 'hello';

Pytanie: Jaka jest wartość foo.length?
**Odpowiedź: undefined

Pytania jQuery:

  • Wyjaśnij termin “chaining”.
  • Wyjaśnij termin “deferreds”.
  • Jakie przykłady optymalizacji jQuery potrafisz wykonać?
  • Co robi .end()?
  • Jak i dlaczego użyjesz przestrzeni nazw przy obsłudze wiązania zdarzeń?
  • Podaj 4 różne wartości, jakie możesz przekazać do metody jQuery.
    • Selektor (string), HTML (string), funkcja zwrotna, HTMLElement, obiekt, tablica, element tablicy, obiekt jQuery itd.
  • Co to jest kolejka effects (lub fx)?
  • Jakie są różnice między .get(), [], i .eq()?
  • Jakie są różnice między .bind(), .live(), i .delegate()?
  • Jakie są różnice między $ i $.fn? Czym jest $.fn?
  • Zoptymalizuj selektor:
$(".foo div#bar:eq(0)")

Pytania CSS:

  • Opisz, czym jest plik “reset” dla CSS i dlaczego jest użyteczny.
  • Opisz jak działa właściwość float.
  • Jakie znasz techniki kasowania (clearing) i kiedy wskazane jest ich stosowanie?
  • Wyjaśnij technikę “CSS sprites” oraz sposób jej wdrożenia na stronie.
  • Jakie są Twoje ulubione techniki zastępowania obrazów i kiedy je stosujesz?
  • Haczyki właściwości CSS, warunkowe dołączanie plików .css lub… coś innego?
  • Jak serwujesz strony dla przeglądarek z ograniczonym wsparciem funkcji?
    • Jakie techniki stosujesz?
  • Jakie istnieją sposoby wizualnego ukrycia treści (uczynienia ich dostępnymi tylko dla czytników ekranu)?
  • Czy kiedykolwiek używałeś systemów siatek, a jeśli tak, to jakie preferujesz?
  • Czy używałeś ‘media queries’ lub tworzyłeś konkretne układy i arkusze dla urządzeń mobilnych?
  • Czy miałeś styczność ze stylizacją SVG?
  • Jak optymalizujesz swoje strony do druku?
  • Jakie stosujesz “sztuczki” przy pisaniu efektywnych CSS?
  • Czy używasz narzędzi do przetwarzania CSS? (SASS, Compass, Stylus, LESS)
    • Jeśli tak, opisz cechy, które lubisz i nie lubisz w używanych narzędziach.
  • Jak tworzysz i wdrażasz projekt używający niestandardowych czcionek?
    • Czcionki sieciowe (serwisy czcionek jak: Google Webfonts, Typekit itd.)
  • Wyjaśnij jak przeglądarka określa elementy pasujące do selektora CSS?

Pytania dodatkowe (zabawne):

  • Opowiedz o najfajniejszej rzeczy jaką kiedykolwiek zakodowałeś. Z czego jesteś najbardziej dumny?
  • Jakie są Twoje ulubione części narzędzi programistycznych, których używasz?
  • Czy masz jakiś swój własny projekt na boku? Jaki?
  • Jaka jest Twoja ulubiona funkcja w Internet Explorer?
\ No newline at end of file diff --git a/_site/translations/portuguese/index.html b/_site/translations/portuguese/index.html deleted file mode 100644 index 74086fabf..000000000 --- a/_site/translations/portuguese/index.html +++ /dev/null @@ -1 +0,0 @@ -Questões para entrevista de profissionais Front-end ★ Front-end Job Interview Questions

Questões para entrevista de profissionais Front-end

Questões para entrevista de profissionais Front-end

Este repositório contém uma série de perguntas para entrevista de profissionais de front-end que podem ser usadas para avaliar os candidatos. Não é recomendado de maneira alguma usar todas as perguntas aqui no mesmo candidato (que levaria horas). A escolha de alguns itens dessa lista deverá ajudar a identificar as habilidades requeridas do candidato.

O artigo Baseline For Front-End Developers de Rebecca Murphey é também uma ótima fonte para ler antes de entrevistar um candidato.

Note: Tenha em mente que muitas destas questões estão em aberto e poderia levar à discussões interessantes que dizem mais sobre as capacidades do candidato do que a resposta em si.

Tabela de Conteúdos

  1. Contribuintes Originais
  2. Questões Gerais
  3. Questões de HTML
  4. Questões de CSS
  5. Questões de JS
  6. Questões de jQuery
  7. Questões de Código
  8. Questões Divertidas
  9. Outras Grandes Referências
  10. Licença

Contribuintes originais:

A maiorida das questões foram retiradas de um _thread_da oksoclap originalmente criada por Paul Irish (@paul_irish) e com a contribuição das seguintes pessoas: @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed @iansym

Questões Gerais:

  • O que você aprendeu ontem ou esta semana?
  • O que te excita ou te interessa em programação/codificação?
  • Quais as suas considerações sobre UI, Segurança, Perfomance, Aplicação, Manutenibilidade ou Tecnologia quando você desenvolve uma aplicação web ou site?
  • Fale sobre seu ambiente de desenvolvimento preferido. (SO, Editor, Browser, Ferramentas, etc.)
  • Com quais sistemas de controle de versão você é familiar?
  • Descreva seu trabalho quando cria uma página web.
  • Se você tivesse 5 diferentes arquivos de folhas de estilo, qual seria a melhor forma de integrá-los no site?
    • Concatenação de arquivos
  • Descreva a diferença entre progressive enhancement and graceful degradation.
    • Bônus se descrever ou mencionar detecção de recursos.
  • Como você pode otimizar os recursos de um site?
    • À procura de uma série de soluções que possam incluir:
      • Concatenação de arquivo
      • “Minificação” de arquivo
      • Utilização de CDN
      • Caching
      • etc.
  • Por que é melhor servir recursos de um site de múltiplos domínios?
  • Fale 3 formas de diminuir o page load (tempo de carregamento real e percebido)
  • Se você caísse em um projeto que as pessoas usam tabs para indentação e você usa espaços, o que você faria?
    • Sugerir que o projeto utilize algo como EditorConfig (http://editorconfig.org)
    • Se conformar com as convenções (ficar consistente)
    • issue :retab! command
  • Escreva uma página simples de slideshow
    • Bônus se não usar JS.
  • Quais ferramentas você usa para testar a performance do seu código?
    • Profiler, JSPerf, Dromaeo
  • Se você pudesse dominar uma tecnologia deste ano, qual seria?
  • Quais as diferenças entre Long-Polling, Websockets and SSE?
  • Explique a importância de normas e órgãos normativos.
  • O que é FOUC? Como você evita FOUC?
  • Dê a sua melhor descrição do processo do momento que você digita a URL de um website até o final do carregamento da página na sua tela.

Questões de HTML:

  • O que um doctype faz?
  • Qual a diferença entre standards mode e quirks mode?
  • Quais as limitações quando utilizamos páginas XHTML?
    • Existe algum problema em utilizar páginas como application/xhtml+xml?
  • Como você desenvolve uma página com conteúdo em múltiplos idiomas?
    • Que tipo de coisas que você deve tomar cuidado ao desenvolver um website multi-língua?
  • Quais são os benefícios em utilizar o atributo data-?
  • Considere o HTML5 como uma plataforma web aberta. Quais são os blocos de construção de HTML5?
  • Descreva a diferença entre cookies, sessionStorage e localStorage.
  • Você pode explicar a diferença entre GET e POST?

Questões de CSS:

  • Qual é a diferença entre classes e IDs no CSS?
  • Descreva o que é o arquivo “reset” do CSS e o que ele faz e como ele é útil.
    • Bônus para identicação das desvantagens de um reset e/ou mencionar normalize como uma melhor alternativa.
  • Descreva o que são Floats e como eles funcionam.
  • Descreva z-index e como o empilhamento do contexto é formado.
  • Quais são as várias técnicas para “clearing” e quais delas são apropriadas para qual contexto?
  • Explique o que são CSS Sprites, e como você implementaria eles em um website.
  • Quais são suas técnicas favoritas para troca de imagens e quais dela você usa.
  • CSS Hacks, arquivo condicional .css, ou… alguma outra coisa?
  • Como você desenvolve sua página para browsers com recursos limitados?
    • Quais técnicas/processos você usa?
  • Quais são as diferentes formas de visualizar conteúdo escondido (e como fazer para deixar eles disponíveis apenas para leitores de tela?)
  • Você já utilizou algum sistema de grid, se sim, qual você prefere?
  • Você já utilizou ou implementou media queries ou CSSs específicos para mobile?
  • Qual sua familiaridade com SVG?
  • Como você optimiza suas páginas para impressão?
  • Quais são algumas técnicas para escrever um eficiente CSS?
  • Você já utilizou pré-processadores CSS? (SASS, Compass, Stylus, LESS)
    • Se sim, descreva o que você gostou e o que não gostou com eles.
  • Como você implementaria um website que não utilizaria fontes padrões nos computadores?
    • Webfonts (Serviços como: Google Webfonts, Typekit, etc.)
  • Explique como um browser determina quais os elementos que correspondem a um seletor CSS.
  • Explique o que você entende sobre box model e como você poderia dizer para o navegador en CSS para renderizar seu layout em diferentes box models.
  • O que * { box-sizing: border-box; } faz? Quais são as vantagens?
  • Liste quantas propriedades display você puder lembrar.
  • Qual a diferença entre inline e inline-block?
  • Qual a diferença entre elementos posicionados de forma relativa, fixa, absoluta e estática?
  • Quais frameworks CSS você tem usado localmente ou em produção? (Bootstrap, PureCSS, Foundation, etc.)
    • Se sim, quais deles? Se você puder, como você mudaria/melhoraria ele(s)?
  • Você já brincou com as novas especificações de CSS Flexbox e CSS Grid?
  • Como o design responsivo é diferente do design adaptavel?
  • Você já trabalhou com gráficos retina? Se sim, quando e quais técnicas você usou?

Questões de JS:

  • Explique o evento delegation.
  • Explique como this funciona em JavaScript.
  • Explique como funciona herança prototipada.
  • Como você testa seu JavaScript?
  • AMD vs. CommonJS?
  • Explique por que a seguinte função não funciona como uma IIFE: function foo(){ }();.
    • O que precisa ser alterado para se tornar uma IIFE?
  • Qual a diferença entre uma variável que null, undefined ou undeclared?
    • Como você verificaria esses estados?
  • O que é uma closure, e como/por que você usaria uma?
  • Qual o caso de uso típico para funções anônimas?
  • Como você organiza seu código? (module pattern, herança clássica?)
  • Qual a diferença entre objetos herdados e objetos nativos?
    Qual a diferença entre: function Person(){}, var person = Person(), e var person = new Person()?
  • Qual a diferença entre .call e .apply?
  • Explique Function.prototype.bind.
  • Quando você otimiza seu código?
  • Você pode explicar como funciona a herença no Javascript?
  • Quando você deve usar o document.write()?
    • A maioria dos anúncios de publicidade ainda utilizam document.write() embora seu uso não seja recomendado.
  • Qual a diferença entre feature detection, feature inference, e o uso de UA string?
  • Explique o que é AJAX o mais detalhadamente possível.
  • Explique como o JSONP funciona (e como ele realmente não é AJAX).
  • Você já utilizou templates com Javascript?
    • Se sim, quais bibliotecas foram utilizadas? (Mustache.js, Handlebars, etc.)
  • Explique o que é “hoisting”.
  • Descreva o que é event bubbling.
  • Qual a diferença entre “atributo” e “propriedade”?
  • Porque a extensão de objetos nativos não é uma boa ideia?
  • Qual a diferença entre o evento document load e o evento document ready?
  • Qual a diferença entre == e ===?
  • Explique como você pega um parâmetro na URL do browser.
  • Explique a política de same-origin em relação a Javascript.
  • Faça isso funcionar:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • O que é um operador ternário, o que a palavra “ternário” indica/significa?
  • O que é o "use strict";? Quais a vantagens e desvantagens de sua utilização?
  • Crie um loop for que itere até 100 enquanto retorna fizz em múltiplos de 3, buzz em múltiplos de 5 e fizzbuzz em múltiplos de 3 e 5.

Questões de jQuery:

  • Explique “chaining”.
  • Explique “deferreds”.
  • Quais são algumas otimizações de jQuery que você pode implementar?
  • O que .end() faz?
  • Nomeie 4 valores diferentes que você pode passar para um método jQuery.
    • Seletor (string), HTML (string), Callback (function), HTMLElement, object, array, elemento de array, jQuery Object, etc.
  • Qual a diferença entre .get(), [], e .eq()?

Questões de código:

Questão: Como você faria isso funcionar?

add(2, 5); // 7
add(2)(5); // 7

Questão: Qual valor é retornado da seguinte declaração?

"sou uma lasanha".split("").reverse().join("");

Resposta: "ahnasal amu uos"

Questão: Qual é o valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Resposta: “bar” (apenas se window.foo for falso, se não ele vai retornar o seu valor próprio).

Questão: Qual o retorno dos dois alerts abaixo?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Resposta: “Hello World” & ReferenceError: bar is not defined

Questão: Qual o valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Resposta: 2

Questões Divertidas:

  • Qual a coisa mais legal que você desenvolveu recentement? Qual você ficou mais orgulhoso?
  • Quais suas partes favoritas sobre as ferramentas de desenvolvimento que você usa?
  • Você teve algum projeto para animais de estimação? Qual tipo?
  • Qual sua feature favorita do Internet Explorer?

Outras Grandes Referências:

Licença:

Lançado sobre a Licença MIT. Veja o arquivo LICENSE para detalhes.

\ No newline at end of file diff --git a/_site/translations/romanian/index.html b/_site/translations/romanian/index.html deleted file mode 100644 index 012fea2cb..000000000 --- a/_site/translations/romanian/index.html +++ /dev/null @@ -1 +0,0 @@ -Întrebări pentru interviu tehnic web front-end ★ Front-end Job Interview Questions

Întrebări pentru interviu tehnic web front-end

Întrebări pentru interviu tehnic web front-end

Acest fișier conține o serie de întrebări pentru interviuri tehnice pe partea
de front-end, care pot fi folosite pentru a verifica un potențial candidat. Nu
este deloc recomandat să fie folosite toate întrebările pentru un singur
candidat (ar lua câteva ore). Alegând câteva întrebări din această listă ar
trebui să te ajute în verificarea calităților pe care le urmărești.

Notă: Ține minte că multe dintre întrebări au răspuns liber și ar
putea duce la discuții interesante care ți-ar putea spune mai multe despre
capacitățile persoanei.

Cuprins

  1. Întrebări generale
  2. Întrebări despre HTML
  3. Întrebări despre CSS
  4. Întrebări despre JS
  5. Întrebări despre testare
  6. Întrebări despre perfomanță
  7. Întrebări despre rețea
  8. Întrebări despre programare
  9. Întrebări amuzante

Procesul de implicare

  1. Contribuitori
  2. Cum să contribui
  3. Licență

####[⬆] Întrebări generale:

  • Ce ai învățat ieri/săptămâna asta?
  • Ce te fascinează sau interesează la programare?
  • Ce provocare technica ai intampinat recent si cum ai rezlovat-o?
  • Ce aspecte de UI, Securitate, Performanță, SEO, Întreținere sau Tehnologie
    iei în cosiderare când construiești o aplicație web sau un site?
  • Povestește despre mediul de lucru preferat.
  • Îți poți descrie fluxul de lucru când creezi o pagină web?
  • Dacă ai 5 fișiere cu cod CSS, cum le poți integra cel mai bine în site?
  • Poți descrie diferența dintre “progressive enhancement” și “graceful
    degradation”?
  • Cum ai optimiza resursele statice ale unui site?
  • Câte resurse poate un browser descărca de la un domeniu la un moment dat?
    • Care sunt excepțiile?
  • Numește 3 moduri pentru a scădea timpul de încarcare a paginii. (perceput
    sau chiar timpul de descărcare)
  • Dacă intri într-un proiect și se folosesc taburi în loc de spații, ce faci?
  • Descrie modul în care ai crea o simplă pagină de prezentare.
  • Ce unelte folosești pentru a testa performanța codului pe care îl scrii?
  • Dacă ai putea învăța o tehnologie anul asta, care ar fi?
  • Explică importanța standardelor și a organismelor de standardizare.
  • Ce este Flash of Unstyled Content? Cum eviți FOUC?
  • Explică ce sunt screenreaders și ARIA și cum faci un site accesibil.
  • Compară părți bune și negative pentru animații CSS versus animații JavaScript.
  • Ce reprezintă CORS si ce probleme incearcă să rezolve?

####[⬆] Întrebări despre HTML:

  • La ce este util doctype?
  • Care este diferența dintre “standards mode” și “quirks mode”?
  • Care este diferența dintre HTML și XHTML?
  • Apar probleme când servești pagini ca application/xhtml+xml?
  • Cum servești o pagină cu conținut în mai multe limbi?
  • La ce trebuie să fii atent când creezi un design sau dezvolți pentru site-uri
    multilingve
  • La ce sunt utile atributele data-?
  • Considerând HTML5 ca o platformă web deschisă, care sunt parțile
    componente alte HTML5?
  • Descrie diferența dintre cookies, sessionStorage și localStorage.
  • Descrie diferența dintre <script>, <script async> și <script defer>.
  • Ce înseamnă randare progresivă?
  • Ai folosit altceva în afară de HTML până acum?

####[⬆] Întrebări despre CSS:

  • Care este diferența dintre clase și ID-uri în CSS?
  • Care este diferența între a ‘reseta’ și a ‘normaliza’ in CSS? Pe care ai
    alege-o și de ce?
  • Descrie ‘Float’ si cum funcționează.
  • Descrie z-index și cum se formează stacking context.
  • Descrie BFC(Block Formatting Context) și cum functionează.
  • Care sunt diferitele metode de a ‘curăța’ (clearing) și care este potrivită
    pentru ce context?
  • Explică conceptul de CSS sprites și cum le-ai implementa pe o pagină sau
    un site.
  • Care sunt tehnicile tale preferate pentru înlocuirea imaginilor și care
    când le folosești?
  • Hack-uri de proprietăți CSS, includerea condițională a fișierelor .css,
    sau… altceva?
  • Cum servești pagini pentru browsere cu capabilități reduse?
    • Ce procese/tehnici folosești?
  • Care sunt diferitele modalități de a ascunde vizual conținut (dar sa-l
    faci disponibil pentru cititoare de ecrane) ?
  • Ai folosit vreodată un sistem ‘grid’ și dacă da, ce preferi?
  • Ai folosit sau implementat ‘media queries’ sau interfețe/CSS specific
    pentru mobile?
  • Ești familiar cu stilizarea unui SVG?
  • Cum optimizezi paginile pentru print?
  • Ceva ‘gotchas’ când scrii CSS eficient?
  • Care sunt avantajele/dezavantajele folosirii preprocesoarelor CSS (SASS,
    Compass, Stylus, LESS)
    • Descrie ce îți place respectiv nu îți place la preprocesoarele CSS pe
      care le-ai folosit
  • Cum ai implementa un design care folosește fonturi non-standard?
  • Explică cum un browser determina ce elemente se potrivesc unui selector CSS?
  • Descrie ‘pseudo-elements’ și explică la ce sunt folosite.
  • Explică, în cuvintele tale, conceptul “box model” si cum ai instrui
    browser-ul, prin CSS, sa randeze layoutul în modele diferite.
  • Ce face * { box-sizing: border-box; }? Care sunt avantajele?
  • Ce proprietăți de display știi?
  • Care este diferența între inline și inline-block?
  • Care este diferența între poziționarea relativă, fixă, absolută și statică
    a unui element?
  • C-ul din CSS vine de la Cascading. Cum este determinată prioritatea în
    atribuirea stilului (câteva exemple)? Cum folosești acest sistem în avantajul
    tău?
  • Ce framework CSS ai folosit local sau în producție? (Bootstrap, PureCSS,
    Foundation etc.)
    • Ce ai schimba / îmbunătăți la ele?
  • Ai avut ocazia să te joci cu noile specificații pentru CSS Flexbox sau Grid?
  • Cum este design-ul ‘responsive’ diferit de cel ‘adaptive’?
  • Ai lucrat vreodata pentru retina display? Dacă da, când și ce tehnici ai
    folosit?
  • Este vreun motiv pentru care ai vrea să folosești translate() în loc de
    posiționare absolută sau invers? De ce?

####[⬆] Întrebări despre JS:

  • Explică “event delegation”.
  • Explică cum funcționează this în JavaScript.
  • Explică cum funcționează moștenirea prototipală.
  • Cum îti testezi codul JavaScript?
  • Ce părere ai despre AMD vs. CommonJS?
  • Explică de ce următoarea nu functionează ca un IIFE: function foo(){ }();
    • Ce trebuie schimbat ca să o transformi într-o IIFE?
  • Care este diferența dintre o variabilă care este: null, undefined sau
    undeclared?
    • Cum ai face sa verifici după fiecare dintre stările acestea?
  • Ce este un “closure” și cum/de ce ai folosi unul?
  • Care este un caz în care sunt folosite funcții anonime?
  • Cum îți organizezi codul? (module pattern, moștenire?)
  • Care este diferența dintre obiecte host si obiecte native?
  • Diferența dintre: function Person(){}, var person = Person() și
    person = new Person()
  • Care este diferența dintre .call și .apply?
  • Explică Function.prototype.bind?
  • Când îți optimizezi codul?
  • Când ai folosi document.write()?
  • Care este diferența dintre ‘feature detection’, ‘feature inference’ și
    folosirea șirului User Agent?
  • Explică AJAX cât mai detaliat posibil.
  • Explică cum funcționează JSONP (și cum nu este chiar AJAX ).
  • Ai folosit vreodată template-uri JavaScript?
    • Dacă da, ce librării ai folosit? (Mustache.js, Handlebars etc.)
  • Explică “hoisting”.
  • Descrie “event bubbling”.
  • Care este diferența dintre un atribut și o proprietate?
  • De ce nu este o idee bună extinderea obiectelor JavaScript “built-in”?
  • Care este diferența dintre evenimentul “document load” și “document ready”?
  • Care este diferența dintre “==” și “===”?
  • Explică politica “same-origins” în legătură cu JavaScript.
  • Fă următorul cod să funcționeze:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Ce este o expresie ternară și ce indică cuvântul ternar?
  • Ce este "use strict;" și care sunt avantajele și dezavantajele folosirii
    acestuia?
  • Create a for loop that iterates up to 100 while outputting "fizz"
    at multiples of 3, "buzz" at multiples of 5 and “fizzbuzz” at
    multiples of 3 and 5.
  • De ce este, de regulă, o idee bună să nu poluezi scope-ul global al unui
    website?
  • Explică ce este o ‘single page app’ și cum ai putea să improvizezi SEO-ul?
  • Care este gradul tău de experiență cu ‘Promises’ și/sau ‘polyfills’-ul lor?
  • Care sunt avantajele și dezavantajele in a folosi ‘Promises’ in loc de
    ‘callbacks’ ?
  • Care sunt avantajele și dezavantajele prin a scrie JavaScript într-o limbă ce
    compilează JavaScript?
  • Ce unelte si tehnici foloșeti pentru a ‘depana’ (debug) JavaScript?
  • Ce construcții de limbaj folosești pentru a itera peste proprietățile obiectelor și
    elmentele listelor (array)?
  • Explică diferența dintre obiectele mutabile și imutabile.
  • Ce exmplu de obiect imutabil poți da în JavaScript?
  • Avantaje si dezavantaje a imutabilității?
  • Cum poți obține imutabilitate în propriul cod?
  • Explică diferența dintre funcțiile sincrone (synchronous) și
    asincrone (asynchronous).
  • Ce este un ‘even loop’?
  • Care este diferența dintre ‘call stack’ si ‘task queue’?

####[⬆] Întrebări despre testare:

  • Care sunt avantajele/dezavantajele în a-ți testa codul?
  • Ce unelte ai folosi pentru a testa functionalitatea codului?
  • Care este diferența dintre unitatea de testare (unit test) și testarea de
    funcționalitate/integrare?
  • Care este scopul unei unelte de lintarea a stilului de cod?

####[⬆] Întrebări despre perfomanță:

  • Ce unelte ai folosi pentru a găsi bug-uri de performanță in codul tau?
  • Ce diferite metode prin care ai putea îmbunătăți performanța defilării
    (scroll) a unui site știi?
  • Explică diferența dintre o schemă (layout), desenare (painting) și compoziție
    (compositing).

####[⬆] Întrebări despre rețea:

  • Tradițional, de ce a fost mai bine să servești resurse de pe mai multe domenii?
  • Încearcă să descrii cât mai bine ce se întâmplă din momentul în care scrii
    un URL-ul unui site în browser până când este complet încărcat pe ecranul tău.
  • Care sunt diferențele dintre Long-Polling, WebSockets și Server-Sent Events?
  • Explică semnificația următoarelor antete HTTP:
    • Diferența dintre Expires, Date, Age și If-Modified
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Care sunt acțiunile HTTP? Listează toate acțiunile HTTP pe care le ști și
    explică-le.

####[⬆] Întrebări despre cod:

Întrebare: Care este valoarea lui foo?

var foo = 10 + '20';

Întrebare: Ce valoare returnează următorul cod?

console.log(0.1 + 0.2 == 0.3);

Întrebare: Cum ai face următoarea să funcționeze?

add(2, 5); // 7
add(2)(5); // 7

Întrebare: Ce valoare este returnată de expresia următoare?

"i'm a lasagna hog".split("").reverse().join("");

Întrebare: Care este valoare lui window.foo?

( window.foo || ( window.foo = "bar" ) );

Întrebare: Care este rezultatul celor două apelări ale funcției alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Întrebare: Care este valoarea lui foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Întrebare: Care este valoarea lui foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Întrebare: Ce output printează acest cod?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

####[⬆] Întrebări amuzante:

  • Povestește-mi despre un proiect mișto la care ai lucrat recent?
  • Ce îți place cel mai mult la uneltele de dezvoltare pe care le folosești?
  • Ai proiecte personale? Ce fel?
  • Care este funcționalitatea ta preferată din Internet Explorer?
  • Cum îți place cafeaua?

####[⬆] Contribuitori:

Acest document a început în 2009 ca o colaborare între
@paul_irish
@bentruyman
@cowboy
@ajpiano
@SlexAxton
@boazsender
@miketaylr
@vladikoff
@gf3
@jon_neal
@sambreed și
@iansym.

De atunci au contribuit mai mult de 100 de
persoane
!

\ No newline at end of file diff --git a/_site/translations/russian/index.html b/_site/translations/russian/index.html deleted file mode 100644 index 00a1e1c96..000000000 --- a/_site/translations/russian/index.html +++ /dev/null @@ -1 +0,0 @@ -Вопросы кандидату на должность front-end разработчика ★ Front-end Job Interview Questions

Вопросы кандидату на должность front-end разработчика

Вопросы кандидату на должность front-end разработчика

Замечание: Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность front-end разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь).

Также имейте в виду, что многие вопросы не требуют однозначного короткого ответа, а лишь помогают завести беседу на ту или иную тему (предоставляя кандидату возможность показать себя во всей красе).

Содержание

  1. Авторы
  2. Общие вопросы
  3. Вопросы по HTML
  4. Вопросы по CSS
  5. Вопросы по JavaScript
  6. Вопросы по тестированию
  7. Вопросы по производительности
  8. Вопросы по сетям
  9. Примеры кода на JavaScript
  10. “Светская беседа”

[⬆] Авторы

Этот проект был запущен в 2009 году в сотрудничестве с @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed и @iansym.

В настоящее время этот проект поддерживают:

С тех пор он был активным благодаря этим замечательным людям.

[⬆] Общие вопросы:

  • Что вы изучили вчера/на этой неделе?
  • Что вас привлекает в программировании?
  • С какой технической сложностью вы недавно столкнулись и как с ней справились?
  • Какие методы для повышения производительности вы использовали при создании или обслуживании сайта?
  • Можете ли вы описать некоторые методы SEO, которые вы использовали в последнее время?
  • Можете ли вы объяснить общие принципы относительно front-end безопасности или недавние проблемы, которые вы решили?
  • Какие действия вы лично предприняли в недавних проектах для повышения удобства использования вашего кода?
  • Расскажите о предпочтительной среде разработки.
  • С какими системами контроля версий вы знакомы?
  • Можете ли вы описать порядок действий при создании новой веб-страницы?
  • Если у вас есть 5 разных файлов со стилями, какой лучший способ интегрировать их в сайт?
  • Можете ли вы описать разницу между прогрессивным улучшением и изящной деградацией?
  • Как можно оптимизировать загрузку внешних ресурсов на странице?
  • Сколько ресурсов браузер может одновременно загружать с одного домена?
    • Какие есть исключения?
  • Назовите три способа уменьшения времени загрузки страницы (воспринимаемого или реального).
  • Если вы присоединились к проекту, где для форматирования используются табы, а вы привыкли использовать пробелы, как вы поступите?
  • Опишите, как бы вы реализовали примитивное слайд-шоу.
  • Если бы у Вас была возможность освоить новую технологию в этом году, что бы это было?
  • Объясните важность стандартов и комитетов по стандартам.
  • Что такое FOUC (Flash Of Unstyled Content)? Как его избежать?
  • Объясните, что такое ARIA и скринридеры, а также как сделать вебсайт доступным.
  • Какие преимущества и недостатки у CSS и JavaScript анимаций?
  • Что означает CORS и какую проблему решает?

[⬆] Вопросы по HTML:

  • Для чего нужен doctype?
  • Как следует оформлять страницу, содержимое которой может быть на разных языках?
  • На что необходимо обратить внимание при разработке мультиязычных сайтов?
  • Для чего отлично подойдут data- атрибуты?
  • Представьте HTML5 как открытую веб-платформу. Из каких блоков состоит HTML5?
  • Объясните разницу между cookie, sessionStorage и localStorage.
  • Объясните разницу между <script>, <script async> и <script defer>.
  • Почему хорошей практикой считается располагать <link> для подключения CSS между <head></head>, а <script> для подключения JS ставить перед </body>? Знаете ли вы исключения?
  • Что такое прогрессивный рендеринг?
  • Для чего используется атрибут srcset в теге изображения? Опишите процесс, который использует браузер при оценке содержимого этого атрибута.
  • Приходилось ли вам работать с языками HTML-шаблонизации?

[⬆] Вопросы по CSS:

  • Что такое специфичность CSS селекторов и как она работает?
  • В чем разница между “сбросом” и “нормализацией” CSS? Что бы вы выбрали и почему?
  • Объясните, что такое плавающие элементы (floats) и как они работают.
  • Объясните, что такое z-index и как формируется контекст наложения.
  • Объясните, что такое блочный контекст форматирования и как он работает.
  • Какие вы знаете методы запрета обтекания (clearing) и в каких случаях они применяются?
  • Как вы решаете стилевые проблемы, связанные с особенностями браузеров?
  • Как вы обеспечиваете отображение страниц в браузерах с ограниченными возможностями?
    • Какие приёмы/процессы вы при этом используете?
  • Какими способами можно визуально скрыть элемент (оставив его доступным только для скринридера)?
  • Использовали ли вы систему сеток, и если да, то какую вы предпочитаете?
  • Приходилось ли Вам использовать или реализовывать медиа-запросы или вёрстку под мобильные устройства?
  • Вы знакомы со стилизацией SVG?
  • Можете ли вы привести пример свойства @media, отличного от screen?
  • На что нужно обратить внимание при написании эффективного CSS?
  • Какие преимущества/недостатки в использовании CSS препроцессоров?
    • Опишите, что вам нравится и не нравится в CSS препроцессорах, которыми вы пользовались.
  • Как вы реализуете макет, который использует нестандартные шрифты?
  • Объясните, как браузер определяет, на какие элементы накладывать CSS стили?
  • Объясните, что такое псевдоэлементы и для чего они нужны.
  • Объясните своими словами, что такое блочная модель.
  • Что делает * { box-sizing: border-box; }? В чем его преимущества?
  • Что означает свойство display и можете ли вы привести несколько примеров его использования?
  • В чем разница между строчным и блочно-строчным элементом?
  • В чем разница между относительным, фиксированным, абсолютным и статически позиционированным элементом?
  • Какими CSS фреймворками вы пользовались? Что бы вы хотели в них изменить/улучшить?
  • Пользовались ли вы Flexbox или Grid?
  • Можете ли вы объяснить разницу между responsive сайтом и mobile-first?
  • Вы имеете опыт работы с ретиновой графикой? Если да, то какие методы вы использовали?
  • В каком случае вы предпочтёте использовать translate() вместо абсолютного позиционирования и наоборот? И почему?

[⬆] Вопросы по JavaScript:

  • Объясните делегирование событий.
  • Объясните, как this работает в JavaScript.
  • Расскажите, как работает прототипное наследование.
  • Что вы думаете о AMD против CommonJS?
  • Объясните, почему это не является IIFE: function foo(){ }();.
    • Что необходимо изменить, чтобы это стало IIFE?
  • В чём различие между переменными, значение которых: null, undefined и не объявлено?
    • Как бы вы проверили их на каждое из этих значений?
  • Что такое замыкание и как/для чего его используют?
  • Можете ли вы описать основное различие между циклом forEach и циклом .map()? И в каких случаях каждый из них используется?
  • В каких случаях обычно используются анонимные функции?
  • Как вы организуете свой код? (module pattern, classical inheritance)
  • В чем разница между host-объектами и нативными объектами?
  • В чем разница между: function Person(){}, var person = Person(), и var person = new Person()?
  • В чем разница между .call и .apply?
  • Что делает и для чего нужна функция Function.prototype.bind?
  • В чем разница между feature detection (определение возможностей браузера), feature inference (предположение возможностей) и анализом строки user-agent?
  • Расскажите об Ajax как можно более подробно.
  • Какие преимущества и недостатки в использовании Ajax?
  • Объясните, как работает JSONP (и почему это не совсем AJAX).
  • Вы когда-нибудь использовали шаблонизацию на JavaScript?
    • Если да, то какие библиотеки вы использовали?
  • Расскажите, что такое “hoisting”.
  • Объясните event bubbling.
  • В чём разница между “атрибутом” (attribute) и “свойством” (property)?
  • Почему не следует расширять нативные JavaScript объекты?
  • В чём разница между событием document load и событием document DOMContentLoaded?
  • В чем разница между == и ===?
  • Объясните same-origin policy в контексте JavaScript.
  • Сделайте так, чтобы этот код работал:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Почему тернарный оператор так называется?
  • Что делает строчка "use strict";? Какие достоинства и недостатки от ее использования?
  • Напишите цикл, который перебирает числа до 100, возвращая “fizz” на числа кратные 3, “buzz” на числа кратные 5 и “fizzbuzz” на числа кратные 3 и 5
  • Почему считается хорошим тоном оставить глобальную область видимости (global scope) в нетронутом состоянии?
  • Для чего используют событие load? Есть ли у этого события недостатки? Знаете ли вы какие-либо альтернативы, и в каких случаях бы стали их использовать?
  • Расскажите, что такое одностраничное приложение, и как сделать его SEO-оптимизированным.
  • Насколько вы опытны в работе с промисами (promises) и/или их полифиллами?
  • Какие преимущества и недостатки при использовании промисов вместо функций обратного вызова (callbacks)?
  • Каковы преимущества и недостатки написания JavaScript кода на языке, который компилируется в JavaScript?
  • Какие инструменты и методы вы используете при отладке кода?
  • Какие языковые конструкции вы используете для итерации по свойствам объекта и элементам массива?
  • Объясните разницу между изменяемыми (mutable) и неизменяемыми (immutable) объектами.
    • Приведите пример неизменяемого объекта в JavaScript.
    • Какие преимущества и недостатки у неизменяемости?
    • Как вы можете достигнуть неизменяемости в вашем коде?
  • Объясните разницу между синхронными и асинхронными функциями.
  • Что такое цикл событий (event loop)?
    • В чем разница между стеком вызовов (call stack) и очередью событий (task queue)?
  • Объясните разницу при использовании foo в function foo() {} и var foo = function() {}
  • В чём различие между переменными, созданными при помощи let, var и const?
  • В чём разница между классом в ES6 и функцией-конструктором в ES5?
  • Можете ли вы привести пример использования стрелочных функции =>? Чем они отличаются от других функций?
  • Дайте определение функции высшего порядка.
  • Можете ли вы привести пример деструктуризации объекта или массива?
  • Шаблонные строки в ES6 намного упрощают создание строк, можете ли вы привести пример их использования?
  • Можете ли вы привести пример каррированной функции (curry function) и в чём их преимущество?
  • В чём преимущества использования spread оператора и чем он отличается от rest оператора?
  • Каким образом можно обмениваться кодом между файлами?
  • Для чего используются статические члены класса?

[⬆] Вопросы по тестированию:

  • Какие преимущества/недостатки в тестировании собственного кода?
  • Какие инструменты вы будете использовать для тестирования работоспособности своего кода?
  • В чём различие между юнит-тестами и функциональными/интеграционными тестами?
  • Для чего предназначены линтеры (code style linting tool)?

[⬆] Вопросы по производительности:

  • Какие инструменты вы используете, чтобы найти недостатки в производительности вашего кода?
  • Какие вы знаете способы улучшения производительности при скроллинге на вебсайте?
  • Объясните разницу между layout, painting и compositing.

[⬆] Вопросы по сетям:

  • Почему лучше загружать ресурсы для сайта с нескольких доменов?
  • Опишите весь процесс, начиная с ввода адреса сайта в адресную строку до окончания его загрузки на экране.
  • В чём различия между Long-Polling, Websockets и Server-Sent Events?
  • Опишите следующие заголовки HTTP-запросов и ответов:
    • Разницу между Expires, Date, Age и If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Что такое HTTP методы? Перечислите все HTTP-методы, которые вы знаете, и объясните их.

[⬆] Примеры кода на JavaScript

Вопрос: Чему равно foo?

var foo = 10 + '20';

Вопрос: Что выводит код ниже?

console.log(0.1 + 0.2 == 0.3);

Вопрос: Как сделать, чтобы это выражение работало?

add(2, 5); // 7
add(2)(5); // 7

Вопрос: Какое значение возвращает данное выражение?

"i'm a lasagna hog".split("").reverse().join("");

Вопрос: Чему равно window.foo?

( window.foo || ( window.foo = "bar" ) );

Вопрос: Что покажут эти два alert?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Вопрос: Чему равно foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Вопрос: Чему равно foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Вопрос: Что выводит код ниже?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Вопрос: В чем разница между этими четырьмя промисами (promises)?

doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);

[⬆] “Светская беседа”:

  • Самое крутое, что вы когда-либо делали и чем гордитесь?
  • Что вы больше всего любите в ваших инструментах разработки?
  • Кто из фронтенд-сообщества вас вдохновляет?
  • У вас есть какие-нибудь личные проекты? Какого рода?
  • Какая ваша любимая “фишка” Internet Explorer?
  • Какой кофе вы предпочитаете?
\ No newline at end of file diff --git a/_site/translations/serbian/index.html b/_site/translations/serbian/index.html deleted file mode 100644 index de8b1fbc0..000000000 --- a/_site/translations/serbian/index.html +++ /dev/null @@ -1 +0,0 @@ -Intervju za posao Front-end Developer-a ★ Front-end Job Interview Questions

Intervju za posao Front-end Developer-a

Intervju za posao Front-end Developer-a

@version 0.0.1

Ovaj repo sadrži mnogobrojna pitanja za intervju iz oblasti front-end develpment-a koja možete koristiti u proceni mogućih kandidata.
Ne preporučuje se korišćenje svih pitanja jer bi intervju trajao dugo. Izbor od nekoliko pitanja sa ove liste bi Vam pomogao.

Pre intevjua, preporučujemo da proučite članak: Rebecca Murphey Baseline For Front-End Developers.

Napomena: Uzmite u obzir da veliki broj dole navedenih pitanja može biti korisna tema za razgovor koja će Vam možda reći vise o sposobnostima osobe nego direktni odgovori.

####Autori originalne liste

Većina pitanja je preuzeta sa oksoclap tj. rasprave koju je originalno pokrenuo Paul Irish (@paul_irish) i kojoj su doprineli:

Opšta pitanja:

  • Opišite Vaš omiljeni radni prostor. (OS, Editor, Browseri, Alati itd.)
  • Opišite Vaš proces izrade web stranice?
  • Možete li opisati razliku između progresivnog poboljšanja i neprimjetne degradacije?
    • Bonus bodovi ako se opiše detektovanje mogućnosti browsera
  • Objasnite šta je to “Semantički HTML”.
  • Kako biste optimizirali infrastrukturu i resurse web stranice?
    • Traže se više rešenja, na primer:
      • Spajanje datoteka
      • Minifikacija datoteka
      • Korišćenje CDN-a
      • Keširanje (Caching)
      • itd.
  • Zbog čega je bolje preuzimati delove stranice sa više domena?
    • Koliko resursa browser može preuzeti istovremeno sa jednog domena?
  • Navedite tri načina za smanjivanje vremena učitavanja strane. (uočeno ili stvarno vrieme učitavanja)
  • Ako bi došli na projekt gde se koriste tabovi a Vi koristite razmake, šta biste uradili?
    • Preporučili korištenja EditorConfig-a (http://editorconfig.org)
    • Prilagodili se postojećoj praksi (zadržavanje konzistentnosti)
    • koristili :retab! naredbu
  • Napravite jednostavnu stranicu za prezentacije
    • Bonus bodovi ako se ne koristi JavaScript.
  • Koje alate koristite za testiranje performansi koda?
    • Profiler, JSPerf, Dromaeo
  • Kada bi ste odabrati jednu tehologiju koju ćete naučiti ove godine, koja bi to bila?
  • Objasnite važnost standarda i organizacija za standardizaciju
  • Šta je to FOUC? Kako možete izbeći FOUC?

HTML pitanja:

  • Koja je funkcija doctype?
  • Koja je razlika između standardnog i quirks moda?
  • Koja su ograničenja u obsluživanju XHTML standarda?
    • Postoje li problemi kod obsluživanju stranica sa header-om application/xhtml+xml?
  • Kako biste obslužili stranicu sa višejezičnim sadržajem?
    • Na što morate obratit pažnju prilikom dizajna ili razvoja višejezične stranicu?
  • Čemu služe data- atributi?
  • Posmatrajte HTML5 kao platformu otvorenog koda. Koji su gradivni elementi HTML-a 5?
  • Objasnite razliku između kolačića, podataka sesije (sessionStorage) i lokalnog snimanja.

CSS pitanja:

  • Objasnite čemu služi “reset” CSS i zašto je koristan.
  • Opišite šta su i kako rade Float-ovi.
  • Koje su tehnike clearing-a i u kojim slučajevima bi ste ih koristili?
  • Objasnite CSS sprite-ove i kako se koriste na stranici ili site-u.
  • Koje su Vaše omiljene tehnike zamene slike i kada ih koristite?
  • Koje su Vaše omiljene tehnike: CSS hack-ovi property-a, kondicionalno uključivanje .css datoteka, ili … nešto drugo?
  • Kako obslužujete sadržaj za browser-e slabijih mogućnosti?
    • Koje tehnike/procese koristite?
  • Koji su mogući načini za vizualno sakrivanje sadržaja (vidljivi su samo za screen reader-e)?
  • Da li ste ikada koristili grid system, i ako jeste koji Vam je omiljeni?
  • Da li ste koristili ili implementirali media querie-je ili layout/CSS specifične za mobilne?
  • Imate li iskustva u stilizovanju SVG slika?
  • Kako prilagođavate stranicu za štampu?
  • Šta se podrazumeva pod dobrom praksom za pisanje efikasnog CSS-a?
  • Koje su prednosti/nedostatci korišćenja CSS pred-procesora? (SASS, Compass, Stylus, LESS)
    • Opišite što vam se sviđa ili ne sviđa kod CSS pred-procesora koje ste koristili.
  • Objasnite kako bi ste napravili stranicu čiji dizajn ne koristi standardne fontove?
    • Webfont-ovi (font servisi poput: Google Webfonts, Typekit itd.)
  • Objasnite kako browser utvrđuje koji elementi odgovaraju CSS selector-u.
  • Objasnite Vaše razumevanje “box model”-a i na koji način bi ste naveli browser da prikaže (render) izgled vaše strane?

JavaScript pitanja:

  • Objasnite delegaciju događaja
  • Objasnite kako se u Javascriptu koristi this
  • Objasnite nasleđivanje prototype-a
  • Kako testirate JavaScript?
  • AMD ili CommonJS?
  • Šta je to hash tabela?
  • Objasnite zašto sledeća funkcija neće raditi kao IIFE: function foo(){ }();?
    • Šta treba izmeniti da bi radila kao IIFE?
  • U čemu je razlika između null, undefined i undeclared?
    • Kako bi ste promenili ova stanja?
  • Šta je closure, kako i zašto se koristi?
  • Koja je uobičajena primena anonimne funkcije?
  • Objasnite “JavaScript module pattern” i kada biste ga koristili.
    • Bonus bodovi za predlog namespacing-a
    • Šta ako su moduli bez namespacing-a?
  • Kako organizujete Vaš kod? (module pattern, klasično nasleđivanje?)
  • Koja je razlika između host i native objekta?
  • Koja je razlika između function Person(){}, var person = Person(), i var person = new Person()?
  • Koja je razlika između .call i .apply?
  • Objasnite Function.prototype.bind
  • Kada optimizirate Vaš kod?
  • Možete li objasniti nasleđivanje u JavaScriptu?
  • Kada koristite document.write()?
    • Većina oglasa još uvijek koristi document.write() iako se to ne preporučuje.
  • Koja je razlika između detekcije mogućnosti (feature detection), pretpostavljanje mogućnosti (feature inference) i korišćenja UA string-a?
  • Objasnite AJAX sa što više detalja
  • Objasnite kako radi JSONP (i u čemu se razlikuje od pravog AJAX-a)
  • Da li ste ikad koristili JavaScript template?
    • Ako da, koje ste koristili? (Mustache.js, Handlebars etc.)
  • Objasnite “hoisting”.
  • Objasnite propagaciju događaja (event bubbling).
  • Koja je razlika između “attribute”-a i “property”-a?
  • Zašto proširivanje ugrađenih JavaScript objekata nije najbolja ideja?
  • Zašto je proširivanje ugrađenih JavaScript objekata dobra ideja?
  • Koja je razlika između document load i document ready događaja?
  • Koja je razlika između == i ===?
  • Objasnite kako bi ste pročitali parametar URL adrese
  • Objasnite pravilo jednog izvora gledano sa staništa JavaScript-a.
  • Opišite načine nasleđivanja u JavaScript-u.
  • Popravite: [1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Objasnite memoization strategiju (izbegavanje ponavljanja računanja) u Javascript-u.
  • Zašto se Ternarni operator zove Ternarni?
  • Šta je arity funkcije?
  • Šta radi "use strict";? Koje su mane, koje prednosti?

jQuery pitanja:

  • Objasnite “chaining”.
  • Objasnite “deferreds”.
  • Navedite koje optimizacije korišćenja jQuery-a znate?
  • Čemu služi .end() ?
  • Kada i zašto bi vezani (bound) događaj stavili u namespace?
  • Navedite četri vrednosti koje možete poslati jQuery metodu.
    • Selektor (string), HTML (string), Callback (funkcija), HTMLElement, object, array, element array, jQuery Object itd.
  • Čemu služi red efekata (fx)?
  • Koja je razlika između .get(),[], i.eq()`?
  • Koja je razlika između .bind(),.live(), i.delegate()`?
  • Koja je razlika između $ i $.fn? Ili samo što je $.fn.
  • Optimirajte selektor: $(".foo div#bar:eq(0)")
  • Razlika između ‘delegate()’ i ‘live()’?

Kod vežbe:

modulo(12, 5) // 2

Pitanje: Napišite modulo funkciju koja daje rezultat prikazan iznad

"i'm a lasagna hog".split("").reverse().join("");

Pitanje: Šta će biti vraćeno iz funkcije prikazane iznad?

Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Pitanje: Koja je vrednost window.foo?

Odgovor: "bar"

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Pitanje: Šta će se desiti kao rezultat 2 alerta iznad?

Odgovor: “Hello World” i ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Pitanje: Koja je vrednost foo.length?

Odgovor: 2

Zanimljiva pitanja:

  • Šta je najzanimljivije što ste napravili do sad? na čemu ste najponosniji?
  • Šta Vam je najinteresantnije u alatima koje koristite za rad?
  • Imate li neke hobi projekte? Koje?
  • Šta Vam se najviše sviđa kod Internet Explorer?

Dodatni clanci

\ No newline at end of file diff --git a/_site/translations/slovakian/index.html b/_site/translations/slovakian/index.html deleted file mode 100644 index 47bae3558..000000000 --- a/_site/translations/slovakian/index.html +++ /dev/null @@ -1 +0,0 @@ -Otázky k pohovoru; front-end vývojár ★ Front-end Job Interview Questions

Otázky k pohovoru; front-end vývojár

Otázky k pohovoru: front-end vývojár

Tento repozitár obsahuje rad otázok, ktoré môžete položiť pri pohovore kandidátovi na pozíciu front-end vývojár a overiť si tak jeho znalosti v tomto odbore. Nie je zamýšľané položiť všetky tieto otázky (ich korektné zodpovedanie by trvalo hodiny), bohato postačí len určitú časť vyhovujúci vašim potrebám.

Za prečítanie stojí tiež Baseline For Front-End Developers (anglicky) od Rebecci Murphey.

Poznámka: Majte na pamäti, že tieto otázky majú viesť skôr k diskusii na danú tému a prezradiť tak niečo viac o schopnostiach daného vývojára, než aby boli zodpovedané jedným slovom alebo vetou.

Obsah

  1. Pôvodní prispievatelia
  2. Všeobecné otázky
  3. HTML otázky
  4. CSS otázky
  5. JS otázky
  6. jQuery otázky
  7. Otázky z kódu
  8. Zábavné otázky
  9. Ďalšie zaujímave referencie

####[⬆] Pôvodní prispievatelia:

Väčšina otázok bola prevzatá z oksoclap pôvodne vytvoreného Paulom Irishom (@paul_irish) a následne doplnená týmito osobami:

####[⬆] Všeobecné otázky:

  • Čo ste sa naučili včera/minulý týždeň nové?
  • Čo vás vzrušuje alebo zaujíma na kódovaní?
  • Povedzte niečo o vašom obľúbenom vývojovom prostredí (operačný systém, editor, prehliadač, nástroje, …).
  • Opíšte ako postupujete pri vytváraní novej webovej stránky.
  • Dokážete vysvetliť rozdiel medzi pozvoľným degradováním (graceful degradation) a postupným vylepšovaním (progressive enhancement)?
      * Body navyše za opis detekcie pokročilej funkcionality
  • Vysvetlite pojem “sémantické HTML”.
  • Ako by ste optimalizovali zdroje (obrázky, JS, CSS, …) webovej stránky?
      * K dispozícii je celý rad optimalizácií napr.:
        * spájanie súborov
        * minifikácia súborov
        * CDN hosťovanie
        * caching, …
  • Prečo je lepšie posielať zdroje webovej stránky z viacerých domén?
      * Koľko súborov môže z danej domény sťahovať prehliadač naraz?
  • Vymenujte tri spôsoby ako znížiť dobu nahrávania webovej stránky (vnímanú alebo skutočnú dobu nahrávania).
  • Ak nastúpite do projektu, kde sa namiesto odsadzovania tabulátormi používajú medzery, čo urobíte?
      * Navrhnutie, že projekt by mohol využívať niečo ako EditorConfig (http://editorconfig.org)
      * Prispôsobenie sa konvencii (ale zostať konzistentný).
      * issue :retab ! command
  • Napíšte jednoduchú stránku so slideshow.
      * Body navyše pokiaľ nepoužíva JS.
  • Aké nástroje používate pre testovanie rýchlosti vášho kódu?
      * Profiler, JSPerf, Dromaeo
  • Ak by ste sa chcel/chcela tento rok naučiť jednu novú technológiu, ktorá by to bola?
  • Vysvetlite dôležitosť štandardov a štandardizačných orgánov.
  • Čo to je FOUC? Ako je možné sa vyhnúť FOUC?

####[⬆] HTML otázky:

  • Čo robí doctype?
  • Aký je rozdiel medzi štandardným a tkz. quirks módom?
  • Aké sú obmedzenia pri poskytovaní XHTML stránok?
      * Existuje nejaký problém pri poskytovaní stránok ako application/xhtml+xml?
  • Ako poskytujete stránku s viacjazyčným obsahom?
      * Na čo všetko si musíte dať pozor pri vytváraní viacjazyčnej stránky?
  • K čomu sú dobré atribúty data-?
  • Uvažujte o HTML5 ako o otvorenej platorme. Aké sú základné stavebné kamene HTML5?
  • Opíšte rozdiel medzi cookies, sessionStorage a localStorage.

####[⬆] CSS otázky:

  • Opíšte čo robí a na čo je dobrý “reset” CSS súbor.
  • Opíšte obtekanie (floats) a ako funguje.
  • Popíšte rôzne techniky pre zastavenie obtekanie (clear fixing) a povedzte, ktoré sa hodia v ktorom kontexte.
  • Vysvetlite, čo to sú CSS sprites a ako by ste ich implementovali.
  • Aká je vaša obľúbená technika pre nahrádzanie obrázkov a ktorú a kedy používate?
  • CSS property hacks, podmienené vkladanie .css súborov alebo niečo ďalšie?
  • Ako poskytujete stránky pre funkcionálne/vlastnosťami obmedzený prehliadač?
      * Akú techniku​/proces používate?
  • Aké sú spôsoby pre zneviditeľnie obsahu (a zachovanie jeho dostupnosti pre čítačky)?
  • Použili ste niekedy grid systém a ak áno, ktorý uprednostňujete?
  • Použili ste niekedy mediálne selektory (media query) alebo špecifický layout/CSS pre mobilné zariadenia?
  • Máte nejaké skúsenosti so štýlovaním SVG?
  • Ako optimalizujete stránky pre tlač?
  • Aké sú zásady pre písanie efektnivního CSS?
  • Aké sú výhody/nevýhody použítia CSS preprocesorov (SASS, Compass, Stylus, LESS)?
      * Popíšte, čo sa Vám na CSS preprocesoroch, ktoré ste použili, páči/nepáči.
  • Ako by ste implementovali návrh webovej stránky, ktorá používa neštandardné rezy písma?
      * Webfonts (služby typu: Google Webfonts, Typekit, …)
  • Vysvetlite ako prehliadač určuje, ktorý element zodpovedá CSS selektoru.
  • Vysvetlite vaše chápanie box modelu a ako poviete pomocou CSS prehliadaču, aby váš layout vykreslil v odlišnom box modele

####[⬆] JS otázky:

  • Vysvetlite delegáciu udalostí.
  • Vysvetlite ako funguje this v JavaScripte.
  • Vysvetlite ako funguje prototypová dedičnosť.
  • Ako testujete JavaScript?
  • AMD vs. CommonJS?
  • Čo je hashovacia tabuľka?
  • Vysvetlite prečo nasledujúce volanie nebude fungovať ako IIFE : function foo(){ }();.
      * Čo musíte zmeniť, aby volania zafungovalo ako IIFE?
  • Vysvetlite rozdiel medzi premennou, ktorá je null, undefined alebo undeclared?
      * Akým spôsobom by ste overili tieto jednotlivé stavy?
  • Čo to je “closure” a ako/prečo by sme ich mali používať?
  • Aké je typické využitie pre anonymné funkcie?
  • Vysvetlite “JavaScript module pattern” a kedy by ste ho mali použiť.
      * Body navyše za zmienku o čistých menných priestoroch.
      * Čo ak sú vaše moduly bez menného priestora?
  • Ako organizujete váš kód? (module pattern, klasická dedičnosť?)
  • Aký je rozdiel medzi natívnymi a hostiteľskými objektami?
  • Rozdiel medzi:
function Person(){}
var person = Person()
var person = new Person()
  • Aký je rozdiel medzi .call a .apply?
  • Aký je rozdiel medzi undefined a null?
  • Vysvetlite Function.prototype.bind.
  • Kedy optimalizujete váš kód?
  • Vysvetlite ako funguje dedičnosť v JavaScripte.
  • Kedy by ste použili document.write()?
      * Väčšina generovaných reklám stále používa tento prístup aj napriek tomu, že je to dlhodobo odsudzované.
  • Aký je rozdiel medzi detekciou vlastností, odvodenie vlastností a použitie UA reťazca?
  • Vysvetlite AJAX čo najpodrobnejšie to ide.
  • Vysvetlite ako funguje JSONP (a prečo to nie je naozajstný AJAX).
  • Použili ste niekedy JavaScriptové šablóny?
      * Ak áno, ktoré knižnice ste použili (mustache.js, Handlebars, …)?
  • Vysvetlite “hoisting”.
  • Vysvetlite prebublávanie udalostí.
  • Aký je rozdiel medzi atribútom (attribute) a vlastnosťou (property)?
  • Prečo nie je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Prečo je dobrý nápad rozširovať natívne JavaScriptové objekty?
  • Aký je rozdiel medzi udalosťami “document load” a “document ready”?
  • Aký je rozdiel medzi == a ===?
  • Vysvetlite akým spôsobom získate parameter z URL zadaného v okne prehliadača.
  • Vysvetlite JavaScriptové pravidlo rovnakého pôvodu (same-origin policy).
  • Opíšte prístupy dedenia v JavaScripte.
  • Nasledujúci kód upravte tak, aby fungoval:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Opíšte stratégia pre memorizáciu (odstránenie opakovaných výpočtov) v JavaScripte.
  • Prečo sa hovorí ternárny operátor, čo označuje slovo ternárny?
  • Čo je označované ako “arita” funkcie?
  • Čo znamená "use strict";? Aké sú výhody a nevýhody použitia?

####[⬆] jQuery otázky:

  • Vysvetlite reťazenie (chaining).
  • Vysvetlite odkladanie (deferreds).
  • Aké poznáte a viete implementovať optimalizácie špeciálne pre jQuery?
  • Čo robí .end()?
  • Ako a prečo by ste váš “event handler” zaopatrili menným priestorom?
  • Vymenujte štyri rôzne typy hodnôt, ktoré môžete odovzdať ako vstupný parameter metód v jQuery.
      * selektor (reťazec), HTML (reťazec), callback (funkcia), HTMLElement, object, polia, polia elementu, jQuery Object, …
  • Čo to je fronta efektov (alebo fx front)?
  • Aký je rozdiel medzi .get(), [] a .eq()?
  • Aký je rozdiel medzi .bind(), .live() a .delegate()?
  • Aký je rozdiel medzi $ a $.fn? Alebo len, čo je $.fn?
  • Zoptimalizujte tento selektor :
$(".foo div#bar:eq(0)");
  • Aký je rozdiel medzi .delegate() a .live()?

####[⬆] Otázky z kódu:

modulo(12, 5) // 2

Otázka: Implementujte funkciu modulo tak, aby splnila zadanie.

"i'm a lasagna hog".split("").reverse().join("");

Otázka: Akú hodnotu vráti uvedený výraz?

Odpoveď:" goh angasal a m’i"

(window.foo || (window.foo = "bar"));

Otázka: Akú hodnotu má window.foo?

Odpoveď: “bar” (iba ak window.foo bolo false, inak vráti svojou hodnotu)

var foo = "Hello";
(function() {
var bar = "World";
alert(foo + bar);
})();
alert(foo + bar);

Otázka: Čo zobrazia uvedené dva alerty?

Odpoveď: “Hello World” a ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Otázka: Aká je hodnota foo.length?

Odpoveď: 2

####[⬆] Zábavné otázky:

  • Aká je najúžasnejšia vec, ktorú ste kedy nakódovali, alebo na ktorú ste najviac pyšní?
  • Aké sú vaše obľúbené časti vývojárskych nástrojov, ktoré používate?
  • Máte nejaký vlastný hobby projekt?
  • Aká je Vaša obľúbená vlastnosť Internet Exploreru?

####[⬆] Ďalšie zaujímave referencie:

\ No newline at end of file diff --git a/_site/translations/slovenian/index.html b/_site/translations/slovenian/index.html deleted file mode 100644 index 6bc6b14c4..000000000 --- a/_site/translations/slovenian/index.html +++ /dev/null @@ -1 +0,0 @@ -Intervju vprašanja za front-end programerja ★ Front-end Job Interview Questions

Intervju vprašanja za front-end programerja

Intervju vprašanja za front-end programerja

@verzija 1.0

Obvestilo: Ta repositorij vsebuje vrsto front-end vprašanj, ki se lahko uporabijo za preverjanje potencialnih kandidatov. Ni priporočljivo, da se vsa vprašanja uporabijo za vsakega kandidata (to bi trajalo ure). Izberite nekaj vprašanj, ki vam bodo pomagala preveriti kandidata za znanja, ki jih potrebujete.

Mnogo teh vprašanj je odprtega tipa in lahko pripeljejo do zanimivih diskusij, ki vam bodo o kandidatih sporočili več, kot pa navaden kratek odgovor.

####Originalni Avtorji

Obvestilo: večino teh vprašanj je bilo pobranih iz foruma, ustvarjenega in vzdrževanega od nasljednjih ljudi:

Splošna vprašanja:

  • Ali uporabljaš Twitter?
    • Če ja, katerim osebam slediš?
  • Ali uporabljaš GitHub?
    • Če ja, katerim repositorijem slediš?
  • Katere bloge spremljaš?
  • Katere programe za hranjenje verzij si uporabljal/a (Git, SVN, …)?
  • Katero okolje najraje uporabljaš za razvoj? (OS, editor, brskalnik, orodja, …)
  • Lahko opišeš tvoj potek dela, ko kreiraš novo spletno stran?
  • Lahko opišeš razliko med “progressive enhancement” in “graceful degradation”?
    • bonus točke za opis “feature detection”-a
  • Razloži pojem “Semantic HTML”.
  • V katerem brskalniku primarno razvijaš in katera orodja uporabljaš?
  • Kako bi optimiziral/a nalaganje spletne strani (s stališča zahtevanih datotek)?
    • Iščemo več rešitev, ki med drugimi vklučujejo tudi:
      • Združevanje datotek
      • Minifikacija datotek
      • CDN gostovanje
      • Caching
  • Zakaj je bolje statične vsebine servirati z večih domen?
    • Koliko različnih datotek bo brskalnik prenesel iz ene domene na enkrat?
  • Naštej 3 načine za zmanjšanje “page load time”-a. (dejanski ali zaznavan “load time”).
  • Če bi se pridružil/a projektu, kjer uporabljajo “tab”-e, ti pa uporabljaš presledke, kaj bi storil/a?
  • Ustvari preprosto prezentacijsko stran (slide-show).
    • Bonus točke, če ne uporablja JS.
  • Katera orodja uporabljaš za testiranje performančnosti kode?
  • Če bi to leto lahko popolnoma osvojil/a novo tehnologijo, katera bi to bila?
  • Razloži pomembnost standardov in organov za nadzorovanje standardov.
  • Kaj je FOUC? Kako se izogneš FOUC-u?

HTML vprašanja:

  • Kaj naredi doctype in koliko različtih lahko našteješ?
  • Kaj je razlika med “standards mode” in “quirks mode”?
  • Kaj so omejitve pri serviranju XHTML strani?
    • Ali so kakšni problemi pri servviranju strani z application/xhtml+xml?
  • Kako serviraš stran z vsebino v večih jezikih?
    • Na katere stvari moraš paziti ko dizajniraš ali programiraš večjezično stran?
  • Ali lahko uporabljaš XHTML sintakso v HTML5?
  • Kako uporabljaš XML v HTML5?
  • Zakaj lahko uporabimo data- atribute?
  • Kaj so “content models” v HTML4 in ali so različni v HTML5?
  • Predpostavi da je HTML5 odprta spletna platforma. Kaj so gradniki HTML5?
  • Opiši razliko med “cookies”, “sessionStorage” in “localStorage”.

JavaScript vprašanja:

  • Katere JavaScript knjižnice si že uporabljal/a?
  • Si kdaj gledal/a izvorno kodo knjižnic/ogrodij, ki si jih uporabljal/a?
  • Razlika med Java in JavaScript?
  • Kaj je “hashtable”?
  • Kaj sta undefined in undeclared spremenljivki?
  • Kaj je “closure”, in zakaj/kako bi jo uporabil/a?
  • Tipičen primer uporabe anonimnih funkcij?
  • Razloži “JavaScript module pattern” in kdaj bi ga uporabil/a.
    • Bonus točke če omeni “clean namespacing”.
  • Kako organiziraš svojo kodo? (module pattern, classical inheritance?)
  • Razlika med “host object” in “native object”?
  • Razlika med:
function Person(){} var person = Person() var person = new Person()
  • Razlika med .call in .apply?
  • Razloži Function.prototype.bind?
  • Kdaj optimiziraš kodo?
  • Ali lahko razložiš dedovanje v JavaScript-u?
  • Kdaj bi uporabil/a document.write()?
  • Razlika med zaznavanjem funkcionalnosti, sklepanjem o funkcionalnosti in uporabljanjem UA niza.
  • Razloži AJAX s čim več detajli.
  • Razloži kako deluje JSONP (in zakaj to ni res AJAX).
  • Si že kdaj uporabil/a JavaScript “templates”-e?
    • Če ja, katere knjižnice si uporabil/a? (Mustache.js, Handlebars etc.)
  • Razloži “hoisting”.
  • Opiši “event bubbling”.
  • Razlika med “attribute” in “property”?
  • Zakaj je razširjanje vgrajenih JS objektov slaba ideja?
  • Zakaj je razširjanje vgrajenih JS objektov dobra ideja?
  • Razlika med “document load” in “document ready”?
  • Razlika med == in ===?
  • Kako bi dobil URL GET parameter?
  • Razloži “same-origin policy”.
  • Razloži “event delegation”.
  • Razloži različne načine doseganja dedovanja.
  • Napiši kodo za “duplicator()” funkcijo:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Opiši strategijo za pomnenje (izogibanje ponovnemu računanju).
  • Od kod ime “Ternary statement”, kaj označuje beseda “Ternary”?
  • Kaj je “arity” funkcije?
  • Kaj je "use strict";? Prednosti/slabosti?

JavaScript koda primeri:

~~3.14

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: 3

"i'm a lasagna hog".split("").reverse().join("");

Vprašanje: Kaj je vrednost zgornjega stavka?
Odgovor: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Vprašanje: Kaj je vrednost window.foo?
Odgovor: "bar"
samo če je bil window.foo “lažen”, drugače bo ohranil svojo vrednost.

var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);

Vprašanje: Kaj je rezultat zgornjih dveh alert-ov?
Odgovor: “Hello World” & ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Vprašanje: Kaj je vrednost od foo.length?
**Odgovor: 2

var foo = {};
foo.bar = 'hello';

Vprašanje: Kaj je vrednost od foo.length?
**Answer: undefined

foo = foo||bar

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
*Odgovor: if(!foo) foo = bar

foo>>1

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: Math.floor(foo/2)

foo|0
foo+.5|0

Vprašanje: Kako bi lahko drugače napisal/a zgornji stavek?
**Odgovor: parseInt(foo) & Math.round(foo)

function foo(bar1, bar2, bar3){}

Vprašanje: Kako dobiti število paremetrov podanih v funkcijo?
**Odgovor: foo.length // 3 za ta primer

jQuery vprašanja:

  • Razloži “chaining”.
  • Razloži “deferreds”.
  • Naštej nekaj, za jQuery specifičnih, optimizacij.
  • Kaj naredi .end()?
  • Kako, in zakaj, bi uporabil/a “namespace”-e za “event handler”-je?
  • Naštej 4 različne vrednosti, ki jih lahko podaš jQuery funkciji.
    • Selector (string), HTML (string), Callback (function), HTMLElement, object, array, element array, jQuery Object, …
  • Kaj je “effects” vrsta (oz. fx)?
  • Razlika med .get(), [], in .eq()?
  • Razlika med .bind(), .live(), in .delegate()?
  • Razlika med $ in $.fn? Oz. kaj je $.fn?
  • Optimiziraj naslednji selektor:
$(".foo div#bar:eq(0)")
  • Razlika med ‘delegate()’ in ‘live()’?

CSS vprašanja:

  • Opiši namen CSS “reset” datoteke in zakaj je uporabna.
  • Opiši “float”-e in kako delujejo.
  • Opiši različne “clearing” tehnike.
  • Razloži CSS “sprite”-e in kako bi jih implementiral/a.
  • Tvoje najljubše tehnike za zamenjavo slik?
  • CSS hacki, pogojno vključene .css datoteke ali kaj drugega?
  • Kako serviraš strani brskalnikom ki imajo omejen nabor funkcionalnosti?
    • Katere tehnike/procese uporabljaš?
  • Na katere načine lahko vizualno skriješ vsebino (tako da je navoljo samo “screen reader”-jem)?
  • Si že kdaj uporabil/a “grid” sistem. Če ja, kateri ti je najljubši?
  • Si že implementiral/a “media queries” ali za mobilnike specifičen HTML/CSS?
  • Imaš kaj izkušenj s CSSjem v navezi s SVGjem?
  • Kako optimizeraš strani za tiskanje?
  • Naštej nekaj pasti pri pisanju efektivnega CSSja.
  • Ali uporabljaš CSS pred-procesor (sass, compass, Stylus, LESS)?
    • Če ja, opiši kaj ti je/ni všeč.
  • Kako bi implementiral/a spletno stran, ki uporablja nestandardno tipografijo?
    • Webfonts (google webfonts, typekit, …)
  • Razloži kako brskalnik ugotovi kateri element pripada kateremu CSS selektorju.

Opcijska zabavna vprašanja:

  • Kaj je najbolj “cool” stvar, ki si jo sprogramiral/a? Na kaj si najbolj ponosen/a?
  • Poznaš znak (logo) za HTML5?
  • Ali si trenutno, oz. si kdaj bil/a, na ladji?
  • Najljubše stvari tvojih razvojnih orodij?
  • Imaš kak zasebni projekt? Kakšen?
  • Razloži pomembnost “cornify”.
  • Na list papirja napiši vertikalno črke A B C D E . Sedaj pa jih postavi v spuščajoči vrstni red, brez da napišeš vrstico kode.
    • Počakaj če bo obrnil/a list papirja na glavo
  • Pirat ali Ninja?
    • Bonus točke če je kombiniran/a in je dal/a dober razlog (+2 za zombi opica pirat ninja)
  • Če nebi bil/a web-developer, kaj bi počel/a?
  • Najljubša lastnost Internet Explorerja?
  • Dokončaj naslednji stavek: Brendan Eich in Doug Crockford sta __________ javascript-a.
  • jQuery: dobra ali najboljša knjižnica? Debata.
  • http://www.w3schools.com/ ali http://w3fools.com/
\ No newline at end of file diff --git a/_site/translations/spanish/index.html b/_site/translations/spanish/index.html deleted file mode 100644 index 7f87e3cc1..000000000 --- a/_site/translations/spanish/index.html +++ /dev/null @@ -1 +0,0 @@ -GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO ★ Front-end Job Interview Questions

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

GUIA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO

Este repositorio contiene preguntas de entrevistas a programadores front-end, que pueden ser usadas para revisar a candidatos potenciales. Bajo ningún concepto se recomienda usar todas las preguntas aquí expuestas con el mismo candidato (eso llevaría horas). Escoger algunos elementos de esta lista debería ayudarle a revisar las habilidades que requiere.

Nota: Tenga en mente que muchas de estas preguntas son abiertas y pueden llevar a interesantes discusiones que le pueden decir más sobre las capacidades de la persona que una simple respuesta.

Índice

  1. Preguntas generales
  2. Preguntas específicas de HTML
  3. Preguntas específicas de CSS
  4. Preguntas específicas de JavaScript
  5. Preguntas sobre pruebas de código
  6. Preguntas sobre rendimiento
  7. Preguntas sobre conectividad
  8. Preguntas de código
  9. Preguntas divertidas

Contribuyendo

  1. Contribuyentes
  2. Cómo contribuir
  3. Licencia

Preguntas generales:

  • ¿Qué has aprendido en esta semana?
  • ¿Qué es lo que te interesa de la programación?
  • ¿Podría describir algún problema técnico que haya resuelto recientemente?
  • ¿Cuáles son las consideraciones del área de interfaces, rendimiento, posicionamiento, mantenimiento o seguridad que toma en cuenta al desarrollar sitios o aplicaciones web?
  • Hable acerca de su ambiente de desarrollo preferido.
  • ¿Qué sistemas de control de versiones ha usado?
  • ¿Puede describir el proceso que sigue cuando crea una página web?
  • Si tuviera cinco hojas de estilo distintas, ¿cómo las integraría a su página web?
  • ¿Puede describir la diferencia entre “Progressive Enhancement” y “Graceful Degradation”?
  • ¿Cómo optimizaría los recursos de un sitio web?
  • ¿Cuántos recursos se pueden descargar simultáneamente de un mismo dominio?
  • ¿Cuáles son las excepciones?
  • Mencione tres formas para disminuir el tiempo de carga de una página (tiempo real o percibido).
  • Si se ha unido a un proyecto y los desarrolladores usan tabs y usted usa espacios, ¿qué hace?
  • Describa como elaboraría una página con una galería sencilla.
  • Si pudiera elegir una tecnología para dominar este año, ¿cuál sería?
  • Explique la importancia de estándares y los grupos que los definen.
  • ¿Sabe que es el Flash Of Unstyled Content?, ¿cómo lo evita?
  • Explique qué son las Aplicaciones de internet enriquecidas y accesibles y los lectores de pantalla, además de cómo hacer una página web accesible
  • Explique las ventajas y desventajas de usar animaciones en CSS contrario a usar animaciones hechas con JavaScript.
  • ¿Qué significa CORS y a qué problema está relacionado?

Preguntas específicas de HTML:

  • ¿Qué función cumple el doctype y cuántos tipos puede nombrar?
  • ¿Cuál es la diferencia entre el modo convencional y el “quirks mode”?
  • ¿Cuál es la diferencia entre HTML y XHTML?
  • ¿Hay algún problema al servir las páginas usando: application/xhtml+xml?
  • ¿Cómo presentaría una página con contenido en varios lenguajes?
  • ¿Qué consideraciones se deben tener cuando se diseñan/desarrollan sitios multi-lenguajes?
  • ¿Para qué son buenos los atributos data-?
  • ¿Puede usar sintaxis de XHTML en HTML5?
  • ¿Cómo usa XML en HTML5?
  • Si consideramos HTML5 como una plataforma web abierta, ¿cuáles son los componentes que constituyen HTML5?
  • Describa la diferencia entre cookies, sessionStorage y localStorage.
  • Describa la diferencia entre <script>, <script async> y <script defer>.
  • Generalmente, ¿por qué es una buena idea agregar la etiqueta <link> dentro de la etiqueta <head> y la etiqueta <script> justo antes de cerrar la etiqueta <body>. ¿Conoces algún caso excepcional?
  • ¿Qué es el renderizado progresivo?
  • ¿Haz usado algún motor para creado de plantillas HTML?

Preguntas específicas de CSS:

  • ¿Cuál es la diferencia entre clases e identificadores en CSS?
  • ¿Cuál es la diferencia entre normalizar y anular el CSS?, ¿cuál usarías y por qué?
  • Describa qué son los “floats” y su funcionamiento.
  • Describa el z-index y como se decide el contexto de apilado de elementos.
  • Describa el contexto de formato de bloques (BFC) y como funciona.
  • ¿Cuáles son las técnicas para usar la propiedad clear y cuál funciona para cuál contexto?
  • Explique ¿qué son los sprites en CSS y cómo los implementarías en una página?
  • ¿Cuál es su técnica favorita para reemplazar imágenes y cuando usa cada una?
  • ¿Cómo intentaría resolver problemas de estilo para navegadores específicos?
  • ¿Cuál es su enfoque al desarrollar páginas que dan soporte a navegadores con capacidades limitadas?
  • ¿Qué técnicas o procesos usas?
  • ¿Cuáles son las distintas formas para esconder contenido, pero mantenerlo disponible únicamente para lectores de pantalla?
  • ¿Ha usado algún sistema para cuadrículas (grids) y cuál prefiere?
  • ¿Ha usado o implementado “media queries” o reglas específicas para dispositivos móviles?
  • ¿Está familiarizado con aplicar estilos a SVGs?
  • ¿Cómo optimiza sus páginas para la impresión?
  • ¿Cuáles son algunos de los “trucos” para escribir CSS eficiente?
  • Menciona las ventajas y desventajas de usar preprocesadores de CSS
  • Menciona lo que te agrada y desagrada de los preprocesadores que usas.
  • ¿Cómo implementaría un diseño que usa fuentes que no son web-safe?
  • ¿Puede explicar cómo determina un navegador qué elementos coinciden con un selector de CSS?
  • Describa los pseudo-elementos y discuta sus usos.
  • ¿Puede explicar cómo entiende el box model (modelo de cajas) y como podría hacer que un navegador renderize su esquema usando diferentes modelos de cajas?
  • ¿Qué sucede al usar * {box-sizing: border-box;}. ¿Qué desventajas supone su uso?
  • Por favor enliste todos los valores para la propiedad display que pueda recordar
  • ¿Cuál es la diferencia entre inline y inline-block?
  • ¿Cuál es la diferencia entre las posiciones relative, fixed, absolute y static para un elemento dado?
  • La C en CSS significa cascading (en cascada). ¿Cómo se determina la prioridad al asignar los estilos? ¿Cómo podemos aprovechar ese sistema?
  • ¿Cuáles frameworks de CSS has usado en desarrollo y producción? ¿Cómo los mejoraría?
  • ¿Qué sabe sobre CSS Flexbox y cuáles son sus ventajas?
  • ¿En que difiere el diseño responsivo del diseño adaptativo?
  • ¿Has trabajado con tecnología retina?, ¿qué técnicas usaste?
  • ¿Hay alguna razón por la cual preferirías usar translate() en vez de el posicionamiento absoluto? ¿Alguna razón para hacer lo contrario?

Preguntas específicas de JavaScript:

  • Explique “event delegation”.
  • Explique cómo funciona this en JavaScript.
  • Explique cómo funciona la herencia de prototipos (prototypal inheritance) en JavaScript.
  • ¿Qué opina de AMD en comparación con CommonJS?
  • Explique por qué function foo(){ }(); no funciona como un IIFE.
  • ¿Qué se necesita cambiar para que funcione como una IIFE?
  • ¿Cuál es la diferencia entre variables null, undefined y undeclared?
  • ¿Cómo comprobarías que una variable refiere a alguno de esos valores?
  • ¿Qué es un “closure” y cuando, o por qué usaría uno?
  • ¿Puede hablar de un uso típico para una función anónima?
  • ¿Cómo organiza su código, patrón módulo, herencia clásica?
  • ¿Cuál es la diferencia entre objetos huésped (host objects) y objetos nativos?
  • ¿Cuál es la diferencia entre: function Person(){}, var person = Person() y var person = new Person()?
  • ¿Cuál es la diferencia entre .call y .apply?
  • ¿Puede explicar el uso de Function.prototype.bind?
  • ¿Cuándo usarías document.write()?
  • ¿Cuál es la diferencia entre detección de capacidades, inferencia de capacidades y usar la cadena del user agent?.
  • Explique AJAX con tanto detalle como pueda.
  • Explique cómo funciona JSONP (y cómo no es AJAX realmente)
  • ¿Ha utilizado alguna vez templates en JavaScript?
    • De ser así, ¿qué bibliotecas ha usado?
  • ¿Puede explicar en qué consiste el “hoisting”?
  • ¿Puede hablar sobre “event bubbling”?
  • ¿Cuál es la diferencia entre un “atributo” y una “propiedad”?
  • ¿Por qué es una mala idea extender objetos nativos de JavaScript?
  • ¿Cuál es la diferencia entre el evento “document load” y el evento “document ready"?
  • ¿Cuál es la diferencia entre == y ===?
  • Explique la política de mismo origen (same-origin policy) y sus repercusiones en JavaScript.
  • Haga que este código funcione:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • ¿Por qué reciben el nombre de sentencias ternarias? ¿Qué significa la palabra “ternaria”?
  • ¿Qué es "use strict";? ¿Cuáles son las ventajas y desventajas de usarlo?
  • Haga un ciclo for de 100 iteraciones que imprima “fizz” en los múltiplos de 3, “buzz” en los múltiplos de 5 y “fizzbuzz” en los múltiplos de 3 y 5
  • De manera general, ¿por qué es una buena idea no usar el “ámbito” (scope) global de un sitio web?
  • ¿Por qué usaría el evento load?, ¿usarlo representa alguna ventaja?, ¿conoce alternativas y el por qué usaría dichas alternativas?
  • Explique en qué consiste una aplicación de una sola página y como hacer una que bajo los términos del posicionamiento en los buscadores.
  • ¿Qué tanto sabes acerca de las promesas en javascript? ¿Conoce alternativas a ellas?
  • Mencione las ventajas y desventajas de usar promesas en vez de callbacks.
  • Menciona las ventajas y desventajas de escribir Javascript a través de otro lenguaje que compile y su resultado sea Javascript.
  • ¿Qué herramientas y técnicas usa para depurar código Javascript?
  • ¿Qué código utiliza para iterar sobre propiedades de un objeto y sobre arreglos?
  • Explique la diferencia entre objetos mutables y objetos inmutables.
  • Mencione un ejemplo de un objeto inmutable en javascript.
  • Mencione las ventajas y desventajas de la inmutabilidad.
  • ¿Cómo puede usar la inmutabilidad en su código?
  • Explique la diferencia entre funciones síncronas y asíncronas.
  • ¿Qué es el event loop?
  • ¿Cuál es la diferencia entre la pila de llamadas y la cola de tareas?

Preguntas sobre pruebas de código:

  • Menciona ventajas y desventajas de realizar pruebas en el código
  • ¿Qué herramientas usarías para probar la funcionalidad de tu código?
  • ¿Cuál es la diferencia entre una prueba unitaria y una prueba de funcionalidad?
  • ¿Cuál es el propósito de usar herramientas para verificar los estilos usados en el código?

Preguntas sobre rendimiento:

  • ¿Qué herramientas usarías para detectar un error en el rendimiento de tu código?
  • ¿De qué formas podrías mejorar el rendimiento del scrolling en tu sitio web?
  • Menciona las diferencias entre los términos layout, painting y compositing.

Preguntas sobre conectividad:

  • Tradicionalmente, ¿Por qué es mejor servir los recursos estáticos del sitio desde múltiples dominios?
  • Intenta explicar el proceso desde el momento en el cual ingresas una URL en el navegador hasta que termina de cargar la página en tu pantalla.
  • ¿Cuáles son las diferencias entre Long-polling, websockets y server-sent events?
  • Explique las siguientes cabeceras de respuesta y envío.
  • Expires, Date, Age y If-Modified-
  • Do Not Track
  • Cache-Control
  • Transfer-Encoding
  • Etag
  • X-Frame-Options
  • ¿Qué son las acciones HTTP? explique las acciones HTTP que conozca.

Preguntas de código:

Pregunta: ¿Cuál es el valor de foo?

var foo = 10 + '20';

Pregunta: ¿Cómo harías funcionar esto?

add(2, 5); // 7
add(2)(5); // 7

Pregunta: ¿Cuál es el resultado de la siguiente sentencia?

"i'm a lasagna hog".split("").reverse().join("");

Pregunta: ¿Cuál es el valor de window.foo?

( window.foo || ( window.foo = "bar" ) );

Pregunta: ¿Cuál es el resultado de los dos alerts?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Pregunta: ¿Cuál es el valor de foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Pregunta: ¿Cuál es el valor de foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Pregunta: ¿Qué imprime el siguiente código?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Preguntas divertidas:

  • ¿Qué es lo más genial que ha programado y qué es lo que más le enorgullece de ello?
  • ¿Cuáles son sus partes favoritas de las herramientas de desarrollo que usa?
  • ¿Tiene algún proyecto personal? ¿De qué tipo?
  • ¿Cuál es su funcionalidad favorita de Internet Explorer?
  • ¿Cómo te gusta tu café?

Contribuyentes

Este documento se creó en 2009 como una colaboración de @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed y @iansym.

Ha recibido contribuciones de 100 desarrolladores.

\ No newline at end of file diff --git a/_site/translations/swedish/index.html b/_site/translations/swedish/index.html deleted file mode 100644 index 41491756e..000000000 --- a/_site/translations/swedish/index.html +++ /dev/null @@ -1 +0,0 @@ -Front-end Anställningsfrågor ★ Front-end Job Interview Questions

Front-end Anställningsfrågor

Front-end Anställningsfrågor

Detta arkiv innehåller ett urval av frågor som kan ställas till den arbetssökande. Det är verkligen inte rekommenderat att ställa alla frågor här till samma person (det skulle ta timmar). Att välja ut ett par stycken från listan bör hjälpa dig besluta huruvida den arbetssökande uppfyller dina krav.

Att tänka på: Kom ihåg att många av de här frågorna är öppna och kan leda till intressanta diskussioner som berättar mer om personens kunskaper än vad en sluten fråga skulle.

Innehållsförteckning

  1. Allmänna frågor
  2. HTML-frågor
  3. CSS-frågor
  4. JS-frågor
  5. Nätverksgrågor
  6. Kodfrågor
  7. Roliga frågor

Hjälpa till

  1. Bidragande skribenter
  2. Att hjälpa till
  3. Licens

Allmänna frågor:

  • Vad lärde du dig igår/den här veckan?
  • Vad tycker du är spännande eller intressant med kodning?
  • Berätta om en teknisk utmaning du haft nyligen och hur du löste den.
  • Vilka övervägningar gör du angående gränssnitt, säkerhet, prestanda, SEO, underhållsmässighet och tekniker när du bygger en webbapplikation eller -plats?
  • Berätta lite om den utvecklingsmiljö du helst sitter i.
  • Vilka versionshanteringssystem har du använt?
  • Kan du beskriva ditt arbetsflöde när du skapar en hemsida?
  • Om du har fem olika stilmallar, hur skulle du bäst integrera dem i sajten?
  • Kan du beskriva skillnaden mellan “progressive enhancement” och “graceful degradation”?
  • Hur skulle du optimera en webbplats resurser?
  • Hur många resurser kan en webbläsare ladda från en specifik domän åt gången?
    • Vilka är undantagen?
  • Nämn tre sätt att minska laddningstiden för en webbsida (uppfattad eller faktisk laddningstid).
  • Om du hoppade på ett projekt och de använde tabbar och du mellanslag, vad skulle du då göra?
  • Beskriv hur du skulle göra ett enkelt bildspel.
  • Om du kunde bemästra en teknologi i år, vad skulle det vara?
  • Beskriv varför det är viktigt med standarder och standardiseringsorganisationer.
  • Vad är “Flash of Unstyled Content”? Hur undviker du FOUC?
  • Förklara vad ARIA och skärmläsare är och hur man gör en webbplats tillgänglig.
  • Förklara några av fördelarna och nackdelarna mellan CSS- och JavaScript-animationer.

HTML-frågor:

  • Vad gör en dokumenttyp (doctype)?
  • Vad är skillnaden mellan standardläge och quirksläge?
  • Vad är skillnaden mellan HTML och XHTML?
  • Finns det några problem med att skicka sidor som application/xhtml+xml?
  • Hur skickar du en sida innehållandes flera språk?
  • Vad måste du vara försiktig med när du designar eller utvecklar för flerspråkssidor?
  • Vad är data--attribut bra för?
  • Tänk dig HTML5 som en öppen webbplattform. Vad är byggstenarna i HTML5?
  • Beskriv skillnaden mellan en cookie, sessionStorage och localStorage.
  • Beskriv skillnaden mellan <script>, <script async> och <script defer>.
  • Varför är det generellt en bra idé att lägga CSS-<link>ar mellan <head></head> och JS-<script>ar precis före </body>? Känner du till några undantag?
  • Vad är progressiv rendering?
  • Har du använt dig av några HTML-mallspråk tidigare?

CSS-frågor:

  • Vad är skillnaden mellan klasser och ID:n i CSS?
  • Vad är skillnaden mellan att “nollställa” och att “normalisera” CSS? Vad skulle du välja och varför?
  • Beskriv floats och hur de fungerar.
  • Beskriv z-index och hur stacking context skapas.
  • Beskriv BFC (Block Formatting Context) och hur det fungerar?
  • Vilka olika clearing-tekniker finns det och vilka passar för vilka sammanhang?
  • Förklara CSS-sprites och hur du skulle implementera dem på en sida.
  • Vilka är dina favorittekniker för bildersättning och vilka använder du i vilka situationer?
  • Hur skulle du fixa webbläsarspecifika stilproblem?
  • Hur skickar du sidor till funktionsbegränsade webbläsare?
    • Vilka tekniker/processer använder du?
  • Vilka olika sätt finns det att visuellt dölja element (och bara göra dem tillgängliga för skärmläsare)?
  • Har du någonsin använt ett rutnätsystem, och i sådana fall vilket föredrar du?
  • Har du använt eller implementerat mediafrågor eller mobilspecifika layouter/CSS:er?
  • Har du någon erfarenhet av att styla SVG?
  • Hur optimerar du dina webbplatser för utskrift?
  • Vilka är några av de fallgropar som finns för att skriva effektiv CSS?
  • Vilka är fördelarna/nackdelarna med att använda CSS-preprocessorer?
    • Beskriv vad du gillar och ogillar med de CSS-preprocessorer du använt.
  • Hur skulle du implementera en webbdesign som använder icke-standardiserade typsnitt?
  • Förklara hur en webbläsare bestämmer vilka element som matchar en selektor.
  • Beskriv pseudoelement och vad de används till.
  • Förklara boxmodellen och hur du skulle göra i CSS för att få webbläsaren att rendera din layout i olika boxmodeller.
  • Vad gör * { box-sizing: border-box; }? Vad är dess fördelar?
  • Lista så många värden för display-egenskapen som du kan komma ihåg.
  • Vad är skillnaden mellan inline och inline-block?
  • Vad är skillnaden mellan element som är positionerade med relative, fixed, absolute och static?
  • C:et i CSS står för “Cascading”. Hur bestäms prioritet när stilar sätts (några exempel)? Hur kan du använda det här systemet till din fördel?
  • Vilka CSS-ramverk har du använt lokalt eller i produktion? Hur skulle du förändra/förbättra dem?
  • Har du lekt något med de nya CSS-specifikationerna för Flexbox och Grid?
  • På vilket sätt skiljer sig responsiv design från adaptiv design?
  • Har du någon gång arbetat med retinagrafik? I så fall, när var det och vilka tekniker använde du?
  • Finns det någon anledning till att du skulle vilja använda translate() i stället för absolut positionering och vice-versa? I så fall varför?

JS-frågor:

  • Förklara eventdelegering.
  • Förklara hur this fungerar i JavaScript
  • Förklara hur prototypiskt arv fungerar.
  • AMD eller CommonJS?
  • Förklara varför följande inte fungerar som en IIFE: function foo(){ }();.
    • Vad behöver ändras för att göra den till en fungerande IIFE?
  • Vad är skillnaden mellan en variabel som är: null, undefined eller undeclared?
    • Hur skulle du göra för att kolla efter någon av dessa?
  • Vad är en “closure” och hur/varför vill du använda det?
  • Vad är ett typiskt användningsområde för en anonym funktion?
  • Hur organiserar du din kod? (Modulmönstret, klassiskt arv?)
  • Vad är skillnaden mellan “host objects” och “native objects”?
  • Skillnaden mellan: function Person(){}, var person = Person() och var person = new Person()?
  • Vad är skillnaden mellan .call och .apply?
  • Förklara Function.prototype.bind?
  • När skulle du använda document.write()?
  • Vad är skillnaden mellan “feature detection”, “feature inference”, och att använda UA-strängen?
  • Förklara AJAX så noggrant som möjligt.
  • Förklara hur JSONP fungerar (och varför det egentligen inte är AJAX).
  • Har du någonsin använt “JavaScript templating”?
    • Om så är fallet, vilka bibliotek har du använt?
  • Förklara “hoisting”.
  • Beskriv “event bubbling”.
  • Vad är skillnaden mellan “attribute” och “property”?
  • Varför är det inte bra att utvidga (extend) inbyggda JavaScript-objekt?
  • Skillnaden mellan “document load event” och “document ready event”?
  • Vad är skillnaden mellan == och ===?
  • Förklara “same-origin policy” med hänsyn till JavaScript.
  • Få det här att fungera
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Varför kallas det för “ternary expression”, vad menas med ordet “ternary”?
  • Vad är "use strict";? Vilka är för- och nackdelarna med att använda det?
  • Skapa en for-loop som itererar upp till 100 medan den skriver ut “fizz” vid multiplar av 3, “buzz” vid multiplar av 5 och “fizzbuzz” vid multiplar av 3 och 5.
  • Varför är det generellt sett en bra idé att aldrig röra det globala scopet på en webbsida?
  • Varför skulle man vilja använda något som load-eventet? Har det eventet några nackdelar? Känner du till några alternativ och varför skulle man i så fall vilja använda dem?
  • Förklara vad en single page-app är och hur en sådan kan göras SEO-vänlig.
  • Hur stor erfarenhet har du av Promises och/eller polyfills för dem?
  • Vad är fördelarna och nackdelarna med att använda Promises i stället för callbacks?
  • Nämn några för- och nackdelar med att skriva JavaScript-kod i ett språk som kompilerar till JavaScript.

Testfrågor:

  • Nämn några för- och nackdelar med att testa sin kod.
  • Vilka verktyg skulle du använda för att testa din kods funktionalitet?
  • Vad är skillnaden mellan ett enhetstest och ett integrations-/funktionellt test?
  • Vad är syftet med ett verktyg för lintning av kodstil?

Prestandafrågor:

  • Vilka verktyg skulle du använda för att hitta en prestandabugg i din kod?
  • Nämn några sätt att förbättra din sajts skrollningsprestanda.
  • Beskriv skillnaden mellan “layout”, “painting” och “compositing”.

Nätverksfrågor:

  • Varför har det traditionellt sett varit bättre att servera webbplatsen från flera domäner?
  • Förklara så noggrannt du kan processen från att du skriver in en webbsidas URL till att sidan har laddats färdigt på din skärm.
  • Vad är skillnaderna mellan long-polling, WebSockets och Server-Sent Events?
  • Förklara följande svarshuvuden:
    • Skillnaden mellan Expires, Date, Age och If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Vad är “HTTP actions”? Lista alla “HTTP actions” du känner till och förklara dem.

Kodfrågor

Fråga: Vad är värdet av foo?

var foo = 10 + '20';

Fråga: Hur skulle du få det här att fungera?

add(2, 5); // 7
add(2)(5); // 7

Fråga: Vilket värde returneras från nedanstående?

"i'm a lasagna hog".split("").reverse().join("");

Fråga: Vad är värdet av window.foo?

( window.foo || ( window.foo = "bar" ) );

Fråga: Vad kommer de två alerterna att ropa ut?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Fråga: Vad är värdet av foo.length?

var foo = [];
foo.push(1);
foo.push(2);

Fråga: Vad är värdet av foo.x?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Roliga frågor:

  • Nämn en cool sak du kodat nyligen.
  • Nämn några delar som du gillar hos de utvecklarverktyg du använder?
  • Har du några egna projekt som du sköter om? I sådana fall vilken typ av projekt?
  • Vilken är din favoritfunktion i Internet Explorer?
  • Hur gillar du ditt kaffe?

Bidragande skribenter:

Det här dokumentet startades 2009 som ett samarbete mellan @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed och @iansym.

Det har sedan dess fått bidrag från över 100 utvecklare.

\ No newline at end of file diff --git a/_site/translations/turkish/index.html b/_site/translations/turkish/index.html deleted file mode 100644 index a93c9b276..000000000 --- a/_site/translations/turkish/index.html +++ /dev/null @@ -1 +0,0 @@ -Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları ★ Front-end Job Interview Questions

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları

Burada ön yüz yazılım -ya da front-end- iş başvurularınızda karşınıza çıkabilecek sorular yer almaktadır. Her sorunun iş başvurularınızda karşınıza çıkması garanti değil ancak ihtimali var. Ayrıca buradaki sorular sadece iş başvurusu yapanlar için değil, bu branşta kendini geliştirmeyi düşünenler için de kaynak niteliğindedir.

Not: Buradaki birçok sorunun ucunun açık olduğunu, bu sebeple vereceğiniz cevaba göre ilginç tartışmalara yol açabileceğini unutmayın.

İçindekiler

  1. Genel Sorular
  2. HTML Soruları
  3. CSS Soruları
  4. JS Soruları
  5. Test Soruları
  6. Performans Soruları
  7. Ağ Soruları
  8. Kodlama Soruları
  9. Eğlenceli Sorular

Dahil Olmak İçin

  1. Katkıda bulunanlar
  2. Nasıl katkıda bulunabilirim?
  3. Lisans

Genel Sorular:

  • Dün -ya da bu hafta- neler öğrendin?
  • Kod yazmanda seni cezbeden şey ne?
  • Deneyimlediğin son teknik meydan okuma / problem neydi ve onu nasıl çözdün?
  • Website yada web application hazırlarken UI, güvenlik, performans, SEO, sürdürülebilirlik veya teknoloji için nelere dikkat edersin?
  • Bize biraz geliştirme ortamından bahset. -İşletim Sistemi, Web Tarayıcı, Araçlar, Kod Editörü/IDE, vb.-
  • Haangi version kontrol sistemlerine aşinasın?
  • Web sayfasını oluştururken hangi adımları takip edersin?
  • Eğer 5 farklı stil dosyası varsa, bunları siteye entegre etmenin en iyi yolu nedir?
  • “Aşamalı geliştirme (progressive enhancement)” ile “kontrollü azalma (graceful degradation)” arasında ne fark vardır?
  • Web sitesindeki dosyaları nasıl optimize edersin?
  • Belli bir zamanda, tek bir alanadı üzerinden web tarayıcısı ne kadar kaynak indirebilir?
    • İstisnalar nelerdir?
  • Sayfa yüklenme hızını azaltmanın yollarından 3 tanesini söyleyebilir misin?
  • Yeni dahil olduğunuz bir projede, kodlama için Tab boşluk kullanılıyor ama siz Space ile boşluk bırakmayı tercih ediyorsunuz. Bu durumda ne yaparsınız?
  • Basit bir slayt/galeri sayfası oluşturun
  • Eğer bu yıl bir teknolojide en iyi olmak isteseydin, hangisini seçerdin?
  • Yazılım standartlarının öneminden bahseder misin?
  • FOUC nedir? FOUC’a nasıl engel olabilirsin?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • CSS animasyonlarının JavaScript animasyonlara göre artılarını ve eksiklerini açıklayabilir misin?
  • CORS ne anlama geliyor ve nasıl bir problemi çözüyor?

HTML Soruları:

  • doctypeın işlevi nedir?
  • Full standards mode, almost standards mode ve quirks mode arasındaki farklar nelerdir?
  • HTML ve XHTML arasındaki farkler nelerdir?
  • Sayfaların application/xhtml+xml olarak çalıştırılmasında herhangi bir sakınca var mıdır?
  • Sayfa içeriği çoklu dil olan siteyi nasıl sunabilirsin?
  • Çoklu dil olan sayfalarda tasarım veya kodlama olarak nelerden kaçılmalısın?
  • data- özelliği ne faydalar sağlar?
  • HTML5’i ‘open web platform’ olarak düşün. HTML5’in yapı taşları/temelleri nelerdir?
  • cookie, sessionStorage ve localStorage arasındaki farkları açıklayabilir misin?
  • <script>, <script async> ve <script defer> arasındaki farkları açıklayabilir misin?
  • CSS <link>lerin <head></head> arasında ve JS <script>lerinin </body> etiketinden önce olması niye genelde iyi bir fikirdir? Herhangi bir istisna biliyor musun?
  • Progressive rendering nedir?
  • Önceden farklı bir HTML templating dili kullandın mı?

CSS Soruları:

  • CSS’te class ve ID arasındaki farklar nelerdir?
  • “Resetting” ve “normalizing” CSS’ler arasındaki farklar nelerdir? Hangisini kullanmamız gerekir, neden?
  • Floats özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • z-index özelliğinin ne olduğunu ve nasıl çalıştığından bahsedin.
  • BFC (Block Formatting Context)'nin ne olduğunu ve nasıl çalıştığından bahsedin.
  • Çeşitli ‘clearing’ teknikleri nelerdir ve hangi teknik hangi içerik için uygundur?
  • CSS Sprites özelliğini ve sayfanıza veya web uygulamanıza nasıl entegre edeceğinizi anlatın.
  • En favori imaj yerini değiştirme (image replacement) tekniği sizce hangisidir ve ne gibi durumlarda kullanırsınız?
  • Browser tabanlı (browser-specific) stil problemlerini nasıl çözersiniz?
  • Özellik kısıtlamalı (feature-constrained) tarayıcılar için websitenizi nasıl hazırlarsınız?
    • Hangi teknikleri/işlemleri kullanırsınız?
  • İçerikleri görsel olarak gizlemek hangi yollar bulunmakta? (İçerik sadece ekran okuyucular (screen readers) için gözükecek.)
  • Şimdiye kadar grid sistemi kullandınız mı? Eğer kullandıysanız, ne tercih edersiniz?
  • Şimdiye kadar ‘media queries’ veya mobil bazlı CSS/tasarım kullanıdınız mı?
  • SVG stillendirme hakkında deneyiminiz var mı?
  • Yazdırmak için (print) sitenizi ne şekilde en uygun hale getirdiniz?
  • Kaliteli CSS yazmak için ‘işte bu!’ dediğiniz şeyler nelerdir?
  • CSS 'preprocessor’ler kullanmanın artı-eksileri nelerdir? (SASS, Compass, Stylus, LESS)
    • Şimdiye kadar kullandıklarınızda en çok beğendiğiniz/beğenmediğiniz özellikler nelerdi?
  • Standart fontları kullanmayan web tasarımlarını nasıl sayfanıze entegre ediyorsunuz?
  • Tarayıcılar HTML elementlerin CSS seçicilerle (selector) eşleştiğini nasıl algılıyor, açıklar mısınız?
  • Sözde elementleri (pseudo-elements) ve ne için kullandıklarını açıklayın.
  • ‘box model’ konusunu bildiğiniz kadar açıklayın ve tasarımınızı farklı bir ‘box model’ ile göstermek istediğinizde CSS tarafında tarayıcıya ne belirtmeniz gerekir?
  • * { box-sizing: border-box; } ne yapar? Avantajları nelerdir?
  • ‘Display’ özelliğinin aldığı değerleri hatırladığınız kadar sayın.
  • ‘inline’ ile ‘inline-block’ arasındaki farklılıklar nelerdir?
  • ‘relative’, ‘fixed’, ‘absolute’ ve ‘static’ konumlandırılmış elementlerin farkı nedir?
  • CSS kelimesindeki C harfi "Cascading"in (basamaklı) kısaltmasıdır. Yönlendirilen stillerde öncelikler nasıl belirlenir (birkaç örnekle birlikte)? Bunu nasıl kendi avantajınıza göre kullanabilirsiniz?
  • Kullanmış olduğunuz, daha tanınmayan - lokal CSS çatılar (frameworks) var mı? Bunları nasıl değiştirmek / geliştirmek isterdiniz?
  • Yeni CSS Flebox veya Grid özellikleriyle deneyip bir şeyler yaptınız mı?
  • Responsive tasarımın adaptive tasarımdan farkı nedir?
  • Hiç retina grafiklerle çalıştınız mı? Eğer çalıştıysanız ne zaman ve hangi teknikleri kullandınız?
  • translate() yerine absolute positioning, veya tam tersini kullanmak için bir sebebiniz olabilir mi? Ve neden?

JS Soruları:

  • ‘Event delegation’ özelliğini anlatın.
  • JavaScript’te this nasıl çalışıyor?
  • ‘prototypal inheritance’ nasıl çalışır?
  • AMD ile CommonJS’in farkı nelerdir?
  • IIFE olarak neden bu fonksiyonun çalışmadığını açıklayın: function foo(){ }();.
    • IIFE olarak çalışması için ne yapmak gerekiyor?
  • null, undefined ve undeclared arasında ne farklar var?
    • Bu değerleri kontrol ederken neler yapmalıyız?
  • ‘Closure’ nedir, ve nasıl/neden kullanırız?
  • Anonim fonksiyonları kullanma durumları nelerdir?
  • Kodunuzu nasıl organize edersiniz? (module pattern, classical inheritance?)
  • host objects ve native objects arasında ne fark var?
  • function Person(){}, var person = Person(), ve var person = new Person() arasındaki farklar nelerdir?
  • .call ve .apply arasındaki fark nedir?
  • Function.prototype.bind özelliğinin ne olduğunu açıklayınız.
  • undefined ve null arasındaki fark nedir?
  • document.write() fonksiyonunu ne zaman kullanmalıyız?
  • Özellik tespiti (feature detection), özellik çıkarım (feature inference) ve UA string kullanımı arasındaki farklar nelerdir?
  • AJAX’ı olabildiğince detaylı şekilde açıklayın.
  • Ajax kullanmanın avantajları ve dezavantajları nelerdir?
  • JSONP nasıl çalışır? (ve neden tam olarak AJAX olmadığını da açıklayınız.)
  • JavaScript ‘template’ yapısını hiç kullandınız mı?
    • Eğer kullandıysanız, Hangi 'library’leri kullandınız? (Mustache.js, Handlebars, vb.)
  • “Hoisting” özelliğini açıklayın.
  • ‘Event bubbling’ özelliğini açıklayın.
  • “Attribute” ve “property” arasındaki farklar nelerdir?
  • JavaScript objeleri genişletmek neden iyi fikir değildir?
  • “document load event” ile “document DOMContentLoaded event” arasındaki farklar nelerdir?
  • == ve === arasında ne fark vardır?
  • JavaScript için ‘same-origin policy’ konusunu açıklayın.
  • Çalışacak şekilde kodu yazın:
[1,2,3,4,5].duplicate(); // [1,2,3,4,5,1,2,3,4,5]
  • Neden ‘Ternary expression’ olarak çağrılmaktadır? “Ternary” kelimesi neyi belirtmektedir?
  • "use strict"; nedir? Bunu kullanmanın artı/eksileri nelerdir?
  • Create a for loop that iterates up to 100 while outputting “fizz” at multiples of 3, “buzz” at multiples of 5 and “fizzbuzz” at multiples of 3 and 5
  • Websitenin genel skopundan ayrılmak ve dokunmamak neden genelde iyi bir fikirdir?
  • Neden load gibi bir event kullanırsınız? Bunun dezavantajları var mı? Bildiğiniz alternatifleri var mı ve neden onları kullanıyorsunuz?
  • Tek sayfa uygulama (single page app) nedir ve nasıl arama motoru uyumlu (SEO-friendly) yapılır, açıklayın.
  • “Promises” ve/veya onun polyfilleriyle alakalı deneyimler nedir?
  • "Callback"ler yerine “Promises” kullanmanın artıları ve eksileri nelerdir?
  • JavaScript’in derlendiği bir dilde JavaScript yazmanın avantajları ve dezavantajlarından bazıları nelerdir?
  • JavaScript kodunuzda hata ayıklarken (debugging) kullandığınız teknikler ve araçlar nelerdir?
  • What language constructions do you use for iterating over object properties and array items?
  • Kesilebilir (mutable) ve değişmez (immutable) nesneler arasındaki farkları açıklayın.
    • JavaScript’te değişmez (immutable) objeye bir örnek veriniz.
    • Değişmezliğin (immutability) artıları ve eksileri nedir?
    • Değişmezliği (immutability) kendi kodunuzda nasıl başarırsınız?
  • Senkron ve asenkron fonksiyonlar arasındaki farkları açıklayın.
  • Olay döngüsü (event loop) nedir?
    • Çağrı yığını (call stack) ve görev kuyruğu (task queue) arasındaki fark nedir?
  • foo, function foo() {} ve var foo = function() {} arasındaki farkları açıklayın.

Test Soruları:

  • Kodunuzu test etmenin avantajları ve dezavantajları nelerdir?
  • Kodunuzun işlevselliğini sınamak için hangi araçları kullanıyorsunuz?
  • Ünite testi (unit test) ile fonksiyonel/entgrasyon testi arasındaki fark nedir?
  • Kodu lint etme aracının (code style linting tool) kullanım amacı nedir?

Performans Soruları:

  • Kodunuzda performans problemleri bulmak için hangi araçları kullanıyorsunuz?
  • Websitenizin kaydırma (scrolling) performansını geliştirmenin yollarından bazıları nelerdir?
  • “Layout”, “painting” ve “compositing” terimleri arasındaki farkları açıklayınız.

Ağ Soruları:

  • Geleneksel olarak, neden site dosyalarını birden fazla domainden sunmak daha iyidir?
  • Web adresinin ilk adres girilirken sayfanın tam olarak yüklenmesine kadar ki işlemleri açıklayabilir misin?
  • “Long-Polling”, “Websockets” ve “Server-Sent Events” terimleri arasındaki farklar nelerdir?
  • Şu “request” ve "response header"ları açıklayın:
    • Diff. between Expires, Date, Age and If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • HTTP metodları nelerdir? Bildiklerinizi listeleyin ve açıklayın.

Kodlama Soruları:

Soru:foo'nun değeri nedir?

var foo = 10 + '20';

Soru: Bu işi nasıl yaparsınız?

add(2, 5); // 7
add(2)(5); // 7

Soru: Bu ifadeden dönen sonuç nedir?

"i'm a lasagna hog".split("").reverse().join("");

Question: window.foo değeri nedir?

( window.foo || ( window.foo = "bar" ) );

Question: Aşağıdaki iki "alert"in çıktısı nedir?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Soru: foo.length değeri nedir?

var foo = [];
foo.push(1);
foo.push(2);

Soru: foo.x değeri nedir?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Soru: Bu kodun çıktısı nedir?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Eğlenceli Sorular:

  • Şimdiye kadar içinde bulunduğun en havalı proje neydi?
  • Kullandığınız geliştirici araçları arasında, sevdikleriniz nelerdir?
  • Önyüz (front-end) komünitesinde etkilendiklerin kimler?
  • Evcil hayvanlarla alakalı herhangi bir projen var mı? Varsa ne tür bir proje?
  • Internet Explorer’ın senin için favori özelliği nedir?
  • Kahveni nasıl seversin?

Katılımcılar:

Bu proje 2009 yılında bu katılımcılarla başladı: @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed and @iansym.

Bu projenin bakımı şu anda aşağıdaki kişiler tarafından yapılmaktadır:

O zamandan beri bu inanılmaz derecede harika insanlar sayesinde etkin durumda.

İlham mı geldi? Katkı sağlamak için Katılım rehberimizi inceleyin!

\ No newline at end of file diff --git a/_site/translations/ukrainian/index.html b/_site/translations/ukrainian/index.html deleted file mode 100644 index 0cde5a27a..000000000 --- a/_site/translations/ukrainian/index.html +++ /dev/null @@ -1 +0,0 @@ -Питання кандидату на посаду front-end розробника ★ Front-end Job Interview Questions

Питання кандидату на посаду front-end розробника

Питання кандидату на посаду front-end розробника

Примітка: Цей репозиторій містить підбірку питань, які можуть бути використані на співбесідах на посаду front-end розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить).
Також, майте на увазі, що багато питань не потребують однозначної короткої відповіді, а лише допомагають завести бесіду на ту чи іншу тему (даючи змогу кандидату показати себе в усій красі).

Зміст

  1. Первинні автори
  2. Загальні запитання
  3. Запитання по HTML
  4. Запитання по JavaScript
  5. Приклади коду на JavaScript
  6. Запитання по jQuery
  7. Запитання по CSS
  8. “Світська бесіда”

Первинні автори:

Загальні запитання:

  • Чи користуєтесь Ви Твіттером?
    • Якщо так, то хто присутній в Вашій стрічці?
  • Кого зі світових front-end розробників Ви знаєте?
    • А українських чи російських front-end’щиків?
  • Чи є у Вас аккаунт на GitHub?
    • Якщо так, то за якими цікавими проектами Ви стежите?
  • Які блоги Ви читаєте?
  • Які системи контролю версій Вам доводилось використовувати?
  • Розкажіть про своє середовище розробки (ОС, редактор, браузер(и), інші інструменти)
  • Опишіть послідовність Ваших дій, коли ви створюєте нову Web-сторінку
  • Чи можете ви пояснити у чому різниця між progressive enhancement і graceful degradation?
    • Бонус, якщо кандидат також скаже про feature detection (визначення можливостей браузера)
  • Поясніть, що означає поняття “Семантична розмітка”
  • Який Ваш основний браузер для розробки і якими інструментами в ньому Ви користуєтесь?
  • Як можна оптимізувати завантаження зовнішніх ресурсів на сторінці?
    • Комбінація із потенційних рішень:
      • Конкатенація
      • Мініфікація
      • Використання CDN
      • Кешування
      • тощо
  • Яка перевага в підвантаженні із зовнішніх ресурсів з декількох доменів?
    • Скільки ресурсів одночасно браузер може завантажувати з одного домена?
  • Назвіть три засоби зменшення часу завантаження сторінки (сприйманого або реального)
  • Якщо Ви прийшли на проект, де для форматуровання використовується табуляція, а Ви звикли використовувати пробіли, як Ви вчинете?
    • Запропонуєте використовувати EditorConfig (http://editorconfig.org)
    • Залишитеся вірним своїм звичкам
    • Виконаєте команду :retab!
  • Чи користуєтеся Ви засобами для прискорення написання коду (сніппети, Emmet)?
  • Чи знайомі Ви зі шаблонізаторами (Smarty, HAML, т.д.)
  • Реалізуйте примітивне слайдшоу
    • Бонус, якщо Ви зробите це без використання JS
  • Які інструменти Ви використовуєте для тестування продуктивності коду?
  • Якщо б у Вас була можливість освоїти нову технологію в цьому році, що б це було?
  • Поясніть важливість стандартів і комітетів по стандартам
  • Що таке FOUC (Flash Of Unstyled Content)? Як його уникнути?

Запитання по HTML:

  • Для чого потрібен doctype і скільки різновидів Ви можете назвати?
  • В чому різниця між standards mode і quirks mode?
  • Які обмеження накладають стандарти XHTML?
    • Чи можуть виникнути проблеми при подачі сторінок із типом application/xhtml+xml?
  • Як слід оформляти сторінку, на якій контент може бути на різних мовах?
    • Що потрібно мати на увазі при розробці багатомовних сайтів?
  • Чи можна використовувати синтаксис XHTML в HTML5?
  • Як використовувати XML в HTML5?
  • Чим корисні data- атрибути?
  • Які box-моделі є в HTML4 і чи є відмінності в HTML5?
  • Якщо розглядати HTML5 як відкриту web-платформу: на чому вона базується, з яких компонентів складається?
  • Поясніть різницю між cookies, sessionStorage і localStorage.
  • Чи знайомі з підводними каменями верстки поштових шаблонів?
  • Яка різниця між GET іPOST?

Запитання по JavaScript:

  • Якими js-бібліотеками Ви користувалися?
  • Ви коли-небудь заглядали в вихідний код бібліотек / фреймворків, якими користувалися?
  • Чим JavaScript відрізняється від Java?
  • Що-таке хеш-таблиця?
  • Що таке невизначені (undefined) і неоголошені (undeclared) змінні?
  • Що таке замикання і як / для чого його використовують?
    • На Вашу думку, як слід їх використовувати?
  • Де зазвичай використовуються анонімні функції?
  • Поясніть “JavaScript module pattern” і де він (патерн) застосовується
    • Бонус, якщо згадана чистота глобального простору імен
    • Що, якщо Ваш модуль не укладено в простір імен?
  • Як Ви організуєте свій код? (module pattern, наслідування)
  • У чому різниця між host-об’єктами і нативними об’єктами?
  • У чому різниця між останніми двома рядками:
function Person(){}
var person = Person()
var person = new Person()
  • У чому різниця між .call і.apply?
  • Що робить і для чого потрібен метод Function.prototype.bind?
  • Коли Ви оптимізуєте свій код?
  • Поясніть, як працює наслідування в JavaScript?
  • Де досі використовується document.write ()?
    • У більшості згенерованих банерів, хоча так робити не рекомендується
  • У чому різниця між feature detection (визначення можливостей браузера), feature inference (припущення можливостей) і аналізом рядку user-agent?
  • Розкажіть про AJAX якомога детальніше
  • Поясніть, як працює JSONP (і чому це не справжній AJAX)
  • Чи використовували Ви коли-небудь шаблонізації на JavaScript?
    • Якщо так, які бібліотеки використовували? (Mustache.js, Handlebars etc.)
  • Поясніть, що таке “hoisting”
  • Поясніть event bubbling
  • У чому різниця між “атрибутом” (attribute) і “властивістю” (property)?
  • Чому не слід розширювати нативні JavaScript об’єкти?
  • Коли слід розширювати нативні JavaScript об’єкти?
  • У чому різниця між подіями document load і document ready?
  • У чому різниця між == і ===?
  • Як отримати параметри з URL’а поточного вікна?
  • Поясніть same-origin policy в контексті JavaScript
  • Розкажіть про event delegation
  • Які Ви знаєте патерни організації наслідування в JavaScript?
  • Зробіть так, щоб цей код працював:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
  • Опишіть принцип мемоізаціі (уникнення повторних обчислень) в JavaScript
  • Чому тернарний оператор так називається?
  • Що таке тернарність функції?
  • Що робить рядок " use strict ";? Які переваги та недоліки від її використання?

Приклади на JavaScript

~~3.14

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: 3

"i'm a lasagna hog".split("").reverse().join("");

Питання: Яке значення повертає цей фрагмент коду?
Відповідь: "goh angasal a m’i"

( window.foo || ( window.foo = "bar" ) );

Питання: Чому дорівнює window.foo?
Відповідь: “bar” (тільки якщо вираз window.foo був хибним, інакше змінна збереже своє початкове значення),

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Питання: Що покажуть ці два alert?
Відповідь: “Hello World” и ReferenceError: bar is not defined

var foo = [];
foo.push(1);
foo.push(2);

Питання: Чому дорівнює foo.length?
Відповідь: 2

var foo = {};
foo.bar = 'hello';

Питання: Чому дорівнює foo.length?
Відповідь: undefined

Запитання по jQuery:

  • Розкажіть про “chaining”.
  • Розкажіть про “deferreds”.
  • Які Ви знаєте прийоми оптимізації коду, що використовує jQuery?
  • Що робить .end()?
  • Як додати простір імен до обробника подій? Для чого це потрібно?
  • Назвіть 4 різних види аргументів, які приймає функція jQuery()?
    • Селектор (рядок), HTML (рядок), Callback (функція), HTMLElement, об’єкт, масив, масив елементів, об’єкт jQuery тощо.
  • Що таке черга ефектів (fx queue)?
  • В чому різниця між .get(), [], і .eq()?
  • В чому різниця між .bind(), .live(), і .delegate()?
  • В чому різниця між $ і $.fn? Що таке $.fn взагалі?
  • Оптимізуйте даний селектор:
$(".foo div#bar:eq(0)")

Запитання по CSS:

  • Що таке “reset” CSS і для чого він потрібен?
  • Поясніть, що таке плаваючі елементи (floats) і як вони працюють?
  • Які ви знаєте методи заборони обтікання (clearing) і де які застосовуються?
  • Що таке CSS спрайт? Як вони реалізуються на сторінці або сайті?
  • Які Ваші улюблені методи підміни тексту картинкою (image replacement) і коли Ви їх використовуєте?
  • CSS property hacks, умовне підключення .css файлів…
  • Як Ви забезпечуєте відображення сторінок в старих / обмежених браузерах?
    • Які прийоми / процеси Ви при цьому використовуєте?
  • Якими способами можна візуально приховати елемент (залишивши його доступним для екранного диктора, екранного зчитувача)?
  • Ви коли-небудь використовували сіткову верстку (grid system, grid design)? Якщо так, яка Ваша улюблена?
  • Чи доводилося Вам використовувати або реалізовувати media queries або верстку під мобільні пристрої?
  • Чи доводилося Вам стилізувати SVG?
  • Як оптимізувати сторінки для друку?
  • Які є підводні камені в оптимізації продуктивності CSS?
  • Ви використовуєте CSS препроцесори? (SASS, Compass, Bourbon, Stylus, LESS)
    • Якщо так, розкажіть, що Вам в них подобається і не подобається?
  • Як Ви зверстаєте макет, який використовує нестандартні шрифти?
    • Webfonts (сервіси на кшталт Google Webfonts, Typekit, Fontsquirrel etc.)
  • Розкажіть, як браузер визначає, на які елементи накладати CSS стилі?
  • Чи доводилося стикатися з Retina-дисплеями?
  • Чи чули про систему БЕМ (Блок-Елемент-Модифікатор)?
    • Якщо так, то в чому її суть? Розкажіть про систему нотифікації селектор.

“Світська бесіда”:

  • Найкрутіше, що Ви коли небудь робили і чим пишаєтесь?
  • Чи знаєте Ви секретний жест HTML5-банди?
  • (неперекладаємий гумор) Are you now, or have you ever been, on a boat.
  • Що Вам найбільше подобаються у Ваших інструментах розробника?
  • У Вас є якісь особисті проекти?
  • Візьміть аркуш паперу і напишіть в стовпчик букви A B C D E. Тепер відсортуйте стовпчик в алфавітному порядку за спаданням, не написавши жодного рядка коду.
    • Засічіть, через скільки часу кандидат переверне аркуш
  • Пірат або ніндзя?
    • Бонус за комбінацію. Аргументовану. +2 за зомбі-пірат-ніндзя-мавпу
  • Чим би Ви займалися, якщо не Web-розробкою?
  • Яка Ваша улюблена “фішка” Internet Explorer?
  • Закінчіть речення: Brendan Eich та Doug Crockford є __________ мови JavaScript.
  • jQuery: хороша бібліотека або велика бібліотека? Тема для дискусії…
\ No newline at end of file diff --git a/_site/translations/vietnamese/index.html b/_site/translations/vietnamese/index.html deleted file mode 100644 index 9ef13e2aa..000000000 --- a/_site/translations/vietnamese/index.html +++ /dev/null @@ -1 +0,0 @@ -Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end ★ Front-end Job Interview Questions

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end

Tập tin này chứa một số câu hỏi phỏng vấn lập trình viên front-end, có thể được sử dụng khi kiểm tra các ứng viên tiềm năng. Không khuyến khích sử dụng tất cả các câu hỏi ở đây trên cùng một ứng cử viên (sẽ mất hàng giờ đồng hồ). Chọn một vài mục từ danh sách này sẽ giúp bạn kiểm tra những kỹ năng mà bạn yêu cầu ở ứng viên đó.

Lưu ý: Hãy nhớ rằng nhiều câu trong đây là những câu hỏi kết thúc mở và có thể dẫn đến vài cuộc thảo luận thú vị cung cấp cho bạn nhiều thông tin về khả năng của một người hơn là một câu trả lời thẳng thắn.

Mục lục

  1. Các câu hỏi chung
  2. Các câu hỏi về HTML
  3. Các câu hỏi về CSS
  4. Các câu hỏi về JavaScript
  5. Các câu hỏi về Kiểm thử (Testing)
  6. Các câu hỏi về Hiệu suất (Performance)
  7. Các câu hỏi về Mạng (Network)
  8. Các câu hỏi về việc viết code
  9. Các câu hỏi vui

Tham gia đóng góp

  1. Những người đóng góp
  2. Làm sao để đóng góp
  3. Giấy phép

Các câu hỏi chung:

  • Bạn đã học được gì trong ngày hôm qua/tuần này??
  • Điều gì về lập trình làm bạn hứng thú?
  • Một thử thách về mặt kĩ thuật bạn đã trải qua gần đây là gì và bạn đã giải quyết nó như thế nào?
  • Bạn cân nhắc những Giao diện người dùng (UI), Vấn đề bảo mật (Security), Hiệu suất (Performance), Khả năng tối ưu cho các bộ máy tìm kiếm (SEO), Khả năng bảo trì (Maintainability) hay Công nghệ (Technology) nào khi xây dựng một ứng dụng/trang web?
  • Hãy nói về môi trường lập trình mà bạn muốn.
  • Những hệ thống quản lý phiên bản (version control systems) nào mà bạn đã sử dụng và cảm thấy quen thuộc?
  • Bạn có thể trình bày mạch làm việc (workflow) của bạn khi bạn tạo một trang web không?
  • Nếu bạn có 5 stylesheet khác nhau, bạn sẽ tích hợp chúng vào trang như thế nào là tốt nhất?
  • Bạn có thể trình bày sự khác nhau giữa progressive enhancement và graceful degradation không?
  • Bạn sẽ tối ưu các tài nguyên (assets/resources) của một website như thế nào?
  • Một trình duyệt sẽ tải bao nhiêu tài nguyên cùng một lúc từ một tên miền (domain) cho trước?
    • Các exception là gì?
  • Nêu 3 cách để giảm tải trang web (perceived hoặc thời gian tải thực tế (actual load time)).
  • Nếu bạn tham gia vào một dự án và họ xài nút Tab trong khi bạn sử dụng nút dấu cách (spaces), bạn sẽ làm gì?
  • Trình bày cách bạn sẽ làm một trang slideshow đơn giản.
  • Nếu bạn có thể chuyên sâu về một công nghệ (technology) trong năm nay thì nó sẽ là công nghệ gì?
  • Giải thích tầm quan trọng của các standards và standards bodies.
  • Flash of Unstyled Content là gì? Bạn tránh FOUC như thế nào?
  • Giải thích ARIA và screenreaders là gì, và làm thế nào để làm cho một trang web có thể truy cập được.
  • Giải thích một vài ưu và khuyết điểm của CSS animations so với JavaScript animations.
  • CORS là từ viết tắt của cái gì và nó đề cập đến vấn đề nào?

Các câu hỏi về HTML:

  • Một doctype làm cái gì?
  • Sự khác nhau giữa chế độ full standards, chế độ almost standards và chế độ quirks?
  • Sự khác nhau giữa HTML và XHTML là gì?
  • Có vấn đề nào không khi cung cấp (serving) các trang theo kiểu application/xhtml+xml?
  • Bạn cung cấp một trang web có nội dung được viết bằng nhiều ngôn ngữ như thế nào?
  • Bạn phải cảnh giác những điều gì khi thiết kế hoặc phát triển các trang web đa ngôn ngữ?
  • Những thuộc tính data- có lợi cho cái gì?
  • Hãy xem HTML5 như một nền tảng web mở (open web platform). Những building blocks của HTML5 là gì?
  • Trình bày sự khác nhau giữa một cookie, sessionStoragelocalStorage.
  • Trình bày sự khác nhau giữa <script>, <script async><script defer>.
  • Tại sao việc đặt các thẻ (tag) <link> CSS giữa 2 thẻ <head></head> và các thẻ <script> JS ngay trước thẻ </body> về cơ bản là một ý tưởng tốt? Bạn có biết những trường hợp ngoại lệ nào khác không?
  • Progressive rendering là gì?
  • Tại sao bạn sẽ sử dụng thuộc tính srcset trong 1 tag img? Giải thích quá trình mà trình duyệt sẽ sử dụng khi phân tích nội dung của thuộc tính này.
  • Trước đây bạn đã bao giờ sử dụng những ngôn ngữ template HTML nào khác chưa?

Các câu hỏi về CSS:

  • Điểm khác biệt giữa class và ID trong CSS là gì?
  • Sự khác nhau giữa “resetting” và “normalizing” CSS là gì? Bạn sẽ chọn cái nào, và tại sao?
  • Trình bày về Floats và cách chúng hoạt động.
  • Trình bày về z-index và làm thế nào để nội dung stack với nhau được định hình.
  • Trình bày về BFC (Block Formatting Context) và cách nó hoạt động.
  • Các kĩ thuật clearing khác nhau là những kĩ thuật nào và phù hợp với hoàn cảnh nào?
  • Giải thích về CSS sprites, và làm thế nào để bạn thực hiện chúng trên một trang web.
  • Những kĩ thuật thay thế hình ảnh nào mà bạn thích và bạn sử dụng từng kĩ thuật đó khi nào?
  • Bạn sẽ tiếp cận như thế nào để khắc phục các vấn đề về trình bày trên một trình duyệt cụ thể?
  • Bạn sẽ cung cấp các trang của bạn trên các trình duyệt hạn chế tính năng như thế nào?
    • Bạn sẽ sử dụng kĩ thuật hay quy trình nào?
  • Những cách khác nhau nào để ẩn giấu 1 element một cách trực quan (và làm cho chúng chỉ hiển thị với người đọc qua màn hình)?
  • Bạn đã bao giờ sử dụng một hệ thống grid chưa, và nếu có, bạn thích cái nào hơn?
  • Bạn đã bao giờ sử dụng các media queries hay các layout/CSS cụ thể cho mobile chưa?
  • Bạn có quen với việc trình bày/tạo dáng cho SVG?
  • Bạn tối ưu các trang web cho việc in ấn như thế nào?
  • Một vài điểm kiểu “A đây rồi” trong việc viết CSS hiệu quả?
  • Các ưu/khuyết điểm của việc sử dụng các CSS preprocessors?
    • Trình bày những điểm bạn thích và không thích về các CSS preprocessors mà bạn đã sử dụng.
  • Bạn sẽ thực hiện thách thức trong các thiết kế web có sử dụng các font không phải tiêu chuẩn (non-standard fonts) như thế nào?
  • Giải thích cách mà một trình duyệt quyết định những element nào tương ứng với một CSS selector.
  • Trình bày về các pseudo-elements và thảo luận xem chúng dùng để làm gì.
  • Giải thích những hiểu biết của bạn về box model và làm thế nào bạn báo với trình duyệt trong CSS để render layout của bạn trong các box models khác nhau.
  • Đoạn code này * { box-sizing: border-box; } sẽ làm điều gì? Những ưu điểm của nó là gì?
  • Liệt kê các giá trị của thuộc tính display mà bạn có thể nhớ.
  • Sự khác nhau giữa inline và inline-block là gì?
  • Sự khác nhau giữa một thành phần có thuộc tính position với giá trị: relative, fixed, absolute, hoặc có vị trí tĩnh (statically positioned element)?
  • Chữ cái ‘C’ trong CSS là viết tắt của từ Cascading. Mức độ ưu tiên được xác định trong việc gán style như thế nào (cho vài ví dụ)? Bạn có thể tận dụng hệ thống này như thế nào?
  • Những framework CSS nào bạn đã sử dụng trên máy của bạn, hoặc trong sản phẩm nào đó? Bạn sẽ thay đổi/cải tiến chúng như thế nào?
  • Bạn có bao giờ sử dụng CSS Flexbox hay Grid chưa?
  • Responsive design khác adaptive design như thế nào?
  • Bạn có bao giờ làm việc với các thiết bị màn hình retina chưa? Nếu có, bạn đã sử dụng khi nào và dùng những kĩ thuật nào?
  • Có những lý do nào bạn muốn sử dụng translate() hơn thay vì absolute positioning không, hoặc ngược lại? Và tại sao?

Các câu hỏi về JavaScript:

  • Giải thích về event delegation
  • Giải thích cách mà this hoạt động trong JavaScript
  • Giải thích cách mà prototypal inheritance hoạt động
  • Bạn nghĩ gì về AMD so với CommonJS?
  • Giải thích tại sao đoạn code sau không hoạt động như một IIFE: function foo(){ }();.
    • Cần thay đổi gì để làm nó trở thành một IIFE?
  • Sự khác nhau giữa một biến: chứa null, chứa undefined hoặc chưa được khai báo (undeclared) là gì?
    • Bạn sẽ kiểm tra các trạng thái này như thế nào?
  • Một closure là gì, và bạn sẽ sử dụng nó như thế nào / tại sao bạn sử dụng nó?
  • Một trường hợp sử dụng điển hình cho các anonymous functions?
  • Bạn tổ chức code của bạn như thế nào? (module pattern, classical inheritance?)
  • Sự khác nhau giữa host objects và native objects là gì?
  • Nêu sự khác nhau giữa: function Person(){}, var person = Person(), và var person = new Person()?
  • Sự khác nhau giữa .call.apply là gì?
  • Giải thích về Function.prototype.bind.
  • Bạn sẽ sử dụng document.write() khi nào?
  • Sự khác nhau giữa feature detection, feature inference, và việc sử dụng UA string là gì?
  • Giải thích về Ajax bằng nhiều thông tin chi tiết nhất có thể.
  • Những ưu và khuyết điểm của việc sử dụng Ajax là gì?
  • Giải thích cách JSONP làm việc (và nó thật sự không phải là Ajax như thế nào).
  • Bạn đã bao giờ sử dụng JavaScript templating chưa?
    • Nếu có, bạn đã sử dụng những thư viện nào?
  • Giải thích về “hoisting”.
  • Trình bày về event bubbling.
  • Trình bày sự khác nhau giữ một “attribute” và một “property”?
  • Tại sao việc mở rộng các object được xây dựng sẵn trong JavaScript không phải là một ý tưởng tốt?
  • Sự khác nhau giữa event load và event DOMContentLoaded của document?
  • Sự khác nhau giữa == and === là gì?
  • Giải thích về same-origin policy và sự liên quan của nó với JavaScript.
  • Làm cho hàm này hoạt động:
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
  • Tại sao lại gọi là Ternary expression, từ “Ternary” có nghĩa gì?
  • "use strict"; là gì? Những điểm lợi và hại khi sử dụng nó?
  • Tạo một vòng lặp for cho output từ 1 đến 100, trong đó output “fizz” thay cho số chia hết cho 3, “buzz” thay cho số chia hết cho 5“fizzbuzz” thay cho số chia hết cho cả 35.
  • Tại sao, nói chung, việc không làm ảnh hưởng đến global scope của một website là một điều tốt?
  • Tại sao bạn sẽ không sử dụng những thứ như event load? Event này có điểm bất lợi nào không? Bạn có biết cách thay thế nào khác, và tại sao bạn sẽ sử dụng chúng?
  • Giải thích một ứng dụng đơn trang (single page app) là gì và làm sao để làm chúng thân thiện với việc SEO.
  • Mức độ trải nghiệm của bạn là như thế nào đối với các Promise và/hoặc polyfills của chúng?
  • Những điểm lợi và hại của việc sử dụng các Promise thay cho các callback?
  • Nêu một vài ưu và khuyết điểm của việc viết code JavaScript trong một ngôn ngữ mà sẽ dùng để biên dịch thành JavaScript.
  • Bạn sử dụng những công cụ và kỹ thuật nào để gỡ lỗi (debug) cho JavaScript?
  • Bạn sử dụng những cấu trúc nào để lặp xuyên suốt qua tất cả các thuộc tính (property) trong object và các item trong array?
  • Giải thích sự khác nhau giữa các mutable object và immutable object.
    • Nêu ví dụ cho một immutable object trong JavaScript?
    • Những ưu/khuyết điểm của tính bất biến (immutability)?
    • Làm thế nào để đạt được tính bất biến trong code của bạn?
  • Giải thích sự khác nhau giữa các hàm đồng bộ (synchronous function) và hàm không đồng bộ (asynchronous function).
  • Event loop là gì?
    • Sự khác biệt giữa call stack và task queue là gì?
  • Giải thích sự khác nhau trong các cách sử dụng foo sau đây: giữa function foo() {}var foo = function() {}
  • Sự khác biệt giữa các biến được tạo bằng việc sử dụng let, var hoặc const là gì?

Các câu hỏi về Kiểm thử (Testing):

  • Vài điểm lợi và bất lợi trong việc kiểm thử code của bạn là gì?
  • Bạn sẽ sử dụng những công cụ nào để kiểm thử chức năng của code của bạn?
  • Sự khác nhau giữa một unit test và một functional/integration test là gì?
  • Mục đích của một công cụ kiểm tra code style (code style linting tool) là gì?

Các câu hỏi về Hiệu suất (Performance):

  • Bạn sử dụng những công cụ nào để tìm ra một lỗi hiệu suất trong code của bạn?
  • Chỉ ra vài cách mà bạn có thể cải thiện hiệu suất cuộn trang (scrolling performance) trên website của bạn?
  • Giải thích sự khác nhau giữa layout, painting và compositing.

Các câu hỏi về Mạng (Network):

  • Theo truyền thống, tại sao việc cung cấp các tài nguyên của trang web từ nhiều tên miền khác nhau là việc có lợi hơn?
  • Hãy trình bày một cách toàn diện nhất quá trình từ lúc bạn nhập vào URL của một trang web đến khi nó hoàn thành việc tải và hiện thị trên màn hình của bạn.
  • Những điểm khác nhau giữa Long-Polling, Websockets và Server-Sent Events?
  • Giải thích các request header và response header sau:
    • Sự khác nhau giữa Expires, Date, Age và If-Modified-…
    • Do Not Track
    • Cache-Control
    • Transfer-Encoding
    • ETag
    • X-Frame-Options
  • Các HTTP methods là gì? Liệt kê tất cả HTTP methods mà bạn biết, và giải thích chúng.

Các câu hỏi về việc viết code:

Câu hỏi: Giá trị của foo là gì?

var foo = 10 + '20';

Câu hỏi: Đoạn code dưới đây sẽ xuất ra cái gì?

console.log(0.1 + 0.2 == 0.3);

Câu hỏi: Bạn sẽ làm thế nào để hàm này hoạt động?

add(2, 5); // 7
add(2)(5); // 7

Câu hỏi: Giá trị nào được trả về từ dòng lệnh sau?

"i'm a lasagna hog".split("").reverse().join("");

Câu hỏi: Giá trị của window.foo là gì?

( window.foo || ( window.foo = "bar" ) );

Câu hỏi: Kết quả của 2 lệnh alert dưới đây là gì?

var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

Câu hỏi: Giá trị của foo.length là gì?

var foo = [];
foo.push(1);
foo.push(2);

Câu hỏi: Giá trị của foo.x là gì?

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Câu hỏi: Những dòng code sau in ra những gì?

console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');

Các câu hỏi vui:

  • Gần đây bạn đã làm việc với những dự án thú vị nào?
  • Vài điều bạn thích về các công cụ dành cho nhà phát triển mà bạn sử dụng là gì?
  • Ai là người truyền cảm hứng cho bạn trong cộng đồng front-end?
  • Bạn có dự án ngắn hạn nào không? Kiểu dự án gì?
  • Những tính năng của Internet Explorer mà bạn thích là gì?
  • Bạn có thích dùng cà phê không?

Những người đóng góp:

Tài liệu này được khởi đầu vào năm 2009 như là một sự cộng tác của @paul_irish @bentruyman @cowboy @ajpiano @SlexAxton @boazsender @miketaylr @vladikoff @gf3 @jon_neal @sambreed@iansym.

Đã nhận được sự đóng góp từ hơn 100 developers.

\ No newline at end of file From c9fdbcf743425d78a628dbcc23bc76b2d0b1ee18 Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Mon, 3 Dec 2018 04:05:59 -0200 Subject: [PATCH 008/252] fix links in README file --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d0bf432dd..7f199ffb0 100755 --- a/README.md +++ b/README.md @@ -6,16 +6,16 @@ This file contains a number of front-end interview questions that can be used wh ## Table of Contents - 1. [General Questions](questions/general-questions.md) - 1. [HTML Questions](questions/html-questions.md) - 1. [CSS Questions](questions/css-questions.md) - 1. [JS Questions](questions/javascript-questions.md) + 1. [General Questions](src/questions/general-questions.md) + 1. [HTML Questions](src/questions/html-questions.md) + 1. [CSS Questions](src/questions/css-questions.md) + 1. [JS Questions](src/questions/javascript-questions.md) 1. [Accessibility Questions](https://scottaohara.github.io/accessibility_interview_questions/) (external link) - 1. [Testing Questions](questions/testing-questions.md) - 1. [Performance Questions](questions/performance-questions.md) - 1. [Network Questions](questions/network-questions.md) - 1. [Coding Questions](questions/coding-questions.md) - 1. [Fun Questions](questions/fun-questions.md) + 1. [Testing Questions](src/questions/testing-questions.md) + 1. [Performance Questions](src/questions/performance-questions.md) + 1. [Network Questions](src/questions/network-questions.md) + 1. [Coding Questions](src/questions/coding-questions.md) + 1. [Fun Questions](src/questions/fun-questions.md) ## Getting Involved @@ -29,9 +29,9 @@ This project started in 2009 as a collaboration of [@paul_irish](https://twitter This project is currently maintained by: -- [roblarsen](https://github.com/roblarsen) -- [cezaraugusto](https://github.com/cezaraugusto) -- [vvscode](https://github.com/vvscode) +- [@roblarsen](https://github.com/roblarsen) +- [@cezaraugusto](https://github.com/cezaraugusto) +- [@vvscode](https://github.com/vvscode) It has since been active thanks to these [incredibly wonderful people](https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/CONTRIBUTORS.md). From 94a9a21623b8031eef986d9ba8dd04f33ab6217b Mon Sep 17 00:00:00 2001 From: Max Fenton Date: Mon, 10 Dec 2018 23:40:33 -0500 Subject: [PATCH 009/252] Fix typo in navigation (#506) `Performance` was mis-spelled as `perfomance` --- src/_data/questions.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/questions.json b/src/_data/questions.json index c68780d8a..997a8df27 100644 --- a/src/_data/questions.json +++ b/src/_data/questions.json @@ -50,8 +50,8 @@ "external": false }, { - "abbreviation": "Perfomance", - "title": "Perfomance Questions", + "abbreviation": "Performance", + "title": "Performance Questions", "url": "/questions/performance-questions/", "external": false }, From 7036e8d1c1096a6ba27b7821339580ba0e187876 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Tue, 25 Dec 2018 18:53:28 +0000 Subject: [PATCH 010/252] Improve Russian translation (#507) --- src/translations/russian/README.md | 50 +++++++++++++++--------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/translations/russian/README.md b/src/translations/russian/README.md index ccc056ad3..784ebb0b6 100644 --- a/src/translations/russian/README.md +++ b/src/translations/russian/README.md @@ -4,9 +4,9 @@ layout: layouts/page.njk permalink: /translations/russian/index.html --- -# Вопросы кандидату на должность front-end разработчика +# Вопросы кандидату на должность фронтенд-разработчика -**Замечание:** Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность front-end разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь). +**Замечание:** Этот репозиторий содержит подборку вопросов, которые могут быть использованы на собеседованиях на должность фронтенд-разработчика. Здесь предлагаются лишь идеи, не нужно задавать все вопросы сразу (иначе в один час точно не уложитесь). Также имейте в виду, что многие вопросы не требуют однозначного короткого ответа, а лишь помогают завести беседу на ту или иную тему (предоставляя кандидату возможность показать себя во всей красе). @@ -42,9 +42,9 @@ permalink: /translations/russian/index.html * С какой технической сложностью вы недавно столкнулись и как с ней справились? * Какие методы для повышения производительности вы использовали при создании или обслуживании сайта? * Можете ли вы описать некоторые методы SEO, которые вы использовали в последнее время? -* Можете ли вы объяснить общие принципы относительно front-end безопасности или недавние проблемы, которые вы решили? +* Можете ли вы объяснить общие принципы относительно фронтенд-безопасности или недавние проблемы, которые вы решили? * Какие действия вы лично предприняли в недавних проектах для повышения удобства использования вашего кода? -* Расскажите о предпочтительной среде разработки. +* Расскажите о предпочитаемой среде разработки. * С какими системами контроля версий вы знакомы? * Можете ли вы описать порядок действий при создании новой веб-страницы? * Если у вас есть 5 разных файлов со стилями, какой лучший способ интегрировать их в сайт? @@ -55,10 +55,10 @@ permalink: /translations/russian/index.html * Назовите три способа уменьшения времени загрузки страницы (воспринимаемого или реального). * Если вы присоединились к проекту, где для форматирования используются табы, а вы привыкли использовать пробелы, как вы поступите? * Опишите, как бы вы реализовали примитивное слайд-шоу. -* Если бы у Вас была возможность освоить новую технологию в этом году, что бы это было? +* Если бы у вас была возможность освоить новую технологию в этом году, что бы это было? * Объясните важность стандартов и комитетов по стандартам. * Что такое FOUC (Flash Of Unstyled Content)? Как его избежать? -* Объясните, что такое ARIA и скринридеры, а также как сделать вебсайт доступным. +* Объясните, что такое ARIA и скринридеры, а также как сделать сайт доступным. * Какие преимущества и недостатки у CSS и JavaScript анимаций? * Что означает CORS и какую проблему решает? @@ -67,19 +67,19 @@ permalink: /translations/russian/index.html * Для чего нужен `doctype`? * Как следует оформлять страницу, содержимое которой может быть на разных языках? * На что необходимо обратить внимание при разработке мультиязычных сайтов? -* Для чего отлично подойдут `data-` атрибуты? +* Для чего нужны атрибуты, начинающиеся с `data-`? * Представьте HTML5 как открытую веб-платформу. Из каких блоков состоит HTML5? * Объясните разницу между `cookie`, `sessionStorage` и `localStorage`. * Объясните разницу между ` {% set css %} {% include "assets/css/prism.css" %} diff --git a/src/translations/arabic/README.md b/src/translations/arabic/README.md index 0d0aff754..857fc4e74 100644 --- a/src/translations/arabic/README.md +++ b/src/translations/arabic/README.md @@ -3,6 +3,7 @@ title: أسئلة مقابله شخصية في تطوير واجهةالويب layout: layouts/page.njk rtl: true permalink: /translations/arabic/index.html +lang : ar ---

أسئلة مقابله شخصية في تطوير واجهةالويب

diff --git a/src/translations/bulgarian/README.md b/src/translations/bulgarian/README.md index 3c924cc8b..91021fda3 100644 --- a/src/translations/bulgarian/README.md +++ b/src/translations/bulgarian/README.md @@ -2,6 +2,7 @@ title: Въпроси за интервю за front-end разработчици layout: layouts/page.njk permalink: /translations/bulgarian/index.html +lang : bg --- # Въпроси за интервю за front-end разработчици diff --git a/src/translations/burmese/README.md b/src/translations/burmese/README.md index 38fc6b6f2..0ca9a5fc1 100644 --- a/src/translations/burmese/README.md +++ b/src/translations/burmese/README.md @@ -2,6 +2,7 @@ title: Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ layout: layouts/page.njk permalink: /translations/burmese/index.html +lang : my --- # Front-end developer အလုပ်နှင့်ဆိုင်သော အင်တာဗျူး မေးခွန်းများ diff --git a/src/translations/chinese-traditional/README.md b/src/translations/chinese-traditional/README.md index 04448cc70..63d933973 100644 --- a/src/translations/chinese-traditional/README.md +++ b/src/translations/chinese-traditional/README.md @@ -2,6 +2,7 @@ title: 前端工程師面試問題集 layout: layouts/page.njk permalink: /translations/chinese-traditional/index.html +lang: zh --- # 前端工程師面試問題集 diff --git a/src/translations/chinese/README.md b/src/translations/chinese/README.md index cf073088e..b2b110e75 100644 --- a/src/translations/chinese/README.md +++ b/src/translations/chinese/README.md @@ -2,6 +2,7 @@ title: 前端工作面试问题 layout: layouts/page.njk permalink: /translations/chinese/index.html +lang : zh --- # 前端工作面试问题 diff --git a/src/translations/croatian/README.md b/src/translations/croatian/README.md index 43e77820b..235b733e8 100644 --- a/src/translations/croatian/README.md +++ b/src/translations/croatian/README.md @@ -2,6 +2,7 @@ title: Intervju za posao Front-end Developera layout: layouts/page.njk permalink: /translations/croatian/index.html +lang: hr --- # Intervju za posao Front-end Developera diff --git a/src/translations/czech/README.md b/src/translations/czech/README.md index a4670f264..a175b2092 100644 --- a/src/translations/czech/README.md +++ b/src/translations/czech/README.md @@ -2,6 +2,7 @@ title: Front-end vývojář – otázky k pohovoru layout: layouts/page.njk permalink: /translations/czech/index.html +lang : cs --- # Front-end vývojář – otázky k pohovoru diff --git a/src/translations/danish/README.md b/src/translations/danish/README.md index b3ddbde4e..8c6e383f0 100644 --- a/src/translations/danish/README.md +++ b/src/translations/danish/README.md @@ -2,6 +2,7 @@ title: Front-end Job Interview Spørgsmål layout: layouts/page.njk permalink: /translations/danish/index.html +lang: da --- # Front-end Job Interview Spørgsmål diff --git a/src/translations/dutch/README.md b/src/translations/dutch/README.md index cbd8439a8..178578eb9 100644 --- a/src/translations/dutch/README.md +++ b/src/translations/dutch/README.md @@ -2,6 +2,7 @@ title: Front-end interview vragen layout: layouts/page.njk permalink: /translations/dutch/index.html +lang : nl --- # Front-end interview vragen diff --git a/src/translations/farsi/README.md b/src/translations/farsi/README.md index 0a7708339..47cfc9ffc 100644 --- a/src/translations/farsi/README.md +++ b/src/translations/farsi/README.md @@ -3,6 +3,7 @@ title: سوالات مصاحبه‌ی کاری فرانت‌-اند layout: layouts/page.njk rtl: true permalink: /translations/farsi/index.html +lang: fa ---

سوالات مصاحبه‌ی کاری فرانت‌-اند

diff --git a/src/translations/french/README.md b/src/translations/french/README.md index a3a08792d..a972733e9 100644 --- a/src/translations/french/README.md +++ b/src/translations/french/README.md @@ -2,6 +2,7 @@ title: Questionnaire de recrutement pour développeur front-end layout: layouts/page.njk permalink: /translations/french/index.html +lang: fr --- # Questionnaire de recrutement pour développeur front-end diff --git a/src/translations/german/README.md b/src/translations/german/README.md index 6f639c0f3..bfecb361b 100644 --- a/src/translations/german/README.md +++ b/src/translations/german/README.md @@ -2,6 +2,7 @@ title: Fragen im Bewerbungsgespräch für Frontend-Entwickler layout: layouts/page.njk permalink: /translations/german/index.html +lang : de --- # Fragen im Bewerbungsgespräch für Frontend-Entwickler diff --git a/src/translations/greek/README.md b/src/translations/greek/README.md index 38d7e8edd..69ec7e160 100644 --- a/src/translations/greek/README.md +++ b/src/translations/greek/README.md @@ -2,6 +2,7 @@ title: Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers layout: layouts/page.njk permalink: /translations/greek/index.html +lang: el --- # Ερωτήσεις συνέντευξης για υποψήφιους Frond-end developers diff --git a/src/translations/hebrew/README.md b/src/translations/hebrew/README.md index b0b504863..d920d88cf 100644 --- a/src/translations/hebrew/README.md +++ b/src/translations/hebrew/README.md @@ -3,6 +3,7 @@ title: שאלות לראיונות עבודה בנושא פיתוח - צד לק layout: layouts/page.njk rtl: true permalink: /translations/hebrew/index.html +lang : he ---
diff --git a/src/translations/hindi/README.md b/src/translations/hindi/README.md index bcd8aee39..dc3159aff 100644 --- a/src/translations/hindi/README.md +++ b/src/translations/hindi/README.md @@ -2,6 +2,7 @@ title: फ्रंट-एंड डेवलपर साक्षात्कार प्रश्न layout: layouts/page.njk permalink: /translations/hindi/index.html +lang: hi --- # फ्रंट-एंड डेवलपर साक्षात्कार प्रश्न diff --git a/src/translations/hungarian/README.md b/src/translations/hungarian/README.md index 8e764a991..8208b92ce 100644 --- a/src/translations/hungarian/README.md +++ b/src/translations/hungarian/README.md @@ -2,6 +2,7 @@ title: Interjú kérdések front-end fejlesztőknek layout: layouts/page.njk permalink: /translations/hungarian/index.html +lang : hu --- # Interjú kérdések front-end fejlesztőknek diff --git a/src/translations/indonesian/README.md b/src/translations/indonesian/README.md index c6d1bd5f8..4adbbeaf3 100644 --- a/src/translations/indonesian/README.md +++ b/src/translations/indonesian/README.md @@ -2,6 +2,7 @@ title: Daftar Pertanyaan Wawancara Kerja Front-End layout: layouts/page.njk permalink: /translations/indonesian/index.html +lang: id --- # Daftar Pertanyaan Wawancara Kerja Front-End diff --git a/src/translations/italian/README.md b/src/translations/italian/README.md index 92da6c2be..9fa3bdcbf 100644 --- a/src/translations/italian/README.md +++ b/src/translations/italian/README.md @@ -2,6 +2,7 @@ title: Domande per il colloquio di lavoro per front-end layout: layouts/page.njk permalink: /translations/italian/index.html +lang : it --- # Domande per il colloquio di lavoro per front-end diff --git a/src/translations/italian/italian.json b/src/translations/italian/italian.json deleted file mode 100644 index 1fed4bcd2..000000000 --- a/src/translations/italian/italian.json +++ /dev/null @@ -1 +0,0 @@ -{"lang": "it"} diff --git a/src/translations/japanese/README.md b/src/translations/japanese/README.md index c366926cf..08a088e8a 100644 --- a/src/translations/japanese/README.md +++ b/src/translations/japanese/README.md @@ -2,6 +2,7 @@ title: フロントエンドデベロッパー面接時の質問事項 layout: layouts/page.njk permalink: /translations/japanese/index.html +lang: ja --- # フロントエンドデベロッパー面接時の質問事項 diff --git a/src/translations/korean/README.md b/src/translations/korean/README.md index 5c4f8545e..7ed426e07 100644 --- a/src/translations/korean/README.md +++ b/src/translations/korean/README.md @@ -2,6 +2,7 @@ title: 프론트엔드 면접 문제 은행 layout: layouts/page.njk permalink: /translations/korean/index.html +lang: ko --- # 프론트엔드 면접 문제 은행 diff --git a/src/translations/latvian/README.md b/src/translations/latvian/README.md index 4d5c21e4a..c63cd1c81 100644 --- a/src/translations/latvian/README.md +++ b/src/translations/latvian/README.md @@ -2,6 +2,7 @@ title: Front-end web programmētāja darba intervijas jautājumi layout: layouts/page.njk permalink: /translations/latvian/index.html +lang: lv --- # Front-end web programmētāja darba intervijas jautājumi diff --git a/src/translations/polish/README.md b/src/translations/polish/README.md index 0a8575467..64dc8342f 100644 --- a/src/translations/polish/README.md +++ b/src/translations/polish/README.md @@ -2,6 +2,7 @@ title: Pytania kwalifikacyjne na stanowisko front-end web developera layout: layouts/page.njk permalink: /translations/polish/index.html +lang: pl --- # Pytania kwalifikacyjne na stanowisko front-end web developera diff --git a/src/translations/portuguese/README.md b/src/translations/portuguese/README.md index 9a9bd7e37..22a8c84b4 100644 --- a/src/translations/portuguese/README.md +++ b/src/translations/portuguese/README.md @@ -2,6 +2,7 @@ title: Questões para entrevista de profissionais Front-end layout: layouts/page.njk permalink: /translations/portuguese/index.html +lang: pt --- # Questões para entrevista de profissionais Front-end diff --git a/src/translations/romanian/README.md b/src/translations/romanian/README.md index 7c42f946f..6208b0cf6 100644 --- a/src/translations/romanian/README.md +++ b/src/translations/romanian/README.md @@ -2,6 +2,7 @@ title: Întrebări pentru interviu tehnic web front-end layout: layouts/page.njk permalink: /translations/romanian/index.html +lang: ro --- # Întrebări pentru interviu tehnic web front-end diff --git a/src/translations/russian/README.md b/src/translations/russian/README.md index 97caa8ef0..4e2b475fe 100644 --- a/src/translations/russian/README.md +++ b/src/translations/russian/README.md @@ -2,6 +2,7 @@ title: Вопросы кандидату на должность front-end разработчика layout: layouts/page.njk permalink: /translations/russian/index.html +lang: ru --- # Вопросы кандидату на должность фронтенд-разработчика diff --git a/src/translations/serbian/README.md b/src/translations/serbian/README.md index df5f75c11..49299e6e2 100644 --- a/src/translations/serbian/README.md +++ b/src/translations/serbian/README.md @@ -2,6 +2,7 @@ title: Intervju za posao Front-end Developer-a layout: layouts/page.njk permalink: /translations/serbian/index.html +lang: sr --- # Intervju za posao Front-end Developer-a diff --git a/src/translations/slovakian/README.md b/src/translations/slovakian/README.md index 32291cc57..b9d61438d 100644 --- a/src/translations/slovakian/README.md +++ b/src/translations/slovakian/README.md @@ -2,6 +2,7 @@ title: Otázky k pohovoru; front-end vývojár layout: layouts/page.njk permalink: /translations/slovakian/index.html +lang: sk --- # Otázky k pohovoru: front-end vývojár diff --git a/src/translations/slovenian/README.md b/src/translations/slovenian/README.md index 8a1a24338..f9626097a 100644 --- a/src/translations/slovenian/README.md +++ b/src/translations/slovenian/README.md @@ -2,6 +2,7 @@ title: Intervju vprašanja za front-end programerja layout: layouts/page.njk permalink: /translations/slovenian/index.html +lang: sl --- # Intervju vprašanja za front-end programerja diff --git a/src/translations/spanish/README.md b/src/translations/spanish/README.md index 005409023..cfd82737d 100644 --- a/src/translations/spanish/README.md +++ b/src/translations/spanish/README.md @@ -2,6 +2,7 @@ title: GUÍA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO layout: layouts/page.njk permalink: /translations/spanish/index.html +lang: es --- # GUÍA DE PREGUNTAS PARA ENTREVISTAS DE TRABAJO diff --git a/src/translations/swedish/README.md b/src/translations/swedish/README.md index 2609a5e67..eab807c50 100644 --- a/src/translations/swedish/README.md +++ b/src/translations/swedish/README.md @@ -2,6 +2,7 @@ title: Front-end Anställningsfrågor layout: layouts/page.njk permalink: /translations/swedish/index.html +lang: sv --- # Front-end Anställningsfrågor diff --git a/src/translations/turkish/README.md b/src/translations/turkish/README.md index 52bf3ca4b..f3a53448e 100644 --- a/src/translations/turkish/README.md +++ b/src/translations/turkish/README.md @@ -2,6 +2,7 @@ title: Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları layout: layouts/page.njk permalink: /translations/turkish/index.html +lang: tr --- # Ön Yüz Yazılımcısı - Front-end Developer - Mülakat Soruları diff --git a/src/translations/ukrainian/README.md b/src/translations/ukrainian/README.md index acae923cd..3183f8a8c 100644 --- a/src/translations/ukrainian/README.md +++ b/src/translations/ukrainian/README.md @@ -2,6 +2,7 @@ title: Питання кандидату на посаду front-end розробника layout: layouts/page.njk permalink: /translations/ukrainian/index.html +lang: uk --- # Питання кандидату на посаду front-end розробника diff --git a/src/translations/vietnamese/README.md b/src/translations/vietnamese/README.md index d3008c0c7..03bab33ea 100644 --- a/src/translations/vietnamese/README.md +++ b/src/translations/vietnamese/README.md @@ -2,6 +2,7 @@ title: Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end layout: layouts/page.njk permalink: /translations/vietnamese/index.html +lang : vi --- # Những Câu Hỏi Phỏng Vấn Lập Trình Viên Front-end From f741e0e3163195a4959939e84d8a4f0e501b977c Mon Sep 17 00:00:00 2001 From: Rob Larsen Date: Fri, 15 Sep 2023 07:45:52 -0400 Subject: [PATCH 188/252] It once had Job in the title, but doesn't anymore (#843) --- src/_data/site.json | 2 +- src/index.njk | 2 +- src/translations/danish/README.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/_data/site.json b/src/_data/site.json index 0ae7dbc5b..f7f61f19d 100644 --- a/src/_data/site.json +++ b/src/_data/site.json @@ -1,6 +1,6 @@ { - "title": "Front-end Job Interview Questions", + "title": "Front-end Developer Interview Questions", "url": "https://h5bp.org/Front-end-Developer-Interview-Questions/", "description": "A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.", "keywords": "front-end, interview questions, css questions, js questions, html questions, performance questions, interview test", diff --git a/src/index.njk b/src/index.njk index 660e8579a..57a4d59f6 100644 --- a/src/index.njk +++ b/src/index.njk @@ -7,7 +7,7 @@ rtl: false {% block pageTop %}
-
+

{{ title }}

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. diff --git a/src/translations/danish/README.md b/src/translations/danish/README.md index 8c6e383f0..13df45223 100644 --- a/src/translations/danish/README.md +++ b/src/translations/danish/README.md @@ -1,11 +1,11 @@ --- -title: Front-end Job Interview Spørgsmål +title: Front-end Developer Interview Spørgsmål layout: layouts/page.njk permalink: /translations/danish/index.html lang: da --- -# Front-end Job Interview Spørgsmål +# Front-end Developer Interview Spørgsmål @version 1.0 From 5c622b560b659bd3ecd4a30b46916bb42baa1c76 Mon Sep 17 00:00:00 2001 From: Rob Larsen Date: Tue, 19 Sep 2023 10:26:46 -0400 Subject: [PATCH 189/252] Creating a template to translate (#844) --- src/translations/_template/README.md | 211 +++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 src/translations/_template/README.md diff --git a/src/translations/_template/README.md b/src/translations/_template/README.md new file mode 100644 index 000000000..adb190393 --- /dev/null +++ b/src/translations/_template/README.md @@ -0,0 +1,211 @@ +--- +title: Front End Developer Interview Questions +layout: layouts/page.njk +permalink: /translations/************/index.html +--- + + +## Table of Contents + +1. [General Questions](#general) +1. [HTML Questions](#html) +1. [CSS Questions](#css) +1. [JS Questions](#js) +1. [Testing Questions](#testing) +1. [Performance Questions](#performance) +1. [Network Questions](#network) +1. [Fun Questions](#fun) + + +#### [[⬆]](#toc) General Questions: + +* What did you learn yesterday/this week? +* What excites or interests you about coding? +* What is a recent technical challenge you experienced and how did you solve it? +* When building a new web site or maintaining one, can you explain some techniques you have used to increase performance? +* Can you describe some SEO best practices or techniques you have used lately? +* Can you explain any common techniques or recent issues solved in regards to front-end security? +* What actions have you personally taken on recent projects to increase maintainability of your code? +* Talk about your preferred development environment. +* Which version control systems are you familiar with? +* Can you describe your workflow when you create a web page? +* If you have 5 different stylesheets, how would you best integrate them into the site? +* Can you describe the difference between progressive enhancement and graceful degradation? +* How would you optimize a website's assets/resources? +* How many resources will a browser download from a given domain at a time? + * What are the exceptions? +* Name 3 ways to decrease page load (perceived or actual load time). +* If you jumped on a project and they used tabs and you used spaces, what would you do? +* Describe how you would create a simple slideshow page. +* If you could master one technology this year, what would it be? +* Explain the importance of standards and standards bodies. +* What is Flash of Unstyled Content? How do you avoid FOUC? +* Explain what ARIA and screenreaders are, and how to make a website accessible. +* Explain some of the pros and cons for CSS animations versus JavaScript animations. +* What does CORS stand for and what issue does it address? +* How did you handle a disagreement with your boss or your collaborator? +* What resources do you use to learn about the latest in front end development and design? +* What skills are needed to be a good front-end developer? +* What role do you see yourself in? +* Explain the difference between cookies, session storage, and local storage? +* Can you explain what happens when you enter a URL into the browser? + +#### [[⬆]](#toc) HTML Questions: + +* What does a `doctype` do? +* How do you serve a page with content in multiple languages? +* What kind of things must you be wary of when designing or developing for multilingual sites? +* What are `data-` attributes good for? +* Consider HTML5 as an open web platform. What are the building blocks of HTML5? +* Describe the difference between a `cookie`, `sessionStorage` and `localStorage`. +* Describe the difference between `