Mít JavaScript ve svém portfoliu zvyšuje šance na získání role vývojáře softwaru. To znamená, že se podívejme na často kladené otázky týkající se rozhovoru s JavaScriptem.
JavaScript je jedním z nejpoužívanějších jazyků ve vývoji webových aplikací. Nyní se používá k vývoji téměř všech typů aplikací.
Než se pustíme do otázek na pohovoru, podívejme se na výhody učení JavaScriptu.
JavaScript je lehký, interpretovaný nebo kompilovaný programovací jazyk just-in-time. Je to jeden ze základních jazyků celosvětové sítě. Znáte další dva základní jazyky www. Raději je vyhledejte, pokud ne.
JavaScript je vytvořen hlavně pro web. Ale to už není jen pro web. S pomocí prostředí jako Node, Deno atd.. jej můžeme provozovat téměř na jakékoli platformě.
Pojďme se podívat na některé jeho výhody.
Table of Contents
Výhody JavaScriptu
Jaké jsou datové typy v JavaScriptu?
Datové typy se používají k ukládání různých typů dat. Datové typy se budou lišit od jednoho programovacího jazyka k druhému. V JavaScriptu máme 8 datových typů. Podívejme se na ně jednoho po druhém.
- Číslo
- Tětiva
- Boolean
- Nedefinováno
- Nula
- BigInt
- Symbol
- Objekt
Všechny datové typy kromě Object se nazývají primitivní hodnoty. A jsou neměnné.
Jaké jsou vestavěné metody v JavaScriptu?
Vestavěné metody v JavaScriptu se pro každý datový typ liší. K těmto vestavěným metodám můžeme přistupovat pomocí příslušného datového typu. Podívejme se na některé vestavěné metody pro různé datové typy a datové struktury.
- na malá písmena
- začíná s
- chartAt
Pro každý datový typ existuje mnoho vestavěných metod. Můžete zkontrolovat odkazy pro všechny vestavěné metody různých datových typů a datových struktur.
Jak vytvořit pole v JavaScriptu?
Pole jsou jednou ze základních datových struktur v JavaScriptu. Pole mohou obsahovat jakýkoli typ dat, protože JavaScript je dynamický. Podívejme se, jak vytvořit pole v JavaScriptu.
Pole můžeme vytvořit pomocí hranatých závorek[]. Vytváření objektů je přímočaré a rychlé
// Empty array const arr = []; // Array with some random values const randomArr = [1, "One", true]; console.log(arr, randomArr);
Pole můžeme vytvořit pomocí konstruktoru Array. Lidé zřídka používají konstruktor k vytváření polí v obecných projektech.
// Empty array const arr = new Array(); // Array with some random values const randomArr = new Array(1, "One", true); console.log(arr, randomArr);
Pole JavaScriptu jsou proměnlivá, tj. po vytvoření je můžeme upravit, jak chceme.
Jak vytvořit objekt v JavaScriptu?
Kromě pole je objekt další základní datovou strukturou v JavaScriptu. Objekty používají ukládat páry klíč-hodnota. Klíč musí být neměnná hodnota, zatímco hodnota může být jakákoli. Podívejme se, jak vytvářet objekty v JavaScriptu.
Objekty můžeme vytvářet pomocí složených závorek {}. Vytváření objektů je přímočaré a rychlé.
// Empty object const object = {}; // Object with some random values const randomObject = { 1: 2, one: "Two", true: false }; console.log(object, randomObject);
Objekty můžeme vytvářet pomocí konstruktoru Object. Lidé to zřídka používají v obecných projektech.
// Empty object const object = new Object(); // Object with some random values const randomObject = new Object(); randomObject[1] = 2; randomObject["one"] = "Two"; randomObject[true] = false; console.log(object, randomObject);
Objekty JavaScriptu jsou proměnlivé, tj. můžeme je po vytvoření upravit, jak vidíte ve 2. příkladu.
Jak ladíte kód JavaScript?
Ladění kódu není přímočaré. A liší se to od jednoho programovacího jazyka k druhému, od jednoho projektu k druhému atd..; podívejme se na běžné věci používané k ladění JavaScriptu.
1. Logování
K identifikaci chyby můžeme použít příkazy console.log na více místech v našem kódu. Kód přestane spouštět další řádky kódu, když se na předchozím řádku vyskytne chyba.
Protokolování je jednou ze starých metod ladění, která je do značné míry účinná pro malé projekty. Je to běžná technika ladění pro jakýkoli programovací jazyk.
2. Nástroje pro vývojáře
JavaScript se většinou používá pro vývoj webových aplikací. Takže téměř všechny prohlížeče nyní mají vývojářské nástroje, které pomáhají ladit kód JavaScript.
Jednou z nejpoužívanějších metod ladění je nastavení bodů přerušení ve vývojářských nástrojích. Body přerušení zastaví provádění JavaScriptu a poskytují veškeré informace o aktuálním provádění.
Můžeme nastavit více bodů přerušení kolem místa, kde dochází k chybám, a zjistit, co to způsobuje. Je to nejefektivnější způsob ladění webových aplikací JavaScript.
3. IDE
K ladění JavaScriptu můžeme použít IDE. VS Code podporuje ladění pomocí bodů přerušení. Funkce ladění se může lišit v závislosti na IDE, které používáte. Většina IDE však tuto funkci bude mít.
Jak přidat kód JavaScript do souboru HTML?
Soubor JavaScript HTML můžeme přidat pomocí značky script. Můžete zkontrolovat příklad níže.
<!DOCTYPE html> <html lang="en"> <head> <title>etechblog.cz</title> </head> <body> <h1>etechblog.cz</h1> <script> // JavaScript code goes here console.log("This is JavaScript code"); </script> </body> </html>
Co jsou cookies?
Cookies jsou páry klíč-hodnota používané k ukládání malých informací. Informace může být jakákoli. Můžeme nastavit dobu vypršení platnosti souborů cookie, které budou po uplynutí doby platnosti smazány. Ty se široce používají k ukládání informací o uživatelích.
Soubory cookie nebudou vymazány, i když stránku obnovíme, dokud je nesmažeme nebo nevyprší jejich platnost. Soubory cookie libovolné webové aplikace/webové stránky můžete zkontrolovat v libovolném prohlížeči otevřením nástrojů pro vývojáře.
Jak číst cookie?
Soubor cookie můžeme číst v JavaScriptu pomocí document.cookie. Vrátí všechny soubory cookie, které jsme vytvořili.
console.log("All cookies", document.cookie);
Pokud nejsou žádné soubory cookie, vrátí prázdný řetězec.
Jak vytvořit a smazat cookie?
Soubory cookie můžeme vytvořit nastavením páru klíč–hodnota na document.cookie. Podívejme se na příklad.
document.cookie = "one=One;";
Ve výše uvedené syntaxi je klíč cookie one a One jeho hodnota. Do cookie můžeme přidat další atributy jako doména, cesta, expirace atd.; každý z nich by měl být oddělen středníkem (;). Všechny atributy jsou volitelné.
Podívejme se na příklad s atributy.
document.cookie = "one=One;expires=Jan 31 2023;path=/;";
Do výše uvedeného kódu jsme přidali datum vypršení platnosti a cestu k cookie. Pokud není uvedeno datum vypršení platnosti, bude cookie po relaci smazána. Výchozí cesta bude cesta k souboru. Formát data expirace by měl být v GMT.
Podívejme se, jak vytvořit více souborů cookie.
document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;";
Soubory cookie nebudou přepsány, pokud se klíč nebo cesta při nastavování více souborů cookie liší. Pokud jsou klíč a cesta stejné, přepíše předchozí cookie. Podívejte se na níže uvedený příklad, který přepíše předchozí nastavený soubor cookie.
document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "one=Two;path=/;";
Ze souboru cookie jsme odstranili datum vypršení platnosti a změnili hodnotu.
Při testování kódu, aby správně fungoval, použijte datum vypršení platnosti jako budoucí datum. Pokud zachováte stejné datum 31. ledna 2023 i po 31. lednu 2023, soubory cookie se nevytvoří.
Viděli jsme, jak vytvářet a aktualizovat soubory cookie. Podívejme se, jak smazat soubory cookie.
Smazání cookies je snadné. Stačí změnit datum vypršení platnosti souboru cookie na jakékoli minulé datum. Zkontrolujte příklad níže.
// Creating cookies document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;"; // Deleting the last cookie document.cookie = "three=Three;expires=Jan 1 2023;path=/;";
Poslední soubor cookie v souborech cookie nenajdete, protože je smazán na posledním řádku kódu. To je vše pro mini návod na sušenky.
Jaké jsou různé rámce JavaScriptu?
Existuje mnoho JavaScriptových frameworků. React, Vue, Angular, atd., pro vývoj uživatelského rozhraní. Express, Koa, Nest atd. pro vývoj na straně serveru. NextJS, Gatsby atd., pro generování statického webu. React Native, Ionic, atd., pro vývoj mobilních aplikací. Zmínili jsme zde některé rámce JavaScriptu. Můžete najít více rámců, jejichž prozkoumání zabere hodně času. Prozkoumejte je, když je potřebujete.
Uzávěry v JavaScriptu
Uzávěr je funkce spojená se svým lexikálním rozsahem a nadřazeným lexikálním prostředím. Díky uzavírkám máme přístup k datům vnějšího rozsahu. Uzávěry se tvoří při vytváření funkcí.
function outer() { const a = 1; function inner() { // We can access all the data from the outer function scope here // The data will be available even if we execute this function outside the outer function // as inners' closure formed while creating it console.log("Accessing a inside inner", a); } return inner; } const innerFn = outer(); innerFn();
Uzávěry jsou široce používány v aplikacích JavaScript. Možná jste je použili dříve, aniž byste si uvědomili, že se jedná o uzávěry. O uzavírkách se toho můžete dozvědět mnohem víc. Ujistěte se, že jste se tento koncept úplně naučili.
Zvednutí v JavaScriptu
Zvednutí je proces v JavaScriptu, kde se deklarace proměnných, funkcí a tříd přesune na vrchol rozsahu před spuštěním kódu.
// Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` var name = "etechblog.cz";
Pokud spustíte výše uvedený kód, neuvidíte žádnou chybu. Ale ve většině jazyků se zobrazí chyba. Výstup bude nedefinovaný, protože zvedání pouze přesune deklarace nahoru a inicializuje je až na řádku číslo 3.
Změňte var na let nebo const následovně a spusťte kód znovu.
// Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` const name = "etechblog.cz";
Nyní se zobrazí referenční chyba, která říká, že před inicializací proměnné nemůžeme přistupovat.
ReferenceError: Cannot access 'name' before initialization
Zde jsou tedy let a const představeny v ES6, ke kterým nelze přistupovat před inicializací, jak naznačuje chyba. Je to proto, že proměnné deklarované pomocí let nebo const budou v časové mrtvé zóně (TDZ), dokud nebude řádek inicializován. Nemáme přístup k proměnným z TDZ.
Curry v JavaScriptu
Currying je technika pro převod funkcí s mnoha parametry na méně parametrů s více volatelnými. S ním můžeme převést funkci callable add(a, b, c, d) na add(a)(b)(c)(d) callable. Podívejme se na příklad, jak na to.
function getCurryCallback(callback) { return function (a) { return function (b) { return function (c) { return function (d) { return callback(a, b, c, d); }; }; }; }; } function add(a, b, c, d) { return a + b + c + d; } const curriedAdd = getCurryCallback(add); // Calling the curriedAdd console.log(curriedAdd(1)(2)(3)(4));
Můžeme zobecnit funkci getCurryCallback, která bude použita pro různé funkce k převodu na callables currying. Další podrobnosti o JavaScriptu naleznete v části Informace o JavaScriptu.
Rozdíl mezi dokumentem a oknem
Okno je nejvyšší objekt v prohlížeči. Obsahuje všechny informace o okně prohlížeče, jako je historie, poloha, navigátor atd.; je globálně dostupný v JavaScriptu. Můžeme jej použít přímo v našem kódu bez jakýchkoli importů. K vlastnostem a metodám objektu okna můžeme přistupovat bez okna.
Dokument je součástí objektu okna. Veškeré HTML načtené na webové stránce se převede na objekt dokumentu. Objekt dokumentu odkazuje na speciální prvek HTMLDocument, který bude mít jiné vlastnosti a metody jako všechny prvky HTML.
Okno objekt představuje okno prohlížeče a dokument představuje dokument HTML načtený v tomto okně prohlížeče.
Rozdíl mezi klientskou a serverovou stranou
Klientská strana označuje koncového uživatele používajícího aplikaci. Strana serveru odkazuje na webový server, kde je aplikace nasazena.
V terminologii frontendu můžeme říci prohlížeč na počítačích uživatelů jako stranu klienta a cloudové služby jako stranu serveru.
Rozdíl mezi innerHTML a innerText
Vnitřní HTML i innerText jsou vlastnostmi prvků HTML. Pomocí těchto vlastností můžeme změnit obsah elementu HTML.
Řetězec HTML můžeme přiřadit innerHTML vlastnosti vykreslené jako normální HTML. Zkontrolujte níže uvedený příklad.
const titleEl = document.getElementById("title"); titleEl.innerHTML = '<span style="color:orange;">etechblog.cz</span>';
Přidejte jeden prvek s názvem id do svého HTML a přidejte výše uvedený skript do souboru JavaScript. Spusťte kód a podívejte se na výstup. Budete etechblog.cz v oranžové barvě. A pokud prvek zkontrolujete, bude uvnitř značky span. Vnitřní HTML tedy vezme řetězec HTML a vykreslí jej jako normální HTML.
Vnitřní text na druhé straně vezme normální řetězec a vykreslí ho tak, jak je. Nevykreslí žádný HTML jako innerHTML. Změňte innerHTML na innerText ve výše uvedeném kódu a zkontrolujte výstup.
const titleEl = document.getElementById("title"); titleEl.innerText="<span style="color:orange;">etechblog.cz</span>";
Nyní uvidíte přesný řetězec, který jsme uvedli na webové stránce.
Rozdíl mezi let a var
Klíčová slova let a var se používají k vytváření proměnných v JavaScriptu. Klíčové slovo let je zavedeno v ES6.
Let je omezený na blok a var je omezený na funkce.
{ let a = 2; console.log("Inside block", a); } console.log("Outside block", a);
Spusťte výše uvedený kód. Na posledním řádku se zobrazí chyba, protože nemůžeme přistupovat k bloku mimo blok, protože je omezen na blok. Nyní jej změňte na var a spusťte jej znovu.
{ var a = 2; console.log("Inside block", a); } console.log("Outside block", a);
Nedostanete žádnou chybu, protože můžeme přistupovat i k proměnné a mimo blok. Nyní nahradíme blok funkcí.
function sample() { var a = 2; console.log("Inside function", a); } sample(); console.log("Outside function", a);
Pokud spustíte výše uvedený kód, dostanete referenční chybu, protože nemůžeme přistupovat k var a it mimo funkci, protože je omezena na funkci.
Můžeme znovu deklarovat proměnné pomocí klíčového slova var, ale nemůžeme znovu deklarovat proměnné pomocí klíčového slova let. Podívejme se na příklad.
var a = "etechblog.cz"; var a = "Chandan"; console.log(a);
let a = "etechblog.cz"; let a = "Chandan"; console.log(a);
První část kódu nevyvolá žádnou chybu a hodnota a bude změněna na poslední přiřazenou hodnotu. 2. část kódu vyvolá chybu, protože nemůžeme znovu deklarovat proměnné pomocí let.
Rozdíl mezi úložištěm relace a místním úložištěm
Úložiště relací a místní úložiště se používají k ukládání informací o počítačích uživatelů, ke kterým lze přistupovat bez internetu. Páry klíč-hodnota můžeme uložit jak do úložiště relace, tak do místního úložiště. Pokud zadáte jakýkoli jiný datový typ nebo datovou strukturu, klíč i hodnota budou převedeny na řetězce.
Úložiště relace bude vymazáno po skončení relace (po zavření prohlížeče). Úložiště polohy nebude vymazáno, dokud jej nevymažeme.
Pomocí objektů sessionStorage a localStorage můžeme přistupovat, aktualizovat a odstraňovat úložiště relace a úložiště umístění.
Co je NaN v JavaScriptu?
NaN je zkráceno jako Not-a-Number. Znamená to, že něco není v JavaScriptu legální/platné číslo. Existují některé případy, kdy získáme NaN jako výstup jako 0/0, nedefinováno * 2, 1 + nedefinováno, null * nedefinováno atd.,
Co je lexikální rozsah?
Lexikální rozsah odkazuje na přístup k proměnným z rozsahu jejich rodičů. Řekněme, že máme funkci se dvěma vnitřními funkcemi. Nejvnitřnější funkce má přístup k proměnným rozsahu svých dvou nadřazených funkcí. Podobně může funkce 2. úrovně přistupovat k nejvzdálenějšímu rozsahu funkcí. Podívejme se na to na příkladu.
function outermost() { let a = 1; console.log(a); function middle() { let b = 2; // `a` are accessible here console.log(a, b); function innermost() { let c = 3; // both `a` and `b` are accessible here console.log(a, b, c); } innermost(); } middle(); } outermost();
JavaScript používá řetězec rozsahu k nalezení proměnné, když k ní přistupujeme někde v kódu. Nejprve zkontroluje proměnnou v aktuálním rozsahu a poté nadřazený rozsah až do globálního rozsahu.
Co je předáno hodnotou a předáno odkazem?
Předání hodnotou a předání odkazem jsou dva způsoby, jak předat argumenty funkci v JavaScriptu.
Pass by value: vytvoří kopii původních dat a předá je funkci. Takže když provedeme nějaké změny ve funkci, neovlivní to původní data. Zkontrolujte níže uvedený příklad.
function sample(a) { // changing the value of `a` a = 5; console.log("Inside function", a); } let a = 3; sample(a); console.log("Outside function", a);
Uvidíte, že původní hodnota a se nezmění, i když jsme ji ve funkci změnili.
Předat odkazem: předá funkci odkaz na data. Takže když provedeme nějaké změny ve funkci, změní se také původní data.
function sample(arr) { // adding a new value to the array arr.push(3); console.log("Inside function", arr); } let arr = [1, 2]; sample(arr); console.log("Outside function", arr);
Uvidíte, že původní hodnota arr se změní, když ji změníme uvnitř funkce.
Poznámka: Všechny primitivní datové typy jsou předávány hodnotou a neprimitivní jsou předávány odkazem.
Co je zapamatování?
Memoizace je technika, která ukládá vypočítané hodnoty do mezipaměti a používá je, když je znovu potřebujeme, aniž bychom je museli znovu počítat. Pokud je výpočet velmi náročný, urychlí provádění kódu. Existuje kompromis s úložištěm, který ve srovnání s časem není velký problém.
const memo = {}; function add(a, b) { const key = `${a}-${b}`; // checking whether we computed the value already or not if (memo[key]) { console.log("Not computing again"); return memo[key]; } // adding the newly computed value to cache // here cache is a simple global object memo[key] = a + b; return memo[key]; } console.log(add(1, 2)); console.log(add(2, 3)); console.log(add(1, 2));
Je to jednoduchý příklad, který demonstruje zapamatování. Zde není sčítání dvou čísel náročným výpočtem. Je to jen pro demo.
Jaký je zbytek parametru?
Parametr rest se používá ke shromáždění všech zbývajících parametrů ve funkci. Řekněme, že máme funkci, která bude akceptovat minimálně 2 argumenty a může akceptovat maximálně libovolný počet parametrů. Protože nemáme maximální počet argumentů, můžeme shromáždit první 2 parametry s normálními proměnnými a všechny ostatní s parametrem zbytek pomocí operátoru rest.
function sample(a, b, ...rest) { console.log("Rest parameter", rest); } sample(1, 2, 3, 4, 5);
Parametr rest bude pole posledních tří argumentů ve výše uvedeném příkladu. Díky tomu můžeme mít pro funkci libovolný počet parametrů.
Jedna funkce může mít pouze jeden klidový parametr. A parametr rest by měl být poslední v pořadí parametrů.
Co je destrukce objektů?
Destrukce objektu se používá k přístupu k proměnným z objektu a jejich přiřazení k proměnným se stejnými názvy jako klíče objektu. Podívejme se na příklad.
const object = { a: 1, b: 2, c: 3 }; // Object destructuring const { a, b, c } = object; // Now, a, b, c will be used as normal variables console.log(a, b, c);
Proměnné destrukturovaných proměnných můžeme změnit ve stejném řádku následovně.
const object = { a: 1, b: 2, c: 3 }; // Changing the names of `a` and `b` const { a: changedA, b: changedB, c } = object; // Now, changedA, changedB, c will be used as normal variables console.log(changedA, changedB, c);
Co je destrukce pole?
Destrukturování pole se používá pro přístup k proměnným z pole a jejich přiřazení k proměnným. Podívejme se na příklad.
const array = [1, 2, 3]; // Array destructuring // It's based on the index of the array const [a, b, c] = array; // Now, we can use a, b, c as normal variables console.log(a, b, c);
Co je zachycování událostí a probublávání událostí?
Zachycování událostí a probublávání událostí jsou dva způsoby šíření událostí v HTML DOM. Řekněme, že existují dva prvky HTML, jeden uvnitř druhého. A na vnitřním prvku dojde k události. Nyní režim šíření událostí rozhodne o pořadí provádění těchto událostí.
Probublávání události: nejprve spustí obslužnou rutinu události na prvku, poté na jeho prvku a poté se dostane až k nejvyššímu prvku. Toto je výchozí chování všech událostí.
Zachycování událostí: musíme specifikovat v případě, že potřebujeme použít tento typ šíření událostí. Můžeme jej specifikovat při přidávání posluchače události. Události se spouštějí v následujícím pořadí, pokud máme povoleno zachycování událostí.
Šíření události můžeme zastavit voláním metody event.stopPropogation v obslužné rutině události.
Jaké jsou sliby v JavaScriptu?
Objekt Promise the se používá pro asynchronní operace, které se v budoucnu dokončí se stavem úspěchu nebo selhání.
Slib může být v jednom z následujících stavů.
Podívejme se na dva příklady případů úspěchu a selhání.
// Promise which will complete successfully const successPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve({ message: "Completed successfully" }); }, 300); }); successPromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); }); // Promise which will complete with failure state const failurePromise = new Promise((resolve, reject) => { setTimeout(() => { reject(new Error("Failing the promise for testing")); }, 300); }); failurePromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); });
V případě potřeby můžete mít více než jeden a pak řetězení. Dříve vrácená data budou přijata při dalším zpětném volání.
Vysvětlete různé typy rozsahu v JavaScriptu
V JavaScriptu existují dva typy rozsahu. Globální působnost a lokální působnost.
Možná jste slyšeli o rozsahu funkcí a rozsahu bloků. Jsou to místní rozsahy pro var a let, const.
Co jsou to samovolné funkce?
Samovolné funkce jsou bezejmenné funkce, které budou provedeny ihned po vytvoření. Podívejme se na několik příkladů.
// Without any parameters (function sayHello() { console.log("Hello, World!"); })(); // With parameters (function add(a, b) { console.log("Sum", a + b); })(1, 2);
Můžeme dokonce předat argumenty samovolným funkcím, jak jste viděli v příkladu.
Jaké jsou funkce šipek?
Funkce šipky je syntaktický cukr k normální funkci s určitými změnami. V běžných případech se chovají jako běžné funkce. Funkce šipek se hodí, když musíme mít zpětná volání. Podívejme se na jeho syntaxi.
// arrow functions will return by default if it doesn't have any brackets let add = (a, b) => a + b; console.log(add(1, 2));
Mezi funkcemi šipek a normálními funkcemi jsou určité rozdíly.
- Funkce šipek nemají vlastní tuto vazbu. Klíčové slovo this uvnitř funkce šipky odkazuje na její nadřazený rozsah this.
- Funkce šipek nelze použít jako funkce konstruktoru
Co jsou zpětná volání?
Zpětné volání je funkce, která je předána jiné funkci, která je vyvolána uvnitř této funkce. Používání zpětných volání je v JavaScriptu běžná věc. Podívejme se na příklad.
function sample(a, b, callback) { const result = a + b; callback(result); } function finished(result) { console.log("Finished with", result); } sample(1, 2, finished);
Dokončená funkce je předána jako zpětné volání vzorku. Hotová funkce je vyvolána s výsledkem po provedení nějaké akce. Využití zpětných volání uvidíte většinou v asynchronních operacích, jako jsou sliby, setTimeout atd..,
Jaké jsou různé typy chyb?
Pojďme zkontrolovat některé chyby v JavaScriptu.
ReferenceError: k této chybě dojde, pokud je proměnná, ke které přistupujeme, dostupná.
TypeError: JavaScript vyvolá tuto chybu, pokud se chyba neshoduje s jinými typy chyb. Objeví se také, když se pokusíme provést akci, která není kompatibilní s daty.
SyntaxError: k této chybě dojde, pokud syntaxe JavaScriptu není správná.
Existují také některé další typy chyb. Toto jsou však běžné typy chyb v JavaScriptu.
Jaké jsou různé rozsahy proměnných v JavaScriptu?
V JavaScriptu existují dva rozsahy proměnných. Proměnné deklarované pomocí klíčového slova var budou mít rozsah funkcí a proměnné deklarované pomocí let a const budou mít rozsah bloku.
Další podrobnosti o rozsahu těchto proměnných naleznete v 17. otázce.
Co jsou escape znaky v JavaScriptu?
Zpětné lomítko je znak escape v JavaScriptu. Používá se k tisku některých speciálních znaků, které obecně tisknout nemůžeme. Řekněme, že chceme vytisknout apostrof (‚) uvnitř řetězce, což nemůžeme normálně udělat, protože řetězec bude končit na druhém apostrofu. V takovém případě použijeme znak escape, abychom zabránili ukončení řetězce v tomto bodě.
const message="Hi, I"m etechblog.cz'; console.log(message);
Výše uvedeného výstupu můžeme dosáhnout bez použití escape znaku nahrazením vnějších jednoduchých apostrofů dvojitými apostrofy. Ale je to jen příklad toho, jak použít únikovou postavu. Existují další znaky, pro které nutně potřebujeme únikový znak jako n, t, atd..,
Co jsou BOM a DOM?
Objektový model prohlížeče (BOM): všechny prohlížeče mají kusovník představující aktuální okno prohlížeče. Obsahuje náš nejvyšší objekt okna, který se používá k manipulaci s oknem prohlížeče.
Document Object Model (DOM): prohlížeče vytvářejí DOM, když je HTML načteno ve stromové struktuře. S prvky HTML můžeme manipulovat pomocí DOM API.
Co je objekt obrazovky?
Objekt obrazovky je jednou z vlastností objektu globálního okna. Obsahuje různé vlastnosti obrazovky, na které se vykresluje aktuální okno prohlížeče. Některé z vlastností jsou šířka, výška, orientace, pixelDepth atd.,
Závěr
Ke všem výše uvedeným otázkám mohou existovat doplňující otázky. Takže si musíte připravit koncepty kolem všech výše uvedených otázek.
Můžete také prozkoumat některé často kladené otázky a odpovědi na rozhovory s Java.
Příjemné učení 🙂