W tym miejscu zebrałem najczęściej zadawane pytania dotyczące języka JavaScript podczas rozmów rekrutacyjnych, zwanych również kwalifikacyjnymi na stanowisko Frontend developera.

Zanim przejdę do pytań, pozwól, że pokrótce wyjaśnię czym jest Javascript.

JavaScript to skryptowy język programowania używany zarówno w przeglądarce jak i po stronie stronie serwera, który umożliwia tworzenie interaktywnych stron internetowych.  

Podczas tworzenia stron internetowych  HTML i CSS są językami nadającymi strukturę i styl, natomiast JavaScript daje stronom internetowym interaktywne elementy, które angażują użytkownika.

JavaScript jest wykonywany przez silnik JavaScriptu w przeglądarce, po tym jak HTML i CSS zostaną już zaczytane i mamy kompletną stronę. Dzięki temu mamy pewność, że struktura i style strony są już na miejscu gdy JavaScript zaczyna pracę.

Zapraszam również do Pytań rekrutacyjnych HTML i Pytań rekrutacyjnych CSS

Więcej pytań rekrutacyjnych z odpowiedziami znajdziesz w ebooku, który przygotowałem specjalnie dla Ciebie

Co to jest Hoisting w JavaScript?

Hoisting polega na wynoszeniu deklaracji funkcji i zmiennych na sam początek kodu (Czyli na początek funkcji lub do zakresu globalnego, w zależności od tego, gdzie dana zmienna lub funkcja została zadeklarowana).

Co to znaczy dla nas? Możesz odwołać się do zmiennej lub funkcji zanim jeszcze zostanie zdefiniowana czyli zanim zostanie do niej przypisana jakaś wartość. Jeśli chciałbyś odwołać się do zmiennej przed jej zdefiniowaniem, w odpowiedzi otrzymamy 'undefined’. Dzieje się tak ponieważ zmienna jest zadeklarowana, ale nie jest zdefiniowana jej wartość

Co to są callbacki w JavaScript?

Callback czyli inaczej wywołanie zwrotne to funkcja, którą można przekazać jako argument do innej funkcji. Callback można wywołać z funkcji, do której została przekazana po zajściu jakiegoś zdarzenia. Typowym przypadkiem użycia callbacków jest funkcja setTimeout, która przyjmuje dwa parametry. Pierwszym parametrem jest funkcja, drugim czas, po jakim zostanie wykonana ta funkcja.

setTimeout(function() {
  console.log('Hello world');
}, 1000);

Funkcja callback jest wykonywana zazwyczaj po zakończeniu działania funkcji, do której została przesłana. Stąd też nazwa call back. Gdy będziesz uczył się dalej i dojdziesz do asynchroniczności to tam

Co to są domknięcia w JavaScript?

Domknięcia to jeden z podstawowych mechanizmów działania JavaScript. Domknięcie daje Ci dostęp z funkcji wewnętrznej do zasięgu funkcji zewnętrznej. Mówiąc bardziej obrazowo to stworzenie funkcji wewnątrz funkcji.

Ale po co ? Wewnętrzna funkcja ma dostęp do własnych zmiennych czyli zdefiniowanych przez nią samą oraz rodzica i są one niezależne od zmiennych zewnętrznych.

Najprościej możesz to zrozumieć na podstawie poniższej grafiki:

lexical search
źródło: https://www.codingem.com/javascript-closures/

Pomimo tego że funkcja, która jest najbardziej zagnieżdżona nie ma w swoim zakresie zdefiniowanych zmiennych age oraz msg to jest w stanie je wyświetlić bo ma dostęp do zakresu funkcji zewnętrznej. Wszystkie te zmienne będą dostępne tylko w zakresie funkcji info() a do msg mamy dostęp dlatego bo jest zdefiniowana w zakresie globalnym więc z każdego miejsca możemy ją odczytać.

Jaka jest różnica pomiędzy ” == ” a ” ===” w JavaScript?


Operator równości (==) i „ścisły „operator równości (===) są operatorami porównania. „===” może służyć do porównywania zarówno wartości, jak i typów, natomiast „==” może służyć tylko do porównywania wartości, czyli w tym przypadku nawet gdy dwie wartości będą miały różne typy to gdy je przyrównamy to dla języka JavaScript będą one równe .

Przykład

const x = 0;
const y = '0';

console.log(x === y);    // false
console.log(x == y);     // true

Jaka jest różnica między „null” a „undefined” w JavaScript?

undefined to wartość pierwotna, która jest przypisywana do zmiennej przed jej zainicjowaniem. Innymi słowy, jeśli zadeklarujesz zmienną, ale nie zainicjujesz wartości i będziesz chciał sprawdzić co zawiera ta zmienna to otrzymasz w consol.log( zmienna) „undefined”.

Wartość „null” można przypisać dowolnej zmiennej. Oznacza, że zmienna nie ma wartości.

Przykłady

const x = null;
  console.log(x);    // null
let x;
console.log(x);    // undefined