15 lines
38 KiB
HTML
15 lines
38 KiB
HTML
<!doctype html><html lang="ro" itemscope itemtype="https://schema.org/Article"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Întrebări pentru interviu tehnic web 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="Întrebări pentru interviu tehnic web 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="Întrebări pentru interviu tehnic web 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/romanian/"><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="Întrebări pentru interviu tehnic web 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">Întrebări pentru interviu tehnic web front-end</h1></header><div class="content"><h1>Întrebări pentru interviu tehnic web front-end</h1><p>Acest fișier conține o serie de întrebări pentru interviuri tehnice pe partea<br>de front-end, care pot fi folosite pentru a verifica un potențial candidat. Nu<br>este deloc recomandat să fie folosite toate întrebările pentru un singur<br>candidat (ar lua câteva ore). Alegând câteva întrebări din această listă ar<br>trebui să te ajute în verificarea calităților pe care le urmărești.</p><p><strong>Notă:</strong> Ține minte că multe dintre întrebări au răspuns liber și ar<br>putea duce la discuții interesante care ți-ar putea spune mai multe despre<br>capacitățile persoanei.</p><h2 id="cuprins" tabindex="-1"><a class="header-anchor" href="#cuprins"></a> <a name="toc">Cuprins</a></h2><ol><li><a href="#general">Întrebări generale</a></li><li><a href="#html">Întrebări despre HTML</a></li><li><a href="#css">Întrebări despre CSS</a></li><li><a href="#js">Întrebări despre JS</a></li><li><a href="#testing">Întrebări despre testare</a></li><li><a href="#performance">Întrebări despre performanță</a></li><li><a href="#network">Întrebări despre rețea</a></li><li><a href="#jscode">Întrebări despre programare</a></li><li><a href="#fun">Întrebări amuzante</a></li></ol><h2 id="procesul-de-implicare" tabindex="-1"><a class="header-anchor" href="#procesul-de-implicare"></a> Procesul de implicare</h2><ol><li><a href="#contributors">Contribuitori</a></li><li><a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/CONTRIBUTING.md">Cum să contribui</a></li><li><a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/LICENSE.md">Licență</a></li></ol><h4><a href="#toc">[⬆]</a> <a name="general">Întrebări generale:</a></h4><ul><li>Ce ai învățat ieri/săptămâna asta?</li><li>Ce te fascinează sau interesează la programare?</li><li>Ce provocare tehnică ai întâmpinat recent și cum ai rezolvat-o?</li><li>Ce aspecte de UI, securitate, performanță, SEO, întreținere sau tehnologie<br>iei în considerare când construiești o aplicație web sau un site?</li><li>Povestește despre mediul de lucru preferat.</li><li>Îți poți descrie fluxul de lucru când creezi o pagină web?</li><li>Dacă ai 5 fișiere cu cod CSS, cum le poți integra cel mai bine în site?</li><li>Poți descrie diferența dintre “progressive enhancement” și “graceful<br>degradation”?</li><li>Cum ai optimiza resursele statice ale unui site?</li><li>Câte resurse poate un browser descărca de la un domeniu la un moment dat?<ul><li>Care sunt excepțiile?</li></ul></li><li>Numește 3 moduri pentru a scădea timpul de încărcare a paginii. (perceput<br>sau chiar timpul de descărcare)</li><li>Dacă intri într-un proiect și se folosesc taburi în loc de spații, ce faci?</li><li>Descrie modul în care ai crea o simplă pagină de prezentare.</li><li>Ce unelte folosești pentru a testa performanța codului pe care îl scrii?</li><li>Dacă ai putea învăța o tehnologie anul asta, care ar fi?</li><li>Explică importanța standardelor și a organismelor de standardizare.</li><li>Ce este “Flash of Unstyled Content”? Cum eviți FOUC?</li><li>Explică ce sunt screenreaders și ARIA și cum faci un site accesibil.</li><li>Compară părți bune și negative pentru animații CSS versus animații JavaScript.</li><li>Ce reprezintă CORS și ce probleme încearcă să rezolve?</li></ul><h4><a href="#toc">[⬆]</a> <a name="html">Întrebări despre HTML:</a></h4><ul><li>La ce este util <code>doctype</code>?</li><li>Care este diferența dintre “standards mode” și “quirks mode”?</li><li>Care este diferența dintre HTML și XHTML?</li><li>Apar probleme când servești pagini ca <code>application/xhtml+xml</code>?</li><li>Cum servești o pagină cu conținut în mai multe limbi?</li><li>La ce trebuie să fii atent când creezi un design sau dezvolți pentru site-uri<br>multilingve</li><li>La ce sunt utile atributele <code>data-</code>?</li><li>Considerând HTML5 ca o platformă web deschisă, care sunt parțile<br>componente alte HTML5?</li><li>Descrie diferența dintre <code>cookies</code>, <code>sessionStorage</code> și <code>localStorage</code>.</li><li>Descrie diferența dintre <code><script></code>, <code><script async></code> și <code><script defer></code>.</li><li>Ce înseamnă randare progresivă?</li><li>Ai folosit altceva în afară de HTML până acum?</li></ul><h4><a href="#toc">[⬆]</a> <a name="css">Întrebări despre CSS:</a></h4><ul><li>Care este diferența dintre clase și ID-uri în CSS?</li><li>Care este diferența între a ‘reseta’ și a ‘normaliza’ in CSS? Pe care ai<br>alege-o și de ce?</li><li>Descrie ‘Float’ și cum funcționează.</li><li>Descrie z-index și cum se formează stacking context.</li><li>Descrie BFC(Block Formatting Context) și cum funcționează.</li><li>Care sunt diferitele metode de a ‘curăța’ (clearing) și care este potrivită<br>pentru ce context?</li><li>Explică conceptul de CSS sprites și cum le-ai implementa pe o pagină sau<br>un site.</li><li>Care sunt tehnicile tale preferate pentru înlocuirea imaginilor și<br>când le folosești?</li><li>Hack-uri de proprietăți CSS, includerea condițională a fișierelor .css,<br>sau… altceva?</li><li>Cum servești pagini pentru browsere cu capabilități reduse?<ul><li>Ce procese/tehnici folosești?</li></ul></li><li>Care sunt diferitele modalități de a ascunde vizual conținut (dar sa-l<br>faci disponibil pentru cititoare de ecrane) ?</li><li>Ai folosit vreodată un sistem ‘grid’ și dacă da, ce preferi?</li><li>Ai folosit sau implementat ‘media queries’ sau interfețe/CSS specific<br>pentru mobile?</li><li>Ești familiar cu stilizarea unui SVG?</li><li>Cum optimizezi paginile pentru print?</li><li>Ceva ‘gotchas’ când scrii CSS eficient?</li><li>Care sunt avantajele/dezavantajele folosirii preprocesoarelor CSS (SASS,<br>Compass, Stylus, LESS)<ul><li>Descrie ce îți place respectiv nu îți place la preprocesoarele CSS pe<br>care le-ai folosit</li></ul></li><li>Cum ai implementa un design care folosește fonturi non-standard?</li><li>Explică cum un browser determina ce elemente se potrivesc unui selector CSS?</li><li>Descrie ‘pseudo-elements’ și explică la ce sunt folosite.</li><li>Explică, în cuvintele tale, conceptul “box model” și cum ai instrui<br>browser-ul, prin CSS, să redea aspectul în modele diferite.</li><li>Ce face <code>* { box-sizing: border-box; }</code>? Care sunt avantajele?</li><li>Ce proprietăți de display știi?</li><li>Care este diferența între <code>inline</code> și <code>inline-block</code>?</li><li>Care este diferența între poziționarea relativă, fixă, absolută și statică<br>a unui element?</li><li>C-ul din CSS vine de la Cascading. Cum este determinată prioritatea în<br>atribuirea stilului (câteva exemple)? Cum folosești acest sistem în avantajul<br>tău?</li><li>Ce framework CSS ai folosit local sau în producție? (Bootstrap, PureCSS,<br>Foundation etc.)<ul><li>Ce ai schimba / îmbunătăți la ele?</li></ul></li><li>Ai avut ocazia să te joci cu noile specificații pentru CSS Flexbox sau Grid?</li><li>Cum este design-ul ‘responsive’ diferit de cel ‘adaptive’?</li><li>Ai lucrat vreodată pentru retina display? Dacă da, când și ce tehnici ai<br>folosit?</li><li>Este vreun motiv pentru care ai vrea să folosești <code>translate()</code> în loc de<br><strong>poziționare absolută</strong> sau invers? De ce?</li></ul><h4><a href="#toc">[⬆]</a> <a name="js">Întrebări despre JS:</a></h4><ul><li>Explică “event delegation”.</li><li>Explică cum funcționează <code>this</code> în JavaScript.</li><li>Explică cum funcționează moștenirea prototipală.</li><li>Cum îți testezi codul JavaScript?</li><li>Ce părere ai despre AMD vs. CommonJS?</li><li>Explică de ce următoarea nu funcționează ca un IIFE: <code>function foo(){ }();</code><ul><li>Ce trebuie schimbat ca să o transformi într-o IIFE?</li></ul></li><li>Care este diferența dintre o variabilă care este: <code>null</code>, <code>undefined</code> sau<br><code>undeclared</code>?<ul><li>Cum ai face sa verifici după fiecare dintre stările acestea?</li></ul></li><li>Ce este un “closure” și cum/de ce ai folosi unul?</li><li>Care este un caz în care sunt folosite funcții anonime?</li><li>Cum îți organizezi codul? (module șablon, moștenire?)</li><li>Care este diferența dintre obiecte host și obiecte native?</li><li>Diferența dintre: <code>function Person(){}</code>, <code>var person = Person()</code> și<br><code>person = new Person()</code></li><li>Care este diferența dintre <code>.call</code> și <code>.apply</code>?</li><li>Explică <code>Function.prototype.bind</code>?</li><li>Când îți optimizezi codul?</li><li>Când ai folosi <code>document.write()</code>?</li><li>Care este diferența dintre ‘feature detection’, ‘feature inference’ și<br>folosirea șirului User Agent?</li><li>Explică AJAX cât mai detaliat posibil.</li><li>Explică cum funcționează JSONP (și cum nu este chiar AJAX).</li><li>Ai folosit vreodată templating JavaScript?<ul><li>Dacă da, ce librării ai folosit? (Mustache.js, Handlebars etc.)</li></ul></li><li>Explică “hoisting”.</li><li>Descrie “event bubbling”.</li><li>Care este diferența dintre un atribut și o proprietate?</li><li>De ce nu este o idee bună extinderea obiectelor JavaScript “built-in”?</li><li>Care este diferența dintre evenimentul “document load” și “document ready”?</li><li>Care este diferența dintre “==” și “===”?</li><li>Explică politica “same-origins” în legătură cu JavaScript.</li><li>Fă următorul cod să funcționeze:</li></ul><pre class="language-js"><code class="language-js"><span class="token function">duplicate</span><span class="token punctuation">(</span><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 punctuation">;</span> <span class="token comment">// [1,2,3,4,5,1,2,3,4,5]</span></code></pre><ul><li>Ce este o expresie ternară și ce indică cuvântul ternar?</li><li>Ce este <code>"use strict;"</code> și care sunt avantajele și dezavantajele folosirii<br>acestuia?</li><li>Creați o buclă for care iterează până la <code>100</code> și afișează <strong>“fizz”</strong><br>la multipli de <code>3</code>, <strong>“buzz”</strong> la multipli de <code>5</code> și <strong>“fizzbuzz”</strong> la<br>multipli de <code>3</code> și <code>5</code>.</li><li>De ce este, de regulă, o idee bună să nu poluezi scope-ul global al unui<br>website?</li><li>Explică ce este o ‘single page app’ și cum ai putea să improvizezi SEO-ul?</li><li>Care este gradul tău de experiență cu ‘Promises’ și/sau ‘polyfills’-ul lor?</li><li>Care sunt avantajele și dezavantajele in a folosi ‘Promises’ in loc de<br>‘callbacks’ ?</li><li>Care sunt avantajele și dezavantajele prin a scrie JavaScript într-o limbă ce<br>compilează JavaScript?</li><li>Ce unelte și tehnici folosești pentru a ‘depana’ (debug) JavaScript?</li><li>Ce construcții de limbaj folosești pentru a itera peste proprietățile obiectelor și<br>elementele listelor (array)?</li><li>Explică diferența dintre obiectele mutabile și imutabile.</li><li>Ce exemplu de obiect imutabil poți da în JavaScript?</li><li>Avantaje și dezavantaje a imutabilității?</li><li>Cum poți obține imutabilitate în propriul cod?</li><li>Explică diferența dintre funcțiile sincrone (synchronous) și<br>asincrone (asynchronous).</li><li>Ce este un ‘even loop’?</li><li>Care este diferența dintre ‘call stack’ și ‘task queue’?</li></ul><h4><a href="#toc">[⬆]</a> <a name="testing">Întrebări despre testare:</a></h4><ul><li>Care sunt avantajele/dezavantajele în a-ți testa codul?</li><li>Ce unelte ai folosi pentru a testa funcționalitatea codului?</li><li>Care este diferența dintre unitatea de testare (unit test) și testarea de<br>funcționalitate/integrare?</li><li>Care este scopul unei unelte de “style linting”?</li></ul><h4><a href="#toc">[⬆]</a> <a name="performance">Întrebări despre perfomanță:</a></h4><ul><li>Ce unelte ai folosi pentru a găsi bug-uri de performanță in codul tău?</li><li>Ce diferite metode prin care ai putea îmbunătăți performanța defilării<br>(scroll) a unui site știi?</li><li>Explică diferența dintre o schemă (layout), desenare (painting) și compoziție<br>(compositing).</li></ul><h4><a href="#toc">[⬆]</a> <a name="network">Întrebări despre rețea:</a></h4><ul><li>Tradițional, de ce a fost mai bine să servești resurse de pe mai multe domenii?</li><li>Încearcă să descrii cât mai bine ce se întâmplă din momentul în care scrii<br>un URL-ul a unui site în browser până când este complet încărcat pe ecranul tău.</li><li>Care sunt diferențele dintre Long-Polling, WebSockets și Server-Sent Events?</li><li>Explică semnificația următoarelor antete HTTP:<ul><li>Diferența dintre Expires, Date, Age și If-Modified</li><li>Do Not Track</li><li>Cache-Control</li><li>Transfer-Encoding</li><li>ETag</li><li>X-Frame-Options</li></ul></li><li>Care sunt acțiunile HTTP? Listează toate acțiunile HTTP pe care le ști și<br>explică-le.</li></ul><h4><a href="#toc">[⬆]</a> <a name="jscode">Întrebări despre cod:</a></h4><p><em>Întrebare: Care este valoarea lui <code>foo</code>?</em></p><pre class="language-js"><code class="language-js"><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token number">10</span> <span class="token operator">+</span> <span class="token string">'20'</span><span class="token punctuation">;</span></code></pre><p><em>Întrebare: Ce valoare returnează următorul cod?</em></p><pre class="language-javascript"><code class="language-javascript">console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token number">0.1</span> <span class="token operator">+</span> <span class="token number">0.2</span> <span class="token operator">==</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre><p><em>Întrebare: Cum ai face următoarea să funcționeze?</em></p><pre class="language-js"><code class="language-js"><span class="token function">add</span><span class="token punctuation">(</span><span class="token number">2</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 comment">// 7</span>
|
||
<span class="token function">add</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</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 comment">// 7</span></code></pre><p><em>Întrebare: Ce valoare este returnată de expresia următoare?</em></p><pre class="language-js"><code class="language-js"><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><em>Întrebare: Care este valoare lui <code>window.foo</code>?</em></p><pre class="language-js"><code class="language-js"><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><em>Întrebare: Care este rezultatul celor două apelări ale funcției alert?</em></p><pre class="language-js"><code class="language-js"><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><em>Întrebare: Care este valoarea lui <code>foo.length</code>?</em></p><pre class="language-js"><code class="language-js"><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><em>Întrebare: Care este valoarea lui <code>foo.x</code>?</em></p><pre class="language-js"><code class="language-js"><span class="token keyword">var</span> foo <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token literal-property property">n</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||
<span class="token keyword">var</span> bar <span class="token operator">=</span> foo<span class="token punctuation">;</span>
|
||
foo<span class="token punctuation">.</span>x <span class="token operator">=</span> foo <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token literal-property property">n</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre><p><em>Întrebare: Ce output printează acest cod?</em></p><pre class="language-js"><code class="language-js">console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'one'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token function">setTimeout</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>
|
||
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'two'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'three'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre><h4><a href="#toc">[⬆]</a> <a name="fun">Întrebări amuzante:</a></h4><ul><li>Povestește-mi despre un proiect mișto la care ai lucrat recent?</li><li>Ce îți place cel mai mult la uneltele de dezvoltare pe care le folosești?</li><li>Ai proiecte personale? Ce fel?</li><li>Care este funcționalitatea ta preferată din Internet Explorer?</li><li>Cum îți place cafeaua?</li></ul><h4><a href="#toc">[⬆]</a> <a name="contributors">Contribuitori:</a></h4><p>Acest document a început în 2009 ca o colaborare între<br><a href="https://twitter.com/paul_irish">@paul_irish</a><br><a href="https://twitter.com/bentruyman">@bentruyman</a><br><a href="https://twitter.com/cowboy">@cowboy</a><br><a href="https://twitter.com/ajpiano">@ajpiano</a><br><a href="https://twitter.com/slexaxton">@SlexAxton</a><br><a href="https://twitter.com/boazsender">@boazsender</a><br><a href="https://twitter.com/miketaylr">@miketaylr</a><br><a href="https://twitter.com/vladikoff">@vladikoff</a><br><a href="https://twitter.com/gf3">@gf3</a><br><a href="https://twitter.com/jon_neal">@jon_neal</a><br><a href="https://twitter.com/sambreed">@sambreed</a> și<br><a href="https://twitter.com/iansym">@iansym</a>.</p><p>De atunci au contribuit mai mult de <a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions/graphs/contributors">100 de<br>persoane</a>!</p></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/romanian.md">Edit this page</a></div></main><footer class="footer"><p class="footer-text">Copyright © 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> |