Често постављана питања и одговори на ЈаваСцрипт интервјуу

Ако имате ЈаваСцрипт у свом портфељу, повећавате шансе да добијете улогу програмера софтвера. Уз то, хајде да погледамо често постављана питања за ЈаваСцрипт интервју.

ЈаваСцрипт је један од најчешће коришћених језика у веб развоју. Сада се користи за развој скоро свих врста апликација.

Пре него што пређемо на питања за интервју, хајде да видимо предности учења ЈаваСцрипт-а.

ЈаваСцрипт је лаган, интерпретиран или компајлиран на време програмски језик. То је један од основних језика светске мреже. Познајете друга два основна језика ввв. Боље их потражи ако не.

ЈаваСцрипт је углавном креиран за веб. Али то сада није само за веб. Уз помоћ окружења као што су Ноде, Дено, итд., можемо га покренути на скоро свакој платформи.

Хајде да погледамо неке његове предности.

Преглед садржаја

Предности ЈаваСцрипт-а

  • Лако за почетак. Можете га научити чак и без знања о кодирању.
  • Велика заједница око тога. Добићете сву помоћ коју желите ако заглавите било где.
  • Постоји много библиотека/оквирова направљених помоћу ЈаваСцрипт-а, што помаже да се апликације брже развијају.
  • Можемо да развијемо фронтенд, бацкенд, андроид, иОС, итд., апликације са ЈаваСцрипт-ом. Са њим можемо креирати скоро сваку врсту апликације. Али, робуснији је у веб развоју.
  • Који су типови података у ЈаваСцрипт-у?

    Типови података се користе за складиштење различитих типова података. Типови података ће се разликовати од једног до другог програмског језика. У ЈаваСцрипт-у имамо 8 типова података. Хајде да их видимо једног по једног.

    • Број
    • Низ
    • Боолеан
    • Недефинисан
    • Нула
    • БигИнт
    • Симбол
    • Објекат

    Сви типови података осим Објецт се називају примитивним вредностима. И они су непроменљиви.

    Које су методе уграђене у ЈаваСцрипт?

    Уграђене методе у ЈаваСцрипт-у су различите за сваки тип података. Можемо приступити овим уграђеним методама користећи одговарајући тип података. Хајде да видимо неке уграђене методе за различите типове података и структуре података.

  • Број
  • Низ
    • тоЛоверЦасе
    • почиње са
    • цхартАт
  • Низ
  • Постоји много уграђених метода за сваки тип података. Можете проверити референце за све уграђене методе различитих типова података и структура података.

    Како направити низ у ЈаваСцрипт-у?

    Низови су једна од основних структура података у ЈаваСцрипт-у. Низови могу имати било коју врсту података у себи јер је ЈаваСцрипт динамичан. Хајде да видимо како да креирамо низове у ЈаваСцрипт-у.

    Можемо креирати низ користећи угласте заграде[]. Прављење објеката је једноставно и брзо

    // Empty array
    const arr = [];
    
    // Array with some random values
    const randomArr = [1, "One", true];
    
    console.log(arr, randomArr);

    Можемо креирати низ помоћу конструктора низа. Људи ретко користе конструктор за креирање низова у општим пројектима.

    // Empty array
    const arr = new Array();
    
    // Array with some random values
    const randomArr = new Array(1, "One", true);
    
    console.log(arr, randomArr);

    ЈаваСцрипт низови су променљиви, односно можемо их модификовати како желимо након што их креирамо.

    Како направити објекат у ЈаваСцрипт-у?

    Поред низа, објекат је још једна основна структура података у ЈаваСцрипт-у. Објекти користе складиште парова кључ-вредност. Кључ мора бити непроменљива вредност, док вредност може бити било шта. Хајде да видимо како да креирамо објекте у ЈаваСцрипт-у.

    Можемо креирати објекте помоћу витичастих заграда {}. Прављење објеката је једноставно и брзо.

    // Empty object
    const object = {};
    
    // Object with some random values
    const randomObject = { 1: 2, one: "Two", true: false };
    
    console.log(object, randomObject);

    Можемо креирати објекте помоћу конструктора објеката. Људи ретко користе ово у општим пројектима.

    // 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);

    ЈаваСцрипт објекти су променљиви, тј. можемо их модификовати након креирања, као што видите у 2. примеру.

    Како отклањате грешке у ЈаваСцрипт коду?

    Отклањање грешака кода није једноставно. И разликује се од једног програмског језика до другог, од једног пројекта до другог, итд.; хајде да видимо уобичајене ствари које се користе за отклањање грешака у ЈаваСцрипт-у.

    1. Логгинг

    Наредбе цонсоле.лог можемо користити на више места у нашем коду да идентификујемо грешку. Код ће престати да покреће следеће редове кода када постоји грешка у претходном реду.

    Евидентирање је једна од старих метода за отклањање грешака, која је прилично ефикасна за мале пројекте. То је уобичајена техника отклањања грешака за било који програмски језик.

    2. Алати за програмере

    ЈаваСцрипт се углавном користи за развој веб апликација. Дакле, скоро сви претраживачи сада имају алате за програмере који помажу у отклањању грешака у ЈаваСцрипт коду.

    Једна од најчешће коришћених метода за отклањање грешака је постављање тачака прекида у алатима за програмере. Тачке прекида заустављају извршавање ЈаваСцрипт-а и дају све информације о извршавању у овом тренутку.

    Можемо да поставимо више тачака прекида око места где добијамо грешке и видимо шта их узрокује. То је најефикаснији начин за отклањање грешака у ЈаваСцрипт веб апликацијама.

    3. ИДЕ

    Можемо користити ИДЕ за отклањање грешака у ЈаваСцрипт-у. ВС Цоде подржава отклањање грешака са тачкама прекида. Функција отклањања грешака може се разликовати у зависности од ИДЕ-а који користите. Али већина ИДЕ-ова ће имати ту функцију.

      Шта значи „НВМ“ и како га користите?

    Како додати ЈаваСцрипт код у ХТМЛ датотеку?

    Можемо додати ЈаваСцрипт ХТМЛ датотеку помоћу ознаке скрипте. Можете проверити пример у наставку.

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <title>techblog.co.rs</title>
      </head>
      <body>
        <h1>techblog.co.rs</h1>
    
        <script>
          // JavaScript code goes here
          console.log("This is JavaScript code");
        </script>
      </body>
    </html>

    Шта су колачићи?

    Колачићи су парови кључ-вредност који се користе за чување малих информација. Информације могу бити било које. Можемо подесити време истека колачића, који ће бити избрисани након њиховог истека. Они се широко користе за чување информација корисника.

    Колачићи неће бити обрисани чак и ако освежимо страницу док их не избришемо или док не истекну. Можете проверити колачиће било које веб апликације/веб странице у било ком прегледачу отварањем алата за програмере.

    Можемо читати колачић у ЈаваСцрипт-у користећи доцумент.цоокие. Вратиће све колачиће које смо креирали.

    console.log("All cookies", document.cookie);

    Вратиће празан стринг ако нема колачића.

    Можемо креирати колачиће тако што ћемо поставити пар кључ/вредност на доцумент.цоокие. Хајде да видимо пример.

    document.cookie = "one=One;";

    У горњој синтакси, један кључ колачића и један је његова вредност. Можемо додати више атрибута колачићу као што су домен, путања, рок трајања, итд.; сваки од њих треба одвојити тачком и зарезом (;). Сви атрибути су опциони.

    Погледајмо пример са атрибутима.

    document.cookie = "one=One;expires=Jan 31 2023;path=/;";

    У горњи код смо додали датум истека и путању до колачића. Ако датум истека није наведен, колачић ће бити обрисан након сесије. Подразумевана путања ће бити путања датотеке. Формат датума истека треба да буде у ГМТ.

    Хајде да видимо како да креирамо више колачића.

    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=/;";

    Колачићи неће бити замењени ако се кључ или путања разликују при постављању више колачића. Ако су кључ и путања исти, он ће заменити претходни колачић. Погледајте пример у наставку, који ће заменити претходни постављени колачић.

    document.cookie = "one=One;expires=Jan 31 2023;path=/;";
    document.cookie = "one=Two;path=/;";

    Уклонили смо датум истека из колачића и променили вредност.

    Користите датум истека као будући датум када тестирате код да би исправно функционисао. Ако задржите исти датум 31. јануара 2023. чак и након 31. јануара 2023., колачићи се неће креирати.

    Видели смо како да креирате и ажурирате колачиће. Хајде да видимо како да избришемо колачиће.

    Брисање колачића је једноставно. Само промените датум истека колачића на било који прошли датум. Проверите пример у наставку.

    // 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=/;";

    Нећете пронаћи последњи колачић у колачићима јер је обрисан у последњем реду кода. То је то за минимални водич за колачиће.

    Који су различити ЈаваСцрипт оквири?

    Постоји много ЈаваСцрипт оквира. Реацт, Вуе, Ангулар, итд., за развој корисничког интерфејса. Екпресс, Коа, Нест, итд., за развој на страни сервера. НектЈС, Гатсби, итд., за генерисање статичких сајтова. Реацт Нативе, Иониц, итд., за развој мобилних апликација. Овде смо споменули неке од ЈаваСцрипт оквира. Можете пронаћи више оквира за које ће бити потребно много времена да их истражите. Истражите када вам затребају.

    Затварања у ЈаваСцрипт-у

    Затварање је функција у пакету са својим лексичким опсегом и његовим родитељским лексичким окружењем. Са затварањима, можемо приступити подацима спољашњег опсега. Затварања се формирају када се креирају функције.

    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();

    Затварања се широко користе у ЈаваСцрипт апликацијама. Можда сте их раније користили, а да нисте знали да су затварачи. Има много више од овога да се научи о затварањима. Уверите се да сте у потпуности научили овај концепт.

    Дизање у ЈаваСцрипт-у

    Подизање је процес у ЈаваСцрипт-у где се декларација променљивих, функција и класа помера на врх опсега пре извршавања кода.

    // Accessing `name` before declaring
    console.log(name);
    
    // Declaring and initializing the `name`
    var name = "techblog.co.rs";

    Ако покренете горњи код, нећете видети никакву грешку. Али на већини језика добићете грешку. Излаз ће бити недефинисан јер подизање само помера декларације на врх и неће га иницијализовати до реда број 3.

    Промените вар у лет или цонст на следећи начин, и поново покрените код.

    // Accessing `name` before declaring
    console.log(name);
    
    // Declaring and initializing the `name`
    const name = "techblog.co.rs";

    Сада ћете добити референтну грешку која каже да не можемо приступити променљивој пре него што је иницијализујемо.

    ReferenceError: Cannot access 'name' before initialization

    Дакле, овде су лет и цонст уведени у ЕС6, којима се не може приступити пре него што се иницијализује, као што грешка сугерише. То је зато што ће променљиве декларисане са лет или цонст бити у временској мртвој зони (ТДЗ) све док линија не буде иницијализована. Не можемо приступити променљивим из ТДЗ-а.

    Цурриинг у ЈаваСцрипт-у

    Цурриинг је техника за претварање функција са много параметара у мање параметара са вишеструким позивима. Помоћу њега можемо конвертовати функцију која се може позивати адд(а, б, ц, д) у адд(а)(б)(ц)(д) која се може позивати. Хајде да видимо пример како то учинити.

    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));

    Можемо генерализовати функцију гетЦурриЦаллбацк која ће се користити за различите функције за претварање у цурриинг цаллабле. Можете погледати информације о ЈаваСцрипту за више детаља о томе.

    Разлика између документа и прозора

    Прозор је највиши објекат у претраживачу. Садржи све информације о прозору претраживача, као што су историја, локација, навигатор, итд.; глобално је доступан у ЈаваСцрипт-у. Можемо га користити директно у нашем коду без икаквог увоза. Можемо приступити својствима и методама прозорског објекта без прозора.

    Документ је део прозорског објекта. Сав ХТМЛ учитан на веб страници се конвертује у објекат документа. Објекат документа се односи на специјални елемент ХТМЛДоцумент, који ће имати различита својства и методе као и сви ХТМЛ елементи.

      Поправите звук вашег микрофона у системским подешавањима у Гоогле Меет-у

    Прозор објекат представља прозор претраживача, а документ представља ХТМЛ документ учитан у том прозору претраживача.

    Разлика између клијентске и серверске стране

    Клијентска страна се односи на крајњег корисника који користи апликацију. Серверска страна се односи на веб сервер на коме је апликација постављена.

    У терминологији фронтенд-а, можемо рећи претраживач на рачунарима корисника као страна клијента и услуге у облаку као страна сервера.

    Разлика између иннерХТМЛ и иннерТект

    И иннерХТМЛ и иннерТект су својства ХТМЛ елемената. Можемо да променимо садржај ХТМЛ елемента користећи ова својства.

    Можемо доделити ХТМЛ стринг иннерХТМЛ-у особину која се приказује као нормалан ХТМЛ. Проверите пример у наставку.

    const titleEl = document.getElementById("title");
    
    titleEl.innerHTML = '<span style="color:orange;">techblog.co.rs</span>';

    Додајте један елемент са насловом ид у свој ХТМЛ и додајте горњу скрипту у ЈаваСцрипт датотеку. Покрените код и погледајте излаз. Ви ћете вдзвдз у наранџастој боји. А ако прегледате елемент, он ће бити унутар ознаке спан. Дакле, иннерХТМЛ ће узети ХТМЛ стринг и приказати га као нормалан ХТМЛ.

    ИннерТект на другој страни ће узети нормалан стринг и приказати га онаквим какав јесте. Неће приказати никакав ХТМЛ као иннерХТМЛ. Промените иннерХТМЛ у иннерТект у горњем коду и проверите излаз.

    const titleEl = document.getElementById("title");
    
    titleEl.innerText="<span style="color:orange;">techblog.co.rs</span>";

    Сада ћете видети тачан низ који смо навели на веб страници.

    Разлика између лет и вар

    Кључне речи лет и вар се користе за креирање променљивих у ЈаваСцрипт-у. Кључна реч лет је уведена у ЕС6.

    Лет је у блоку, а вар је у функцији.

    {
      let a = 2;
      console.log("Inside block", a);
    }
    console.log("Outside block", a);

    Покрените горњи код. Добићете грешку у последњем реду јер не можемо да приступимо дозволи изван блока јер је у блоку. Сада га промените у вар и покрените га поново.

    {
      var a = 2;
      console.log("Inside block", a);
    }
    console.log("Outside block", a);

    Нећете добити никакву грешку јер можемо приступити променљивој и ван блока. Сада, заменимо блок функцијом.

    function sample() {
      var a = 2;
      console.log("Inside function", a);
    }
    sample();
    console.log("Outside function", a);

    Добићете референтну грешку ако покренете горњи код јер не можемо да приступимо вар а ит ван функције јер је у функцији.

    Можемо поново декларисати променљиве користећи кључну реч вар, али не можемо поново декларисати променљиве користећи кључну реч лет. Хајде да видимо пример.

    var a = "techblog.co.rs";
    var a = "Chandan";
    console.log(a);
    let a = "techblog.co.rs";
    let a = "Chandan";
    console.log(a);

    Први део кода неће изазвати никакву грешку и вредност је а биће промењена на последњу додељену вредност. Други део кода ће изазвати грешку јер не можемо поново да декларишемо променљиве помоћу лет.

    Разлика између складиштења сесије и локалног складишта

    Складиште сесије и локално складиште се користе за складиштење информација на рачунарима корисника којима се може приступити без интернета. Можемо да складиштимо парове кључ-вредност и у складиште сесије и у локално складиште. И кључ и вредност биће конвертовани у стрингове ако наведете било који други тип података или структуру података.

    Складиштење сесије ће бити очишћено након завршетка сесије (када је претраживач затворен). Складиште локације неће бити очишћено док га не избришемо.

    Можемо да приступимо, ажурирамо и избришемо складиште сесије и складиште локације са објектима сессионСтораге и лоцалСтораге.

    Шта је НаН у ЈаваСцрипт-у?

    НаН је скраћено као Нот-а-Нумбер. То представља да нешто није легалан/важећи број у ЈаваСцрипт-у. Постоје неки случајеви у којима ћемо добити НаН као излаз као што је 0/0, недефинисано * 2, 1 + недефинисано, нулл * недефинисано итд..,

    Шта је лексички опсег?

    Лексички опсег се односи на приступ варијаблама из опсега његових родитеља. Рецимо да имамо функцију са две унутрашње функције. Најдубља функција може приступити варијаблама опсега своје две родитељске функције. Слично томе, функција 2. нивоа може приступити најудаљенијем опсегу функције. Хајде да то видимо на примеру.

    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();

    ЈаваСцрипт користи ланац опсега да пронађе променљиву када јој приступамо негде у коду. Прво ће проверити променљиву у тренутном опсегу, а затим родитељски опсег до глобалног опсега.

    Шта се преноси по вредности, а шта се прослеђује референцом?

    Пролаз по вредности и пролаз по референци су два начина да се проследе аргументи функцији у ЈаваСцрипт-у.

    Проследи по вредности: креира копију оригиналних података и прослеђује је функцији. Дакле, када извршимо било какве промене у функцији, то неће утицати на оригиналне податке. Проверите пример у наставку.

    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);

    Видећете да оригинална вредност а није промењена иако смо је променили унутар функције.

    Проследи по референци: прослеђује референцу података функцији. Дакле, када извршимо било какве промене у функцији, она ће такође променити оригиналне податке.

    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);

    Видећете да се оригинална вредност арр мења када је променимо унутар функције.

    Напомена: сви примитивни типови података се прослеђују по вредности, а непримитивни се прослеђују по референци.

    Шта је меморисање?

    Мемоизација је техника која складишти израчунате вредности у кеш меморије и користи их када нам поново затребају без поновног израчунавања. То ће убрзати извршавање кода ако је прорачун веома тежак. Постоји компромис за складиштење који није велики проблем у поређењу са временом.

    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));

    То је једноставан пример који показује меморисање. Овде додавање два броја није тешко израчунавање. То је само за демо.

    Шта је параметар одмора?

    Параметар рест се користи за прикупљање свих преосталих параметара у функцији. Рецимо да имамо функцију која ће прихватити најмање 2 аргумента и може прихватити било који број параметара максимално. Пошто немамо максималан број аргумената, можемо сакупити прва 2 параметра са нормалним варијаблама и све остале са осталим параметром користећи рест оператор.

    function sample(a, b, ...rest) {
      console.log("Rest parameter", rest);
    }
    
    sample(1, 2, 3, 4, 5);

    Параметар рест ће бити низ последња три аргумента у горњем примеру. Са овим, можемо имати било који број параметара за функцију.

      12 најбољих шаблона продајног процеса за поједностављење процеса продаје

    Једна функција може имати само један параметар мировања. А остатак параметара треба да буде последњи у редоследу параметара.

    Шта је деструктурирање објекта?

    Деструктурирање објекта се користи за приступ променљивим из објекта и њихово додељивање променљивим са истим именима као кључеви објекта. Хајде да видимо пример.

    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);

    Променљиве деструктурираних променљивих можемо променити у истом реду на следећи начин.

    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);

    Шта је деструктурирање низа?

    Деструктурирање низа се користи за приступ променљивим из низа и њихово додељивање променљивим. Хајде да видимо пример.

    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);

    Шта је снимање догађаја и шта се дешава?

    Снимање догађаја и мехурићи догађаја су два начина ширења догађаја у ХТМЛ ДОМ-у. Рецимо да постоје два ХТМЛ елемента, један у другом. И догађај се дешава на унутрашњем елементу. Сада ће режим пропагације догађаја одлучити о редоследу извршавања ових догађаја.

    Бубирање догађаја: прво покреће руковалац догађаја на елементу, затим његовом елементу, а затим иде све до највишег елемента. Ово је подразумевано понашање свих догађаја.

    Снимање догађаја: морамо да наведемо у случају да треба да користимо ову врсту ширења догађаја. Можемо га навести док додајемо слушалац догађаја. Догађаји ће се извршити следећим редоследом ако имамо омогућено снимање догађаја.

  • Догађаји почињу да се извршавају од највишег елемента до циљног елемента надоле.
  • Догађај на циљном елементу ће се поново извршити.
  • Пропагација догађаја мехурића ће се поново десити док се највиши елемент не подигне.
  • Можемо зауставити ширење догађаја тако што ћемо позвати евент.стопПропогатион методом у руковаоцу догађаја.

    Шта су обећања у ЈаваСцрипт-у?

    Објекат Промисе се користи за асинхроне операције које ће се у будућности завршити са стањем успеха или неуспеха.

    Обећање може бити у једном од следећих стања.

  • на чекању – када је операција још у току.
  • испуњено – када је операција успешно завршена. Имаћемо резултате (ако их има) у стању успеха.
  • одбијено – када је операција завршена са неуспехом. Имаћемо разлог (грешку) зашто није успео.
  • Погледајмо два примера успеха и неуспеха.

    // 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);
      });

    Можете имати више од једног, а затим уланчавање ако је потребно. Претходно враћени подаци биће прихваћени у следећем повратном позиву.

    Објасните различите типове опсега у ЈаваСцрипт-у

    Постоје две врсте опсега у ЈаваСцрипт-у. Глобални и локални опсег.

    Можда сте чули и за опсег функције и опсег блока. То су локални опсег за вар и лет, респективно.

    Шта су функције самопозивања?

    Функције које се самопозивају су функције без имена које ће се извршити одмах након креирања. Хајде да видимо неке примере.

    // Without any parameters
    (function sayHello() {
      console.log("Hello, World!");
    })();
    
    // With parameters
    (function add(a, b) {
      console.log("Sum", a + b);
    })(1, 2);

    Можемо чак и проследити аргументе функцијама које се самопозивају као што сте видели у примеру.

    Шта су функције стрелице?

    Функција стрелице је синтаксички шећер у нормалну функцију са неким изменама. Они се понашају као нормалне функције у случајевима опште употребе. Функције стрелице су корисне када морамо да имамо повратне позиве. Хајде да видимо његову синтаксу.

    // arrow functions will return by default if it doesn't have any brackets
    let add = (a, b) => a + b;
    
    console.log(add(1, 2));

    Постоје неке разлике између функција стрелице и нормалних функција.

    • Функције стрелица немају своје ово везивање. Ова кључна реч унутар функције стрелице односи се на њен родитељски опсег тхис.
    • Функције стрелице се не могу користити као функције конструктора

    Шта су повратни позиви?

    Повратни позив је функција која се прослеђује другој функцији која се позива унутар те функције. Коришћење повратних позива је уобичајена ствар у ЈаваСцрипт-у. Хајде да видимо пример.

    function sample(a, b, callback) {
      const result = a + b;
      callback(result);
    }
    
    function finished(result) {
      console.log("Finished with", result);
    }
    
    sample(1, 2, finished);

    Функција завршена се прослеђује као повратни позив узорку. Готова функција се позива са резултатом након извођења неке радње. Видећете употребу повратних позива углавном у асинхроним операцијама као што су обећања, сетТимеоут, итд.,

    Које су различите врсте грешака?

    Хајде да проверимо неке грешке у ЈаваСцрипт-у.

    РеференцеЕррор: ова грешка ће се појавити ако је променљива којој приступамо доступна.

    ТипеЕррор: ЈаваСцрипт ће избацити ову грешку ако се грешка не подудара са другим типовима грешака. Такође ће се десити када покушамо да извршимо радњу која није компатибилна са подацима.

    СинтакЕррор: ова грешка ће се појавити ако ЈаваСцрипт синтакса није тачна.

    Постоје и неке друге врсте грешака. Али, ово су уобичајени типови грешака у ЈаваСцрипт-у.

    Који су различити опсеги променљивих у ЈаваСцрипт-у?

    Постоје два опсега променљивих у ЈаваСцрипт-у. Променљиве декларисане помоћу кључне речи вар имаће опсег функције, а променљиве декларисане са лет и цонст имаће опсег блока.

    Погледајте 17. питање за више детаља о опсегу ових варијабли.

    Шта су есцапе знакови у ЈаваСцрипт-у?

    Обрнута коса црта је излазни знак у ЈаваСцрипт-у. Користи се за штампање неких специјалних знакова које уопште не можемо да штампамо. Рецимо да желимо да штампамо апостроф (‘) унутар стринга што не можемо нормално да урадимо јер ће се стринг завршити на другом апострофу. У том случају, користићемо есцапе знак да бисмо избегли завршетак стринга у том тренутку.

    const message="Hi, I"m techblog.co.rs';
    console.log(message);

    Горњи излаз можемо постићи без коришћења есцапе карактера заменом спољашњих појединачних апострофа двоструким апострофима. Али то је само пример како се користи излазни знак. Постоје и други знакови за које нам је свакако потребан есцапе карактер попут н, т, итд.,

    Шта су БОМ и ДОМ?

    Модел објекта претраживача (БОМ): сви претраживачи имају БОМ који представља тренутни прозор претраживача. Садржи наш највиши објекат прозора који се користи за манипулисање прозором претраживача.

    Модел објекта документа (ДОМ): претраживачи креирају ДОМ када се ХТМЛ учита у структуру стабла. Можемо да манипулишемо ХТМЛ елементима користећи ДОМ АПИ.

    Шта је екрански објекат?

    Екран објекат је једно од својстава глобалног објекта прозора. Садржи различита својства екрана на коме се приказује тренутни прозор претраживача. Нека од својстава су ширина, висина, оријентација, дубина пиксела итд.,

    Закључак

    Можда постоје додатна питања за сва горња питања. Дакле, морате припремити концепте око свих горе наведених питања.

    Такође можете истражити нека често постављана питања и одговоре на Јава интервјуу.

    Срећно учење 🙂