Professional Documents
Culture Documents
Pytania oglne:
1. Czego nauczye si wczoraj/w tym tygodniu?React Higher Order Components Sequelize ORM dla
NodeJs
2. Co pobudza lub interesuje ci w programowaniu?Oglnie swoboda w tworzeniu. Moliwo
automatyzacji i rozwizywania codziennych czynnoci / problemw. Wyzwania, lubi duba w
problemach i je rozwizywa. Zmusza do cigego samodoskonalenia si. Cigej nauki. Jest te
form rywalizacji w deniu do doskonaego kodu.
3. Jakie jest Twoje preferowane rodowisko programistyczne? (system operacyjny, edytor,
przegldarki, narzdzia itd.)Systemem operacyjny: Linuks Edytor: dla drobnych zmian Vim, do
projektw Visual Studio Code / Webstorm, czasami uywam Spacemacs Przegldarki: Chromium,
Firefox, Google Chrome (Unstable) Narzdzia: Webpack, Gulp, konsola, tiling window manager,
ag, grep
4. Opisz kolejne zadania podczas tworzenia strony internetowej?Najpierw zbieranie wymaga
klienta, funkcjonalnych i niefunkcjonalnych. Tworzenie rodowiska - skrypty suce do
budowania w rodowisku developerskim i produkcyjnym - webpack, gulp. Szkielet strony i
semantyka, wypenienie kontentem + poprawa semantyki, stylowanie, animacje, dodawanie
interaktywnoci,
5. Opisz rnic midzy stopniowym ulepszaniem (progressive enhancement) i wdziczn
degradacj (graceful degradation)?Graceful degradation - oprogramowanie / strona jest
tworzona dla uytkownikw uywajcych nowszych przegldarek, obsugujcych nowe
technologie, zapewniajc im pene user expirience. Stopniowo zmniejsza si user expirience dla
uytkownikw uywajcych starsze wersje przegldarek, wci zapewniajc im funkcjonalno
aplikacji / strony na podstawowym poziomie.Progressive enhancement - tworzenie aplikacji
strony zapewniajcej pewien poziom funkcjonalnoci dla wszystkich przegldarek, nastpnie
rozbudowuje si j o nowe funkcjonalnoci / features dla nowszych przegldarek.
6. Dodatkowe punkty za opisanie wykrywania obsugi cech (feature detection)
czenie plikw
Zmniejszenie rozmiaru plikw uglifyjs, minification, uywanie SVG, css sprites (jeden obrazek,
uywany wiele razy)
Zasoby CDN - mog by serwowane w zalenoci od odlegoci od uytkoniwka, response time etc
Buforowanie cachowanie
Przegldarka ma ustalony limit konkurencyjnych pocze dla jednej domeny. Uywajc wikszej
iloci domen mona obej to ograniczenie. Natomiast powoduje to opnienia (odpytywanie
serwerw dns etc.)
Postrzegane: - Critical CSS - Unikanie FOUC - Ograniczenie iloci fontw - jeeli fonty s adowane z
CDN (jak gogole fonts) - moe to spowodowa zaadowanie najpierw defaultowych / systemowych
fontw - Preloadowanie obrazkw poprzez ajax
Rzeczywiste: - Odpowiednia wielko plikw z obrazami, minifikacja css i js, czenie plikw css / js w
jeden - Serwer: cachowanie i gzip contentu
1. Jeli doczasz do projektu, w ktrym uywa si tabulacji, a ty uywasz spacji, co wtedy zrobisz?
1. Napisz prosty pokaz slajdw (Dodatkowe punkty, jeli nie uywasz JS)
2. Jakich narzdzi uywasz do sprawdzenia wydajnoci swojego kodu? (Profiler, JSPerf, Dromaeo)
Podnie swj poziom znajomoci i uywania functional programming, nauczy si React Native
Pytania HTML:
1. Co robi doctype i jakie znasz przykady?
HTML 4.01 Strict This DTD contains all HTML elements and attributes, but does NOT INCLUDE
presentational or deprecated elements (like font). Framesets are not allowed.
HTML 4.01 Transitional This DTD contains all HTML elements and attributes, INCLUDING
presentational and deprecated elements (like font). Framesets are not allowed.
HTML 4.01 Frameset This DTD is equal to HTML 4.01 Transitional, but allows the use of frameset
content.
XHTML 1.0 Strict This DTD contains all HTML elements and attributes, but does NOT INCLUDE
presentational or deprecated elements (like font). Framesets are not allowed. The markup must
also be written as well-formed XML.
...
XHTML 1.1 This DTD is equal to XHTML 1.0 Strict, but allows you to add modules (for example to
provide ruby support for East-Asian languages).
1. Jaka jest rnica midzy trybem standardw a trybem dziwactw (quirks mode)?
quirks mode - dla starych przegldarek navigator i ie 5 standards mode - zgodne ze wspczenymi
specyfikacjami CSS i HTML application/xhtml+xml - jest zawsze w standards mode, nie potrzebuje
doctype
Obsugiwany od ie9, w ie8 otwiera dialog pobierania. Serwery kaszujce przy zapytaniu z
content-type ... mog zwrci przegldarce nie obsugujcej tego typu (jak ie6) przy zapytaniu o
stron. Przegldarki wywietl bdy xml (jeli jakie bd) na stronie.
When a browser reads XML it uses an XML parser, not an HTML parser.
Unfortunately, up to and including version 8, Internet Explorer doesn't support files served as XML,
although a number of other browsers do. To get around the fact that not all browsers support
content served as XML, many XHTML files are actually served using the text/html MIME type. In this
case, the user agent will read the file as if it were HTML, and use the HTML parser.
Since the browser considers the XML to actually be HTML, you need to take into account some of
the differences between the two formats when writing your XHTML code, to ensure that the
differences between XML and HTML syntax do not trip up the browser. This includes different ways
of declaring the character encoding or language declarations inside the document. 3
Use lang (or xml:lang for XHTML) in tags. Also metadata and Content-Language HTTP header can be
used.
1. Rozpatrujemy HTML5 jako otwart platform internetow. Jakie skadniki tworz HTML5?
more semantic text markup new form elements vedio and audio new javascript API canvas and SVG
new communication API geolocation API web worker API new data storage
Cookie:
Max size of 4093 bytes Can set expiration date Sent on every request
sessionStorage:
Max size of 2.5MBs+ depending on browser Stored in browser and not sent with every request If
you close a tab using sessionStorage, open a new tab, or exit the browser - you'll lose that specific
sessionStorage data.
localStorage:
Max size of 2.5MBs+ depending on browser Stored in browser and not sent with every request Will
persist if browser/tabs are closed.
Pytania JS JS Questions:
Delegacja zdarze / eventw polega na przypiciu obsugi zdarzenia (event handler) do elementu
nadrzdnego, zamiast do elementu ktry chcemy obsuy. Po klikniciu na element wewntrzny,
event bubbles up (bbluje do gry) dochodzc do elementu z przypisanym handlerem. Nastpnie
za pomoc event.target moemy sprawdzi gdzie zdarzy si event i wykona go na odpowiednim
elemencie. Dziki temu moemy obsuy zdarzenia wystpujce na wielu elementach, za pomoc
jednego handlera.
Waciwo this oglnie wskazuje na kontekst w jakim dana funkcja zostaa wywoana. Przechowuje
warto obiektu w kontekcie jakiego dana funkcja zostaa uruchomiona. This jest definiowane /
ustawiane nie w momencie deklarowania w kodzie, ale w momencie wywoania funkcji.
function ab() { this } - window (poniewa window.ab) var obj = { fun: ab }; obj.fun(); - obj var obj = {
fun: function() { ab(); }} - window ab.call(obj) - obj const a = ab.bind(obj) - obj
Kady obiekt w JS jest wewntrznie poczony z innym obiektem, z ktrego "dziedziczy", za pomoc
prototypu. acuch prototypw koczy si, gdy ostatni z obiektw w acuchu ma prototyp o
wartoci null. Wyszukujc waciwoci w danym obiekcznie, jeli ich nie znajdzie, interpreter JS
przeszukuje obiekty, ktre s w acuchu prototypw.
Obie specyfikacje opisuj format i sposb w jaki moduy i ich zalenoci powinnyby definiowane;
Poniewa jest to deklaracja funkcji, a nie function expression. // wyraenie funkcyjne? Mona to
zapisa jako
1. What's the difference between a variable that is: null, undefined or undeclared?
undeclared jest to zmienna, ktra nie zostaa stworzona za pomoc var/let/const, a wic zostaa
stworzona na obiekcie globalnym window/global.
undefined jest to zmienna, ktra zostaa zadeklarowana, ale nie zostaa do niej przypisana adna
warto
null jest to typ, ktry ma przypisan tylko jedn warto null, zmienna zostaa zadeklrowana i
przypisny do niej obiekt typu Null
Closure - domknicie - pozwala na dostp do wewntrznego scope funkcji, nawet po jej wykonaniu.
Osiga si to poprzez zwrcenie funkcji po wywoaniu fukncji nadrzdnej.
Host objects s to obiekty dostarczane przez przegldark - rodowisko - mog si one rni
pomdzy rodowiskami. Natomiast native objects s to obiecty opisane w specyfikacji ECMAScript,
jak Array.
1. Difference between: function Person(){}, var person = Person(), and var person = new Person()?
jest to deklaracja funkcji, przypisyje nazw do funkcji
przypisuje do zmiennej person warto zwracan przez funkcj person, w tym przypadku
undefined
przypisuje do zmiennej person obiekt typu Person, z this przypisanym do obiektu person
1. Explain Function.prototype.bind.
Bind pozwala przypisa this do kontektu jaki chcemy, zwracajc now funkcj z przypisanym
kontektem. Pozwala on take przypisa domylne argumenty dla zwracanej funkcji.
Feauture detection jest to wykrywanie, czy dany ficzer / waciwo / funkcjonalno / jest dostpny
w rodowisku wykonywalnym
Feauture inference polega na zaeniu, e jeli dana funkcjonalno jest dostpna w danej wersji
przegldarki, to caa reszta funkcjonalnoci take. Uywa si ich wtedy bez sprawdzania czy istniej,
co moe prowadzi do bdw.
UA string czyli User Agent string domylnie zwraca wersj przegldarki jaka wykonuje zapytanie,
jaka uruchamia danych skrypt js. UA string moe by zmieniany przez klienta.
1. Have you ever used JavaScript templating? If so, what libraries have you used?
Uywaem jedynie Handlebars do prostych skryptw wymagajcych wypeniania duej iloci danych
w ptli.
1. Explain "hoisting".
Hoisting jest to "wynoszenie" przez lexer / interpreter JS zmiennych i funkcji zadeklarowanych jako
var oraz przez uzycie function. Zmienne maj nadan nazw, ale nie maj przypisanej wartoci,
wic s to zmienne undefined.
Bubbling jest to wynoszenie / przechodzenie eventu do gry drzewa DOM. Jeli uytkownik wykona
jak akcj na elemencie zagniedonym w drzewie dom, wszyscy rodzice tego elementu s o tym
powiadmiani.
Atrybut jest to warto w samym HTML, ktra jest zawsze stringiem Property jest przypisana do
obiektu w drzewie DOM, moe mie rne typy jak String, Number
event DOMContentLoaded jest uruchamiany, gdy HTML zosta zaadowany i drzewo DOM
zbudowane natomiast event load, gdy caa strona, wcznie z css, grafik zostay zaadowane.
== porwnuje wartoci, dokonujc koercji jeli typy zmiennych nie s jednakowe === porwnuje
wartoci jak i typy zmiennych, nie dokonujc koercji
1. Why is it called a Ternary expression, what does the word "Ternary" indicate?
Ternary expression nazywa si tak poniewa skada si / przyjmuje trzy argumenty. Wyraenie
zwracajce Boolean, warto dla true i warto dla false.
1. What is "use strict";? what are the advantages and disadvantages to using it?
Cig znakw "use strict"; na pocztku skryptu przecza interpeter JS w strict mode. Jest to bardziej
restrykcyjny tryb, posiadajcy wicej restrykcji ni tryb zwyky, pozwalajcy na wyeliminowanie
niektrych bdw, jak np ustawianie this na globalny kontekst wewntrz funkcji etc.
1. Create a for loop that iterates up to 100 while outputting "fizz" at multiples of 3, "buzz" at
multiples of 5 and "fizzbuzz" at multiples of 3 and 5
1. Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?
Poniewa moemy zmieni warto, nadpisa zmienne uywane przez inne skrypty.
1. Why would you use something like the load event? Does this event have disadvantages? Do you
know any alternatives, and why would you use those?
Load event pozwala na powiadomienie skryptu, e wszystkie zasoby strony zostay zaadowane. Po
odpaleniu takiego eventu moemy by pewni, e zdjcia oraz css zostay zaadowane, oraz drzewo
DOM zostao zbudowane. Uybym load gdyby od razu po zaadowaniu strony chcia np pobra
wielko obrazkw, sprawdzi styl danego elementu.
1. Explain what a single page app is and how to make one SEO-friendly.
2. What is the extent of your experience with Promises and/or their polyfills?
3. What are the pros and cons of using Promises instead of callbacks?
4. What are some of the advantages/disadvantages of writing JavaScript code in a language that
compiles to JavaScript?
Plusy: Zalenie od jzyka w jakim piszemy. Jzyk moe zawiera static typing, co pomaga w
programowaniu i wyapywaniu bdw ju na etapie kodowania etc. Moe on eliminowa wszystkie
dziwactwa JS jak scope, hoisting.
Minusy: gwnie to, e trzeba kompilowa js po kadej zmianie, kod wynikowy jest inny ni kod,
ktry piszemy kod, mimo e jest optymalizowany musi zawiera sporo boilerplate i polyfillw, co
zwiksza jego objto
1. What language constructions do you use for iterating over object properties and array items?
2. cons:
wiksze zuycie zasobw, gwnie pamici z powodu kopiowania obiektw (structural sharing
zmniejsza wykorzystanie)
ciko budowa struktury cykliczne jak grafy
Testing Questions:
Testowanie kodu (testy jednostkowe) zapewniaj, e kod dziaa tak jak powinien, pozwala
prowadzi refaktoryzacj kodu i sprawdza, czy nic nie zostao zepsute.
Minusem jest to, e testy take potrzebuj refaktoryzacji oraz jest to znacznie wicej kodu do
konserwacji.
jasmine - tdd framework, karma - tests runner selenium driver - testowanie funkcjonowania strony
/ aplikacji
unit test s to testy jednostkowe, sprawdzajce czy poszczeglne funkcje dziaaj poprawnie
natomiast functional / integration tests sprawdzaj dziaanie wikszych czci systemu, lub systemu
jako caoci, jak komponenty systemu funkcjonuj midzy sob etc.
Performance Questions:
1. What tools would you use to find a performance bug in your code?
Chrome profiler
1. What are some ways you may improve your website's scrolling performance?
layout - jest to faza, w ktrej przegldarka sprawdza ile miejsca potrzeba dla kadego komponentu
na stronie painting - wypenianie pixeli, rysowanie tekstw, kolorw, grafiki compositing - skadanie
komponentw i wywieltanie ich we waciwej kolejnoci, na waciwym miejscu - renderowanie
caej strony
Network Questions:
1. Traditionally, why has it been better to serve site assets from multiple domains?
2. Do your best to describe the process from the time you type in a website's URL to it finishing
loading on your screen.
3. What are the differences between Long-Polling, Websockets and Server-Sent Events?
4. Explain the following request and response headers:
Expires - definiuje dat w ktrej wano cachowanego zasobu traci wano. Po tej dacie
przegldarka zarzda wieej kopi danych. Jeli ustawione jest max-age, max-age jest waniejsze od
Expires, wyraane w sekundach.
If-Modified-Since - jeli zasb nie by zmieniany od daty, serwer zwrci kod 304 - not changed
Do Not Track - request header zaznaczajcy, e uytkownik nie yczy sobie ledzenia Cache-Control
- "wcza" cachowanie w przegldarce, bez tego headeru przegldarka za kadym razem bdzie
daa nowych / wiezych danych Transfer-Encoding - ustala w jakiej formie zwracane bd dane
(chunked, compres, deflate, gzip) ETag - najczciej jest to suma kontrolna zasobw, jeli jest rna
ni najwiesza, uytkownik otrzymuje nowe dane / zasoby X-Frame-Options - ustala, czy strona
powinna (lub z jakimi restrykcjami) wywietla strony w iframe
1. What are HTTP methods? List all HTTP methods that you know, and explain them.
Coding Questions:
add(2, 5); // 7
add(2)(5); // 7
function add(a, b) {
if (a && b) return a + b;
return function add2(b) {
return a + b;
}
}
console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');
Fun Questions:
What's a cool project that you've recently worked on? What are some things you like about the
developer tools you use? Who inspires you in the front-end community? Do you have any pet
projects? What kind? What's your favorite feature of Internet Explorer? How do you like your coffee?
Pytania jQuery:
Wyjanij termin "chaining".
Chaining polega na tym, e wikszo metod jquery po wywoaniu, zwraca nowy obiekt jQuery, na
ktrym moemy uy kolejnych metod.
always - wykonuje si zawsze niezalenie czy deffered zwrcio reject, czy resolve done - gdy
deffered zwrci resolved fail - gdy deffered zwrci rejected pipe - suy do filtrowania i czenia
deffereds w acuchy
.detach() - usunicie elementu z drzewa DOM, gdy na nim intensywnie pracujemy, nastpnie
.append()
unikanie zbyt duej specyficznoci selektorw
uywanie #id w selektorach
uywanie for, zamiast each
dodawanie kontekstu do selectorw (np selector .class kontekst #id)
cachowanie cachowanie obiektw / selectorw w zmiennych
uywanie css zamiast width height - unikanie reflow w przegldarce
uywanie find
event delegation - uywanie on na elementcie nadrzdnym i podawanie elementw na ktrych
ma by wywoany event, uywanie this
nie uywanie append w ptlach
Co robi .end()?
end() przywraca poprzedni obiekt (czy stan obiektu) w acuchu wywoa (chain), tzn jeli
utworzymy obiekt jQuery z selectora (np p - paragraf) nastpnie uyjemy find do wyszukania
wszystkich spanw w paragrafie, zmienimy ich kolor za pomoc metody css na czerwony, to
uywajc end wrcimy do obiektu z pierwszego selectora (p) i na nim bdziemy operowa, nie na
obiektach z wywoanai find.
selector
DOM Element
obiekt jQuery do sklonowania
tablica elemetw DOM
obiekt js
Jest do przypisana do elementu kolejka funkcji jakie zostan na nim wywoane. Funkcje s
wywoywane asynchronicznie. Element moe mie wiele przypisanych kolejek, identyfikowanych po
nazwie, defaultowa nosi nazw fx.
eq(index) zwraca object jQuery get(index?) zwraca element / tablic elementw DOM [] zwraca
element DOM, natomiast nie moe uywa negatywnych indeksw
.bind() - dodaje event bezporednio do elementu w drzewie DOM, jak addEventListener .live() -
dodaje event handler do root elementu w dokumencie razem z selectorem, dziaa na zasadzie
delegacji eventw, czyli przypina si tylko raz, moe wykona si na kilku elementach, deperecated
od 1.7 .delegate() - robi to samo co metoda live, natomiast moemy poda element do ktrego
handler ma by przyczepiony .on() - w zalenoci od tego jak zostanie wywoana, stosuje te same
metody obsugi eventw jak bind i delegate
$ jest funkcj - aliasem do funkcji jQuery $.fn jest waciwoci tej funkcji wskazujc na prototyp
wewntrznej funkcji init w jQuery (suy do tworzenia instancji obiektu jQuery). Jeli dodamy
waciwo / funkcj do $.fn bdzie ona dostpna we wszystkich instancjach stworzonych przez $ /
jQuery. Suy do tworzenia pluginw.
Pytania CSS:
Jaka jest rnica midy klas a id
ID: jeden element moe posiada tylko jedno id id musi by unikatowe w caym dokumencie
specificity id jest wiksze od specificity klasy
class: jeden element moe posiada wiele klas, jedna klasa moe by przypisana do wielu
elementw klasa nie musi by unikatowa w caym dokumencie
Opisz, czym jest plik "reset" dla CSS i dlaczego jest uyteczny.
Reset jest to specjalny zestaw regu usuwajcych wszystkie domylne style ze wszystkich elementw.
Waciwo float "wyjmuje" element z normal document flow, i przesuwa go do lewej lub prawej
krawdzi zawierajcego go kontenera, w zalenoci od parametru. Jeli jest miejsce w kontenerze
nadrzdnym pozostaa tre bdzie opywa kontener z float. Kilka elementw z float s ustawiane
obok siebie (jeli maj podan ten sam kierunek i jeli jest miejsce w nadrzdnym kontenerze). Jeli
element jest opisany waciwoci float, zachowuje si jak element block, float nie wspgra z
position: fixed i position: absolute,
Jakie znasz techniki kasowania (clearing) i kiedy wskazane jest ich stosowanie?
clear: left right both - oznacza, e grna krawd elementu powinna znajdowa si pod elementem
z float left, right, lub obojtnie jakim float w nadrzdnym elemencie
.clearfix - dodaje pseudo elementy przed i po elementem i ustawia na nich clear both
CSS clip position: absolute !important; clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ clip: rect(1px, 1px,
1px, 1px);
Positioning content off-screen The following are the recommended styles for visually hiding content
that will be read by a screen reader. .hidden {position:absolute; left:-10000px; top:auto; width:1px;
height:1px; overflow:hidden;}
Responsive: There is one basic layout, and it changes responsively to screen changes Adaptive: For
each possible screen size, there is a distinct layout.
box-sizing: content-box - width okrela content + padding + border + margin padding-box - width
okrela content i padding + border + margin border-box - width okrela content i padding i border +
margin
Haczyki waciwoci CSS, warunkowe doczanie plikw .css lub... co innego?
A block formatting context is a part of a visual CSS rendering of a Web page. It is the region in which
the layout of block boxes occurs and in which floats interact with each other.
the root element or something that contains it floats (elements where float is not none) absolutely
positioned elements (elements where position is absolute or fixed) inline-blocks (elements with
display: inline-block) table cells (elements with display: table-cell, which is the default for HTML
table cells) table captions (elements with display: table-caption, which is the default for HTML table
captions) block elements where overflow has a value other than visible display: flow-root
Jak serwujesz strony dla przegldarek z ograniczonym wsparciem funkcji? Jakie techniki stosujesz?
Jakie istniej sposoby wizualnego ukrycia treci (uczynienia ich dostpnymi tylko dla czytnikw
ekranu)? Czy kiedykolwiek uywae systemw siatek, a jeli tak, to jakie preferujesz? Czy uywae
'media queries' lub tworzye konkretne ukady i arkusze dla urzdze mobilnych? Czy miae
styczno ze stylizacj SVG? Jak optymalizujesz swoje strony do druku? Jakie stosujesz "sztuczki"
przy pisaniu efektywnych CSS? Czy uywasz narzdzi do przetwarzania CSS? (SASS, Compass, Stylus,
LESS) Jeli tak, opisz cechy, ktre lubisz i nie lubisz w uywanych narzdziach. Jak tworzysz i
wdraasz projekt uywajcy niestandardowych czcionek? Czcionki sieciowe (serwisy czcionek jak:
Google Webfonts, Typekit itd.) Wyjanij jak przegldarka okrela elementy pasujce do selektora
CSS?
Z-index: jeli element znajduje si w innym elemencie i si pokrywaj, element wewntrzny jest na
wierzchu jeli elementy nastpuj kolejno po sobie, element kolejny jest na wierzchu
position: absolute i fixed zmieniaj to, pokazujc si zawsze ponad elementami static i relative
jeli chcemy uywa z-index, element musi mie position relative, fixed lub absolute
stops rendering process, and download and run a script. don't stop rendering process while
asynchronously downloading a script. When finishing download, it stops rendering and runs the
script. don't stop rendering process while asynchronously downloading a script. When finishing
rendering, it runs the script.