Front-end-Developer-Intervi.../translations/ukrainian/index.html

12 lines
41 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html lang="uk" itemscope itemtype="https://schema.org/Article"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Питання кандидату на посаду front-end розробника ★ Front-end Developer Interview Questions</title><meta name="description" content="A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore."><meta name="keywords" content="front-end, interview questions, css questions, js questions, html questions, performance questions, interview test"><meta name="author" content="Front-end Developer Interview Questions"><meta itemprop="author" content="Front-end Developer Interview Questions"><meta itemprop="name" content="Питання кандидату на посаду front-end розробника ★ Front-end Developer Interview Questions"><meta itemprop="description" content="A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore."><meta itemprop="image" content="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/og-image.png"><meta property="og:title" content="Питання кандидату на посаду front-end розробника ★ Front-end Developer Interview Questions"><meta property="og:description" content="A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore."><meta property="og:url" content="https://h5bp.org/Front-end-Developer-Interview-Questions//translations/ukrainian/"><meta property="og:site_name" content="Front-end Developer Interview Questions"><meta property="og:image" content="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/og-image.png"><meta property="og:type" content="website"><meta property="og:locale" content="en_US"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Питання кандидату на посаду front-end розробника ★ Front-end Developer Interview Questions"><meta name="twitter:description" content="A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore."><meta name="twitter:site" content="@h5bp"><meta name="twitter:image" content="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/og-image.png"><meta name="twitter:creator" content="@h5bp"><link type="image/png" rel="apple-touch-icon" href="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/apple-touch-icon.png"><link type="image/png" sizes="32x32" rel="icon" href="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/favicon-32x32.png"><link type="image/png" sizes="16x16" rel="icon" href="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/favicon-32x32.png"><link type="image/png" color="#181818" rel="mask-icon" href="https://h5bp.org/Front-end-Developer-Interview-Questions//assets/images/favicon-96x96.png"><meta name="mobile-web-app-capable" content="yes"><meta name="robots" content="index,follow"><script>console.log(page.lang)</script><style>code[class*=language-],pre[class*=language-]{color:#c5c8c6;text-shadow:0 1px rgba(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}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#370b44}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#7c7c7c}.token.punctuation{color:#c5c8c6}.namespace{opacity:.7}.token.keyword,.token.property,.token.tag{color:#96cbfe}.token.class-name{color:#ffffb6;text-decoration:underline}.token.boolean,.token.constant{color:#9c9}.token.deleted,.token.symbol{color:#f92672}.token.number{color:#ff73fd}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a8ff60}.token.variable{color:#c6c5fe}.token.operator{color:#ededed}.token.entity{color:#ffffb6}.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.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}: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}body.rtl{--font-family-body:Arial,Helvetica,sans-serif}*{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)}.nav{padding:1rem 0;position:relative;font-family:var(--font-family-heading)}.nav li{word-wrap:none;white-space:nowrap}.navigation{list-style:none;display:flex;flex-wrap:wrap;font-size:1rem}.navigation-questions-label{margin-right:auto}@media (min-width:60em){.navigation-questions-label{margin-right:0}}.navigation-toggle{display:inline-block;appearance:none;border:0;font-size:1rem;font-weight:600;cursor:pointer;background:0 0}.navigation-toggle::after{content:'\25BE';padding-left:.3rem;display:inline-block;font-size:1.2rem;font-weight:700;color:var(--color-primary);transform-origin:center}.navigation-toggle:active::after,.navigation-toggle:focus::after,.navigation-toggle:hover::after{color:var(--color-secondary)}.navigation.open .navigation-toggle::after{transform:scaleY(-1) translateY(-.25em)}@media (min-width:60em){.navigation-toggle{color:var(--color-text);pointer-events:none;cursor:default}.navigation-toggle::after{display:none}}.navigation-questions-list{padding:.5rem 1rem;display:flex;flex-direction:column;position:absolute;top:calc(100% - 1rem);left:0;z-index:1;opacity:0;transform:scale(.5,0);transform-origin:center top;transition:opacity .1s,transform .2s ease-out;background-color:#fff;box-shadow:0 0 0 1px var(--color-secondary),0 2px 4px -1px var(--color-text)}.navigation.open .navigation-questions-list{opacity:1;transform:none}.navigation.no-motion .navigation-questions-list{transition:none}@media (min-width:60em){.navigation-questions-list{padding:0;flex-direction:row;position:static;opacity:1;transform:none;transition:none;background-color:transparent;box-shadow:none}.navigation-questions-list li{margin:0}}.navigation-questions-anchor{visibility:hidden}.navigation.open .navigation-questions-anchor{visibility:visible}@media (min-width:60em){.navigation-questions-anchor{visibility:visible}}.navigation-item-emoji{width:100%;font-size:1rem;line-height:1rem;padding-bottom:1.5rem;margin-bottom:1.5rem;vertical-align:top;align-content:flex-start;border-bottom:1px solid #efefef}.navigation-item-home{border-bottom:none;padding-bottom:0;font-weight:600}@media (min-width:60em){.navigation-item-emoji{width:50%;margin-bottom:2rem;border-bottom:1px solid #efefef}}.navigation-item-emoji em{font-style:normal;margin-right:.5rem}.navigation-item-translations{text-align:left}@media (min-width:60em){.navigation-item-translations{text-align:right}}.navigation-item-home em{color:#835eff}.navigation-item-emoji a{text-decoration:none;display:inline-block;vertical-align:middle}@media (min-width:60em){.navigation-item:not(:last-of-type){margin-right:.8rem}}.navigation-anchor[rel~=external]::after{content:' ➚';color:var(--color-highlight)}.navigation-anchor.current{border-bottom:2px solid var(--color-highlight);padding:0 0 5px 0}.topbar{width:100%;height:.18rem;background:var(--color-gradient)}.skip-link{position:absolute;top:0;left:0;padding:.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:2.3rem;line-height:1.06;margin:1.4rem 0 .7rem;color:var(--color-primary);word-break:break-word}.rtl .header-big-title{text-align:right}@media (min-width:30em){.header-big-title{margin:1.4rem 0 .7rem;font-size:4.6rem}}@media (min-width:60em){.header-big-title{margin:2.1rem 0 .7rem;font-size:5.4rem}}@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://h5bp.github.io/Front-end-Developer-Interview-Questions/assets/images/gradient.svg');background-size:cover;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.2rem;line-height:1.4;padding:1rem 0}@media (min-width:30em){.header-big-description{font-size:1.5rem}}@media (min-width:60em){.header-big-description{font-size:1.8rem}}.header-description{padding-top:1rem}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:2;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.current,a:focus:not(.skip-link),a:hover:not(.skip-link){color:var(--color-primary)}a:not(.navigation-anchor)[rel~=external]:after{content:' ➚'}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:700;display:inline-block;width:1em;margin-left:-1em}.rtl ul:not(.navigation):not(.inline-list) li::before{margin-right:-1em;margin-left:initial}li{margin-bottom:.6rem}b,strong{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:.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:.5rem}abbr[title],acronym[title]{background:var(--color-gray-opacity);border:1px solid var(--color-gray-opacity);cursor:help}.container{max-width:66rem;padding:1.5rem 2rem 2rem;margin-right:auto;margin-left:auto}@media (min-width:30rem){.container{padding:3rem 4rem 4rem}}.content li:not(:last-of-type){margin-bottom:1.2rem}.content h2{max-width:33rem}.content>:not(:last-child){margin-bottom:2rem}.content :not(hr)+h2,.content :not(hr)+h3{padding-top:1rem}.content ol:not(.inline-list),.content ul:not(.inline-list){padding-left:1.2rem}.content-simple li:not(:last-of-type){margin-bottom:.5rem}.content-edit{text-align:right;margin-top:2rem}.inline-list{padding:0;list-style:none;display:flex;flex-wrap:wrap}.inline-list li{padding:0 5px;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:.6rem}.inline-list li a{display:inline-block;vertical-align:middle;margin:0 .15rem}.inline-list-contributors li a,.inline-list-original li a{font-size:1rem}.avatar{max-width:12rem}hr{border:none;bacground:none;border-bottom:1px solid #efefef}.footer{padding-top:3rem}.footer-text{font-size:.8rem}</style></head><body class=""><div class="topbar"></div><div class="container"><a class="skip-link" href="#main-content">Skip to main content</a><nav class="nav"><ul class="navigation" id="navigation"><li class="navigation-item-emoji navigation-item-home"><a class="navigation-anchor" href="/Front-end-Developer-Interview-Questions/" title="Home"><em></em><span>Front-end Developer Interview Questions</span></a></li><li class="navigation-item-emoji navigation-item-translations"><a class="navigation-anchor" href="/Front-end-Developer-Interview-Questions/translations" title="Translations"><em>🌐</em><span>Translations</span></a></li><li class="navigation-item navigation-questions-label"><button class="navigation-toggle" id="navigation-toggle">Questions:</button></li><li class="navigation-item navigation-questions"><ul class="navigation navigation-questions-list"><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/general-questions/" title="General Questions">General</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/html-questions/" title="HTML Questions">HTML</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/css-questions/" title="CSS Questions">CSS</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/javascript-questions/" title="JavaScript Questions">JavaScript</a></li><li class="navigation-item"><a rel="external noreferrer noopener" target="_blank" class="navigation-anchor navigation-questions-anchor" href="https://scottaohara.github.io/accessibility_interview_questions/" title="Accessibility Questions (external link)">A11y</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/testing-questions/" title="Testing Questions">Testing</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/performance-questions/" title="Performance Questions">Performance</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/network-questions/" title="Network Questions">Network</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/coding-questions/" title="Coding Questions">Coding</a></li><li class="navigation-item"><a class="navigation-anchor navigation-questions-anchor" href="/Front-end-Developer-Interview-Questions/questions/fun-questions/" title="Fun Questions">Fun</a></li></ul></li></ul></nav><main id="main-content" tabindex="-1"><header class="header"><h1 class="header-big-title">Питання кандидату на посаду front-end розробника</h1></header><div class="content"><h1>Питання кандидату на посаду front-end розробника</h1><p><strong>Примітка:</strong> Цей репозиторій містить підбірку питань, які можуть бути використані на співбесідах на посаду front-end розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить).</p><p>Також, майте на увазі, що багато питань не потребують однозначної короткої відповіді, а лише допомагають завести бесіду на ту чи іншу тему (даючи змогу кандидату показати себе в усій красі).</p><h2 id="%D0%B7%D0%BC%D1%96%D1%81%D1%82" tabindex="-1"><a class="header-anchor" href="#%D0%B7%D0%BC%D1%96%D1%81%D1%82"></a> <a name="toc">Зміст</a></h2><ol><li><a href="#contributors">Автори</a></li><li><a href="#general">Загальні запитання</a></li><li><a href="#html">Запитання по HTML</a></li><li><a href="#js">Запитання по JavaScript</a></li><li><a href="#jscode">Приклади коду на JavaScript</a></li><li><a href="#jquery">Запитання по jQuery</a></li><li><a href="#css">Запитання по CSS</a></li><li><a href="#fun">“Світська бесіда”</a></li></ol><h4><a href="#toc"></a> <a name="contributors">Автори:</a></h4><p>Цей проект було засновано в 2009 році завдяки співпраці <a href="https://twitter.com/paul_irish">@paul_irish</a> <a href="https://twitter.com/bentruyman">@bentruyman</a> <a href="https://twitter.com/cowboy">@cowboy</a> <a href="https://twitter.com/ajpiano">@ajpiano</a> <a href="https://twitter.com/slexaxton">@SlexAxton</a> <a href="https://twitter.com/boazsender">@boazsender</a> <a href="https://twitter.com/miketaylr">@miketaylr</a> <a href="https://twitter.com/vladikoff">@vladikoff</a> <a href="https://twitter.com/gf3">@gf3</a> <a href="https://twitter.com/jon_neal">@jon_neal</a> <a href="https://twitter.com/sambreed">@sambreed</a> та <a href="https://twitter.com/iansym">@iansym</a>.</p><p>Наразі проект підтримують:</p><ul><li><a href="https://github.com/roblarsen">roblarsen</a></li><li><a href="https://github.com/vvscode">vvscode</a></li></ul><p>З тих пір він був активним завдяки цим <a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/CONTRIBUTORS.md">чудовим людям</a>.</p><h4><a href="#toc"></a> <a name="general">Загальні запитання:</a></h4><ul><li>Чому ви навчились вчора/цього тижня?</li><li>Що цікавить та захоплює вас у програмуванні?</li><li>З якою технологічною складністю вам довелося стикнутись нещодавно і як ви її вирішили?</li><li>Чи можете ви розповісти про якісь техніки які ви використовуєте для підвищення продуктивності під час створення або підтримки веб-сайту?</li><li>Опишіть деякі кращі практики використання SEO або техніки які ви нещодавно використовуватили?</li><li>Чи можете ви пояснити будь-які типові техніки або нещодавні проблеми які ви вирішувати відносно безпеки (security) на front-end?</li><li>Що особисто ви зробити на минулих проектах аби покращити підтримуваність свого коду?</li><li>Поговоримо про середовище розробки якоми ви надаєте перевагу.</li><li>З якими системами контролю версій (VCS) ви знайомі?</li><li>Опишіть послідовність ваших дій під час створенння нової web-сторінки.</li><li>У вас є 5 різних файлів зі стилями, яким чином їх найкраще інтегрувати на сторінку?</li><li>Чи можете ви пояснити у чому різниця між progressive enhancement і graceful degradation?</li><li>Яким чином ви б оптимізували ресурси веб-сайту?</li><li>Скільки ресурсів одночасно браузер може завантажувати з одного домена?<ul><li>Які є виключення?</li></ul></li><li>Назвіть 3 способи зменшення часу завантаження сторінки (сприйманого або реального)</li><li>Якщо ви прийшли на проект, де для форматування використовується табуляція, а ви звикли до пробілів, як ви вчинете?</li><li>Опишіть як би ви реалізували просте слайд-шоу?</li><li>Якби у вас була можливість опанувати одну нову технологію в цьому році, що б це було?</li><li>Поясніть важливість стандартів і комітетів стандартизації.</li><li>Що таке блимання нестилізованого контенту (Flash of Unstyled Content)? Як його уникнути?</li><li>Поясніть що таке ARIA та читачі екрану та як зробити сайт доступним для людей з обмеженими здібностями?</li><li>Поясніть деякі переваги та недоліки CSS анімації в порівннянні JavaScript анімацією?</li><li>Як розшифровуюється CORS та які проблеми він вирішує?</li><li>Як ви вирішуєте розбіжності у поглядах зі своїм керівником або іншим працівником?</li><li>Які ресурси ви використовуєте аби дізнаватись про найсвіжіші тенденції у front-end розробці та дизайні?</li></ul><h4><a href="#toc"></a> <a name="html">Запитання по HTML:</a></h4><ul><li>Для чого потрібен <code>doctype</code> і скільки різновидів Ви можете назвати?</li><li>В чому різниця між standards mode і quirks mode?</li><li>Які обмеження накладають стандарти XHTML?<ul><li>Чи можуть виникнути проблеми при подачі сторінок із типом <code>application/xhtml+xml</code>?</li></ul></li><li>Як слід оформляти сторінку, на якій контент може бути на різних мовах?<ul><li>Що потрібно мати на увазі при розробці багатомовних сайтів?</li></ul></li><li>Чи можна використовувати синтаксис XHTML в HTML5?</li><li>Як використовувати XML в HTML5?</li><li>Чим корисні <code>data-</code> атрибути?</li><li>Які box-моделі є в HTML4 і чи є відмінності в HTML5?</li><li>Якщо розглядати HTML5 як відкриту web-платформу: на чому вона базується, з яких компонентів складається?</li><li>Поясніть різницю між cookies, sessionStorage і localStorage.</li><li>Чи знайомі з підводними каменями верстки поштових шаблонів?</li><li>Яка різниця між <code>GET</code> і<code>POST</code>?</li></ul><h4><a href="#toc"></a> <a name="js">Запитання по JavaScript:</a></h4><ul><li>Якими js-бібліотеками Ви користувалися?</li><li>Ви коли-небудь заглядали в вихідний код бібліотек / фреймворків, якими користувалися?</li><li>Чим JavaScript відрізняється від Java?</li><li>Що-таке хеш-таблиця?</li><li>Що таке <code>невизначені (undefined)</code> і <code>неоголошені (undeclared)</code> змінні?</li><li>Що таке замикання і як / для чого його використовують?<ul><li>На Вашу думку, як слід їх використовувати?</li></ul></li><li>Де зазвичай використовуються анонімні функції?</li><li>Поясніть “JavaScript module pattern” і де він (патерн) застосовується<ul><li>Бонус, якщо згадана чистота глобального простору імен</li><li>Що, якщо Ваш модуль не укладено в простір імен?</li></ul></li><li>Як Ви організуєте свій код? (module pattern, наслідування)</li><li>У чому різниця між host-об’єктами і нативними об’єктами?</li><li>У чому різниця між останніми двома рядками:</li></ul><pre class="language-javascript"><code class="language-javascript"><span class="token keyword">function</span> <span class="token function">Person</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span>
<span class="token keyword">var</span> person <span class="token operator">=</span> <span class="token function">Person</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">var</span> person <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Person</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre><ul><li>У чому різниця між <code>.call</code> і<code>.apply</code>?</li><li>Що робить і для чого потрібен метод <code>Function.prototype.bind</code>?</li><li>Коли Ви оптимізуєте свій код?</li><li>Поясніть, як працює наслідування в JavaScript?</li><li>Де досі використовується <code>document.write ()</code>?<ul><li>У більшості згенерованих банерів, хоча так робити не рекомендується</li></ul></li><li>У чому різниця між feature detection (визначення можливостей браузера), feature inference (припущення можливостей) і аналізом рядку user-agent?</li><li>Розкажіть про AJAX якомога детальніше</li><li>Поясніть, як працює JSONP (і чому це не справжній AJAX)</li><li>Чи використовували Ви коли-небудь шаблонізації на JavaScript?<ul><li>Якщо так, які бібліотеки використовували? (Mustache.js, Handlebars etc.)</li></ul></li><li>Поясніть, що таке “hoisting”</li><li>Поясніть event bubbling</li><li>У чому різниця між “атрибутом” (attribute) і “властивістю” (property)?</li><li>Чому <em>не слід</em> розширювати нативні JavaScript об’єкти?</li><li>Коли <em>слід</em> розширювати нативні JavaScript об’єкти?</li><li>У чому різниця між подіями <code>document load</code> і <code>document ready</code>?</li><li>У чому різниця між <code>==</code> і <code>===</code>?</li><li>Як отримати параметри з URLа поточного вікна?</li><li>Поясніть <code>same-origin policy</code> в контексті JavaScript</li><li>Розкажіть про <code>event delegation</code></li><li>Які Ви знаєте патерни організації наслідування в JavaScript?</li><li>Зробіть так, щоб цей код працював:</li></ul><pre class="language-javascript"><code class="language-javascript"><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">duplicator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// [1,2,3,4,5,1,2,3,4,5]</span></code></pre><ul><li>Опишіть принцип мемоізаціі (уникнення повторних обчислень) в JavaScript</li><li>Чому тернарний оператор так називається?</li><li>Що таке тернарність функції?</li><li>Що робить рядок <code>&quot; use strict &quot;;</code>? Які переваги та недоліки від її використання?</li></ul><h4><a href="#toc"></a> <a name="jscode">Приклади на JavaScript</a></h4><pre class="language-javascript"><code class="language-javascript"><span class="token operator">~</span><span class="token operator">~</span><span class="token number">3.14</span></code></pre><p>Питання: Яке значення повертає цей фрагмент коду?<br><strong>Відповідь: 3</strong></p><pre class="language-javascript"><code class="language-javascript"><span class="token string">"i'm a lasagna hog"</span><span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">reverse</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre><p>Питання: Яке значення повертає цей фрагмент коду?<br><strong>Відповідь: “goh angasal a mi”</strong></p><pre class="language-javascript"><code class="language-javascript"><span class="token punctuation">(</span> window<span class="token punctuation">.</span>foo <span class="token operator">||</span> <span class="token punctuation">(</span> window<span class="token punctuation">.</span>foo <span class="token operator">=</span> <span class="token string">"bar"</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre><p>Питання: Чому дорівнює window.foo?<br><strong>Відповідь: “bar” (тільки якщо вираз window.foo був хибним, інакше змінна збереже своє початкове значення)</strong>,</p><pre class="language-javascript"><code class="language-javascript"><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token string">"Hello"</span><span class="token punctuation">;</span>
<span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">var</span> bar <span class="token operator">=</span> <span class="token string">" World"</span><span class="token punctuation">;</span>
<span class="token function">alert</span><span class="token punctuation">(</span>foo <span class="token operator">+</span> bar<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">alert</span><span class="token punctuation">(</span>foo <span class="token operator">+</span> bar<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre><p>Питання: Що покажуть ці два alert?<br><strong>Відповідь: “Hello World” и ReferenceError: bar is not defined</strong></p><pre class="language-javascript"><code class="language-javascript"><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
foo<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
foo<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre><p>Питання: Чому дорівнює foo.length?<br><strong>Відповідь: <code>2</code></strong></p><pre class="language-javascript"><code class="language-javascript"><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
foo<span class="token punctuation">.</span>bar <span class="token operator">=</span> <span class="token string">'hello'</span><span class="token punctuation">;</span></code></pre><p>Питання: Чому дорівнює foo.length?<br><strong>Відповідь: <code>undefined</code></strong></p><h4><a href="#toc"></a> <a name="jquery">Запитання по jQuery:</a></h4><ul><li>Розкажіть про “chaining”.</li><li>Розкажіть про “deferreds”.</li><li>Які Ви знаєте прийоми оптимізації коду, що використовує jQuery?</li><li>Що робить <code>.end()</code>?</li><li>Як додати простір імен до обробника подій? Для чого це потрібно?</li><li>Назвіть 4 різних види аргументів, які приймає функція jQuery()?<ul><li>Селектор (рядок), HTML (рядок), Callback (функція), HTMLElement, об’єкт, масив, масив елементів, об’єкт jQuery тощо.</li></ul></li><li>Що таке черга ефектів (fx queue)?</li><li>В чому різниця між <code>.get()</code>, <code>[]</code>, і <code>.eq()</code>?</li><li>В чому різниця між <code>.bind()</code>, <code>.live()</code>, і <code>.delegate()</code>?</li><li>В чому різниця між <code>$</code> і <code>$.fn</code>? Що таке <code>$.fn</code> взагалі?</li><li>Оптимізуйте даний селектор:</li></ul><pre class="language-javascript"><code class="language-javascript"><span class="token function">$</span><span class="token punctuation">(</span><span class="token string">".foo div#bar:eq(0)"</span><span class="token punctuation">)</span></code></pre><h4><a href="#toc"></a> <a name="css">Запитання по CSS:</a></h4><ul><li>Що таке “reset” CSS і для чого він потрібен?</li><li>Поясніть, що таке плаваючі елементи (floats) і як вони працюють?</li><li>Які ви знаєте методи заборони обтікання (clearing) і де які застосовуються?</li><li>Що таке CSS спрайт? Як вони реалізуються на сторінці або сайті?</li><li>Які Ваші улюблені методи підміни тексту картинкою (image replacement) і коли Ви їх використовуєте?</li><li>CSS property hacks, умовне підключення .css файлів…</li><li>Як Ви забезпечуєте відображення сторінок в старих / обмежених браузерах?<ul><li>Які прийоми / процеси Ви при цьому використовуєте?</li></ul></li><li>Якими способами можна візуально приховати елемент (залишивши його доступним для екранного диктора, екранного зчитувача)?</li><li>Ви коли-небудь використовували сіткову верстку (grid system, grid design)? Якщо так, яка Ваша улюблена?</li><li>Чи доводилося Вам використовувати або реалізовувати media queries або верстку під мобільні пристрої?</li><li>Чи доводилося Вам стилізувати SVG?</li><li>Як оптимізувати сторінки для друку?</li><li>Які є підводні камені в оптимізації продуктивності CSS?</li><li>Ви використовуєте CSS препроцесори? (SASS, Compass, Bourbon, Stylus, LESS)<ul><li>Якщо так, розкажіть, що Вам в них подобається і не подобається?</li></ul></li><li>Як Ви зверстаєте макет, який використовує нестандартні шрифти?<ul><li>Webfonts (сервіси на кшталт Google Webfonts, Typekit, Fontsquirrel etc.)</li></ul></li><li>Розкажіть, як браузер визначає, на які елементи накладати CSS стилі?</li><li>Чи доводилося стикатися з Retina-дисплеями?</li><li>Чи чули про систему БЕМ (Блок-Елемент-Модифікатор)?<ul><li>Якщо так, то в чому її суть? Розкажіть про систему нотифікації селектор.</li></ul></li></ul><h4><a href="#toc"></a> <a name="fun">“Світська бесіда”:</a></h4><ul><li>Найкрутіше, що Ви коли небудь робили і чим пишаєтесь?</li><li>Чи знаєте Ви секретний жест HTML5-банди?</li><li>(<a href="https://vimeo.com/18848658">неперекладаємий гумор</a>) Are you now, or have you ever been, on a boat.</li><li>Що Вам найбільше подобаються у Ваших інструментах розробника?</li><li>У Вас є якісь особисті проекти?</li><li>Візьміть аркуш паперу і напишіть в стовпчик букви A B C D E. Тепер відсортуйте стовпчик в алфавітному порядку за спаданням, не написавши жодного рядка коду.<ul><li>Засічіть, через скільки часу кандидат переверне аркуш</li></ul></li><li>Пірат або ніндзя?<ul><li>Бонус за комбінацію. Аргументовану. +2 за зомбі-пірат-ніндзя-мавпу</li></ul></li><li>Чим би Ви займалися, якщо не Web-розробкою?</li><li>Яка Ваша улюблена “фішка” Internet Explorer?</li><li>Закінчіть речення: Brendan Eich та Doug Crockford є __________ мови JavaScript.</li><li>jQuery: хороша бібліотека або велика бібліотека? Тема для дискусії…</li></ul></div><div class="content-edit"><a rel="external noreferrer noopener" target="_blank" href="https://github.com/h5bp/Front-end-Developer-Interview-Questions/tree/master/src/translations/ukrainian.md">Edit this page</a></div></main><footer class="footer"><p class="footer-text">Copyright &copy; 2012 - 2024. Contributors to <a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/main/CONTRIBUTORS.md">Front-end-Developer-Interview-Questions.</a><br>Curious about the project? <a href="/Front-end-Developer-Interview-Questions/about/">Read more about here</a>.</p></footer></div><script>console.log("%cA black belt is a white belt that didn't quit.","color: #fff; font-size: 20px; text-shadow: 1px 1px 1px #000; font-family: serif;");var navToggle=document.getElementById("navigation-toggle"),nav=document.getElementById("navigation");navToggle.addEventListener("click",function(){nav.classList.toggle("open")}),window.addEventListener("resize",function(){document.width>960?nav.classList.remove("active"):(nav.classList.add("no-motion"),setTimeout(function(){nav.classList.remove("no-motion")},250))});</script></body></html>