MC, 2025
Ilustracja do artykułu: Najčastejšie JavaScript interview questions: Tipy na úspešné odpovede

Najčastejšie JavaScript interview questions: Tipy na úspešné odpovede

Pripravujete sa na pracovný pohovor a chcete byť pripravení na otázky týkajúce sa JavaScriptu? Dobre, že ste sem prišli! Tento článok vám pomôže zvládnuť niektoré z najčastejších otázok na pohovore, ktoré sa týkajú JavaScriptu, a zároveň vám ponúkne užitočné príklady odpovedí. Pomôže vám to nielen prejsť pohovorom, ale aj lepšie pochopiť niektoré z kľúčových konceptov jazyka JavaScript.

1. Čo je to JavaScript a aké sú jeho základné vlastnosti?

JavaScript je skriptovací jazyk, ktorý umožňuje dynamické interakcie na webových stránkach. Je to jazyk, ktorý umožňuje vytvárať interaktívne prvky na stránkach, ako sú tlačidlá, formuláre, animácie a podobne. JavaScript je základným kameňom moderných webových aplikácií a je podporovaný väčšinou webových prehliadačov.

Medzi hlavné vlastnosti JavaScriptu patria:

  • Asynchrónnosť: JavaScript podporuje asynchrónne operácie ako AJAX, čo znamená, že umožňuje vykonávať operácie bez toho, aby zablokoval hlavnú vlákno aplikácie.
  • Event-driven: JavaScript je event-driven jazyk, čo znamená, že operácie sa vykonávajú v závislosti od udalostí, ako sú kliknutia na tlačidlá alebo iné interakcie používateľa.
  • Vysoká flexibilita: JavaScript je veľmi flexibilný jazyk, ktorý podporuje rôzne programovacie paradigmy, ako je objektovo-orientované programovanie, funkcionálne programovanie a ďalšie.

2. Aký je rozdiel medzi "null" a "undefined" v JavaScripte?

Obe hodnoty, null a undefined, sú špecifické pre JavaScript, ale majú odlišný význam a použitie.

  • undefined: Táto hodnota je priradená k premenným, ktoré sú deklarované, ale neboli ešte inicializované. Môžete ju získať aj v prípade, keď funkcia nevráti žiadnu hodnotu.
  • let x;
    console.log(x); // undefined
  • null: null je špeciálna hodnota, ktorá predstavuje "prázdny" alebo "neexistujúci" objekt. Je to hodnotová značka, ktorá explicitne hovorí, že premenná neobsahuje žiadny objekt.
  • let y = null;
    console.log(y); // null

3. Čo je to closure v JavaScripte?

Closure je mechanizmus v JavaScripte, ktorý umožňuje funkciám pristupovať k premenným definovaným v ich vonkajšom (uzatváracom) prostredí, aj keď už táto vonkajšia funkcia skončila svoj beh.

Príklad closure:

function outer() {
  let counter = 0;
  
  return function inner() {
    counter++;
    console.log(counter);
  };
}

const increment = outer();
increment(); // 1
increment(); // 2
increment(); // 3

V tomto príklade je funkcia inner uzavretá vo funkcii outer, takže má prístup k premennej counter, ktorá by inak bola nedostupná, keď outer skončí.

4. Aký je rozdiel medzi "==" a "===" v JavaScripte?

Rozdiel medzi == a === spočíva v tom, ako porovnávajú hodnoty. Zatiaľ čo == porovnáva hodnoty s automatickým pretypovaním, === porovnáva hodnoty aj typy, čo znamená, že musí byť rovnaký nielen výsledok, ale aj typ hodnoty.

  • ==: Porovnáva hodnoty s automatickým pretypovaním. Napríklad '5' == 5 vráti true, pretože JavaScript prekonvertuje reťazec na číslo pred porovnaním.
  • '5' == 5; // true
  • ===: Porovnáva hodnoty a typy. Takže '5' === 5 vráti false, pretože hodnoty sú rovnaké, ale typy sú rôzne (reťazec vs. číslo).
  • '5' === 5; // false

5. Vysvetlite, čo sú to "promisy" v JavaScripte.

Promisy sú špeciálny objekt v JavaScripte, ktorý predstavuje hodnotu, ktorá bude dostupná v budúcnosti. Pomáhajú pri práci s asynchrónnymi operáciami, ako je načítavanie dát z API alebo čítanie súborov. Promisy môžu byť v troch stavoch: pending (nevybavené), fulfilled (splnené) a rejected (odmietnuté).

Príklad použitia promisy:

let promise = new Promise(function(resolve, reject) {
  let success = true;
  
  if (success) {
    resolve("Operácia bola úspešná!");
  } else {
    reject("Nastala chyba.");
  }
});

promise
  .then(function(result) {
    console.log(result); // "Operácia bola úspešná!"
  })
  .catch(function(error) {
    console.log(error); // "Nastala chyba."
  });

V tomto príklade sa používa resolve() na vyriešenie promisy, ak operácia prebehne úspešne, alebo reject(), ak operácia zlyhá.

6. Čo je to "hoisting" v JavaScripte?

Hoisting je jav v JavaScripte, kde sa deklarácie premenných a funkcií presúvajú na vrchol svojho rozsahu (scope) počas kompilácie. To znamená, že aj keď deklarujete premennú alebo funkciu až po jej použití, JavaScript ju bude považovať za deklarovanú na začiatku kódu.

Príklad hoistingu s premennou:

console.log(x); // undefined
var x = 5;

Aj keď sa premenná x deklaruje až po jej použití, JavaScript ju bude považovať za definovanú, ale jej hodnota bude undefined až do okamihu, keď bude skutočne priradená.

7. Čo je to "event delegation" v JavaScripte?

Event delegation je technika v JavaScripte, ktorá umožňuje spracovávať udalosti pre viaceré prvky pomocou jediného poslucháča udalostí. Tento prístup zlepšuje výkon aplikácie, pretože sa vyhneme pridávaniu poslucháčov udalostí ku každému jednotlivému prvku.

Príklad event delegation:

document.getElementById("parent").addEventListener("click", function(event) {
  if (event.target && event.target.matches("button.classname")) {
    alert("Button clicked!");
  }
});

Tento kód deleguje spracovanie kliknutí na tlačidlá s triedou "classname" do rodičovského elementu. Pomocou event delegation môžeme dynamicky spracovávať udalosti pre nové prvky, ktoré sa pridajú do DOM.

Záver

JavaScript je rozsiahly jazyk, a tak aj otázky na pohovor môžu byť veľmi rôznorodé. Od základných otázok týkajúcich sa premenných až po pokročilé témy, ako sú promisy a closure. Je dôležité nielen rozumieť odpovediam, ale aj vedieť, ako ich vysvetliť jednoducho a jasne. Dúfame, že vám tento článok pomohol pripraviť sa na vaše ďalšie interview a že sa budete cítiť sebavedome v odpovediach na JavaScript interview questions!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: