1 line
37 KiB
HTML
1 line
37 KiB
HTML
<!doctype html><html lang="en" 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 Job 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 Job Interview Questions"><meta itemprop="author" content="Front-end Job Interview Questions"><meta itemprop="name" content="Питання кандидату на посаду front-end розробника ★ Front-end Job 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.github.io/Front-end-Developer-Interview-Questions/assets/images/og-image.png"><meta property="og:title" content="Питання кандидату на посаду front-end розробника ★ Front-end Job 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.github.io/Front-end-Developer-Interview-Questions/translations/ukrainian/"><meta property="og:site_name" content="Front-end Job Interview Questions"><meta property="og:image" content="https://h5bp.github.io/Front-end-Developer-Interview-Questions/assets/images/og-image.png"><meta property="og:image:secure_url" content="/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 Job 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.github.io/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="/assets/images/apple-touch-icon.png"><link type="image/png" sizes="32x32" rel="icon" href="/assets/images/favicon-32x32.png"><link type="image/png" sizes="16x16" rel="icon" href="/assets/images/favicon-32x32.png"><link type="image/png" color="#181818" rel="mask-icon" href="/assets/images/favicon-96x96.png"><meta name="mobile-web-app-capable" content="yes"><meta name="robots" content="index,follow"><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:#1d1f21}: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}*{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;margin-bottom:1rem}.navigation{list-style:none;display:flex;font-size:1rem}.navigation-item-emoji{margin-right:.8rem}.navigation-item-emoji a{text-decoration:none;display:inline-block;vertical-align:middle}.navigation-item:not(:last-of-type){margin-right:.8rem}.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: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(/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}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:focus:not(.skip-link),a:hover: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:700;display:inline-block;width:1em;margin-left:-1em}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]{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 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}.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:.6rem}.inline-list li a{display:inline-block;vertical-align:middle;margin:0 .15rem}.avatar{max-width:12rem}.footer{padding-top:3rem}.footer-text{font-size:.8rem}</style></head><body><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"><li class="navigation-item"><span class="navigation-anchor">Questions:</span></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/coding-questions/" title="Coding Questions">Coding</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/css-questions/" title="CSS Questions">CSS</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/fun-questions/" title="Fun Questions">Fun</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/general-questions/" title="General Questions">General</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/html-questions/" title="HTML Questions">HTML</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/javascript-questions/" title="JavaScript Questions">JavaScript</a></li><li class="navigation-item"><a rel="external noreferrer noopener" target="_blank" class="navigation-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" href="/questions/network-questions/" title="Network Questions">Network</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/performance-questions/" title="Perfomance Questions">Perfomance</a></li><li class="navigation-item"><a class="navigation-anchor" href="/questions/testing-questions/" title="Testing Questions">Testing</a></li><li class="navigation-item">|</li><li class="navigation-item-emoji"><a class="navigation-anchor" href="/" title="Home">🏠</a></li><li class="navigation-item-emoji"><a class="navigation-anchor" href="/translations" title="Translations">🌐</a></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 розробника. Тут пропонуються лише ідеї, не варто задавати всі запитання відразу (інакше однієї години точно не вистачить).<br>Також, майте на увазі, що багато питань не потребують однозначної короткої відповіді, а лише допомагають завести бесіду на ту чи іншу тему (даючи змогу кандидату показати себе в усій красі).</p><h2 id="%D0%B7%D0%BC%D1%96%D1%81%D1%82"><a class="header-anchor" href="#%D0%B7%D0%BC%D1%96%D1%81%D1%82" aria-hidden="true"></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><ul><li>@bentruyman (<a href="http://bentruyman.com">http://bentruyman.com</a>)</li><li>@cowboy (<a href="http://benalman.com">http://benalman.com</a>)</li><li>@roger_raymond (<a href="http://twitter.com/iansym">http://twitter.com/iansym</a>)</li><li>@ajpiano (<a href="http://ajpiano.com">http://ajpiano.com</a>)</li><li>@paul_irish (<a href="http://paulirish.com">http://paulirish.com</a>)</li><li>@SlexAxton (<a href="http://alexsexton.com">http://alexsexton.com</a>)</li><li>@boazsender (<a href="http://boazsender.com">http://boazsender.com</a>)</li><li>@miketaylr (<a href="http://miketaylr.com">http://miketaylr.com</a>)</li><li>@vladikoff (<a href="http://vladfilippov.com">http://vladfilippov.com</a>)</li><li>@gf3 (<a href="http://gf3.ca">http://gf3.ca</a>)</li><li>@jon_neal (<a href="http://twitter.com/jon_neal">http://twitter.com/jon_neal</a>)</li><li>@wookiehangover (<a href="http://wookiehangover.com">http://wookiehangover.com</a>)</li><li>@darcy_clarke (<a href="http://darcyclarke.me">http://darcyclarke.me</a>)</li></ul><h4><a href="#toc">⬆</a> <a name="general">Загальні запитання:</a></h4><ul><li>Чи користуєтесь Ви Твіттером?<ul><li>Якщо так, то хто присутній в Вашій стрічці?</li></ul></li><li>Кого зі світових front-end розробників Ви знаєте?<ul><li>А українських чи російських front-end’щиків?</li></ul></li><li>Чи є у Вас аккаунт на GitHub?<ul><li>Якщо так, то за якими цікавими проектами Ви стежите?</li></ul></li><li>Які блоги Ви читаєте?</li><li>Які системи контролю версій Вам доводилось використовувати?</li><li>Розкажіть про своє середовище розробки (ОС, редактор, браузер(и), інші інструменти)</li><li>Опишіть послідовність Ваших дій, коли ви створюєте нову Web-сторінку</li><li>Чи можете ви пояснити у чому різниця між progressive enhancement і graceful degradation?<ul><li>Бонус, якщо кандидат також скаже про feature detection (визначення можливостей браузера)</li></ul></li><li>Поясніть, що означає поняття “Семантична розмітка”</li><li>Який Ваш основний браузер для розробки і якими інструментами в ньому Ви користуєтесь?</li><li>Як можна оптимізувати завантаження зовнішніх ресурсів на сторінці?<ul><li>Комбінація із потенційних рішень:<ul><li>Конкатенація</li><li>Мініфікація</li><li>Використання CDN</li><li>Кешування</li><li>тощо</li></ul></li></ul></li><li>Яка перевага в підвантаженні із зовнішніх ресурсів з декількох доменів?<ul><li>Скільки ресурсів одночасно браузер може завантажувати з одного домена?</li></ul></li><li>Назвіть три засоби зменшення часу завантаження сторінки (сприйманого або реального)</li><li>Якщо Ви прийшли на проект, де для форматуровання використовується табуляція, а Ви звикли використовувати пробіли, як Ви вчинете?<ul><li>Запропонуєте використовувати EditorConfig (<a href="http://editorconfig.org">http://editorconfig.org</a>)</li><li>Залишитеся вірним своїм звичкам</li><li>Виконаєте команду <code>:retab!</code></li></ul></li><li>Чи користуєтеся Ви засобами для прискорення написання коду (сніппети, Emmet)?</li><li>Чи знайомі Ви зі шаблонізаторами (Smarty, HAML, т.д.)</li><li>Реалізуйте примітивне слайдшоу<ul><li>Бонус, якщо Ви зробите це без використання JS</li></ul></li><li>Які інструменти Ви використовуєте для тестування продуктивності коду?<ul><li>JSPerf (<a href="http://jsperf.com/">http://jsperf.com/</a>)</li><li>Dromaeo (<a href="http://dromaeo.com/">http://dromaeo.com/</a>)</li><li>і т.д.</li></ul></li><li>Якщо б у Вас була можливість освоїти нову технологію в цьому році, що б це було?</li><li>Поясніть важливість стандартів і комітетів по стандартам</li><li>Що таке FOUC (Flash Of Unstyled Content)? Як його уникнути?</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"><div class="highlight-line"><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></div><div class="highlight-line"></div><div class="highlight-line"><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></div><div class="highlight-line"><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></div></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"><div class="highlight-line"><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></div></code></pre><ul><li>Опишіть принцип мемоізаціі (уникнення повторних обчислень) в JavaScript</li><li>Чому тернарний оператор так називається?</li><li>Що таке тернарність функції?</li><li>Що робить рядок <code>" use strict ";</code>? Які переваги та недоліки від її використання?</li></ul><h4><a href="#toc">⬆</a> <a name="jscode">Приклади на JavaScript</a></h4><pre class="language-javascript"><code class="language-javascript"><div class="highlight-line"><span class="token operator">~</span><span class="token operator">~</span><span class="token number">3.14</span></div></code></pre><p>Питання: Яке значення повертає цей фрагмент коду?<br><strong>Відповідь: 3</strong></p><pre class="language-javascript"><code class="language-javascript"><div class="highlight-line"><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></div></code></pre><p>Питання: Яке значення повертає цей фрагмент коду?<br><strong>Відповідь: "goh angasal a m’i"</strong></p><pre class="language-javascript"><code class="language-javascript"><div class="highlight-line"><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></div></code></pre><p>Питання: Чому дорівнює window.foo?<br><strong>Відповідь: “bar” (тільки якщо вираз window.foo був хибним, інакше змінна збереже своє початкове значення)</strong>,</p><pre class="language-javascript"><code class="language-javascript"><div class="highlight-line"><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token string">"Hello"</span><span class="token punctuation">;</span></div><div class="highlight-line"><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></div><div class="highlight-line"> <span class="token keyword">var</span> bar <span class="token operator">=</span> <span class="token string">" World"</span><span class="token punctuation">;</span></div><div class="highlight-line"> <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></div><div class="highlight-line"><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></div><div class="highlight-line"><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></div></code></pre><p>Питання: Що покажуть ці два alert?<br><strong>Відповідь: “Hello World” и ReferenceError: bar is not defined</strong></p><pre class="language-javascript"><code class="language-javascript"><div class="highlight-line"><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></div><div class="highlight-line">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></div><div class="highlight-line">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></div></code></pre><p>Питання: Чому дорівнює foo.length?<br><strong>Відповідь: <code>2</code></strong></p><pre class="language-javascript"><code class="language-javascript"><div class="highlight-line"><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></div><div class="highlight-line">foo<span class="token punctuation">.</span>bar <span class="token operator">=</span> <span class="token string">'hello'</span><span class="token punctuation">;</span></div></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"><div class="highlight-line"><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></div></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/index">Edit this page</a></div></main><footer class="footer"><p class="footer-text">Copyright (c) 2012 - 2018. Contributors to <a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions">Front-end-Developer-Interview-Questions.</a><br>This project is maintained by <a href="https://github.com/cezaraugusto" target="_blank" rel="noreferrer noopener">Cezar Augusto</a>, <a href="https://github.com/roblarsen" target="_blank" rel="noreferrer noopener">Rob Larsen</a> and <a href="https://github.com/vvscode" target="_blank" rel="noreferrer noopener">Vasiliy Vanchuk</a> .<br>Curious about the project? <a href="/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: 80px; text-shadow: 1px 1px 1px #000; font-family: serif;");</script></body></html> |