Ofte stilte JavaScript-intervjuspørsmål og svar

Å ha JavaScript i porteføljen øker sjansene for å få en programvareutviklerrolle. Når det er sagt, la oss sjekke ut de ofte stilte JavaScript-intervjuspørsmålene.

JavaScript er et av de mest brukte språkene i webutvikling. Det brukes til å utvikle nesten alle typer applikasjoner nå.

Før vi går inn i intervjuspørsmålene, la oss se fordelene ved å lære JavaScript.

JavaScript er et lett, tolket eller just-in-time kompilert programmeringsspråk. Det er et av kjernespråkene på verdensveven. Du kan de to andre kjernespråkene til www. Du bør søke etter dem hvis du ikke gjør det.

JavaScript er hovedsakelig laget for nettet. Men det er ikke bare for nettet nå. Ved hjelp av miljøer som Node, Deno, etc.., kan vi kjøre den på nesten hvilken som helst plattform.

La oss sjekke ut noen fordeler med det.

Fordeler med JavaScript

  • Enkel å komme i gang med. Du kan lære det selv uten kodekunnskap.
  • Stort samfunn rundt det. Du vil få all den hjelpen du ønsker hvis du står fast hvor som helst.
  • Det er mange biblioteker/rammeverk som bygger ved hjelp av JavaScript, noe som hjelper til med å utvikle applikasjoner raskere.
  • Vi kan utvikle frontend, backend, android, iOS, etc.., applikasjoner med JavaScript. Vi kan lage nesten alle typer applikasjoner med den. Men det er mer robust i webutvikling.
  • Hva er datatypene i JavaScript?

    Datatypene brukes til å lagre ulike typer data. Datatyper vil variere fra ett programmeringsspråk til et annet. I JavaScript har vi 8 datatyper. La oss se dem en etter en.

    • Antall
    • String
    • boolsk
    • Udefinert
    • Null
    • BigInt
    • Symbol
    • Gjenstand

    Alle datatypene unntatt Objekt kalles primitive verdier. Og de er uforanderlige.

    Hva er de innebygde metodene i JavaScript?

    De innebygde metodene i JavaScript er forskjellige for hver datatype. Vi kan få tilgang til disse innebygde metodene ved å bruke den respektive datatypen. La oss se noen innebygde metoder for ulike datatyper og datastrukturer.

  • Antall
  • String
    • til LowerCase
    • begynner med
    • diagramAt
  • Array
  • Det er mange innebygde metoder for hver datatype. Du kan sjekke referansene for alle innebygde metoder for ulike datatyper og datastrukturer.

    Hvordan lage en matrise i JavaScript?

    Matriser er en av kjernedatastrukturene i JavaScript. Matriser kan ha hvilken som helst type data ettersom JavaScript er dynamisk. La oss se hvordan du lager arrays i JavaScript.

    Vi kan lage en matrise ved å bruke firkantede parenteser[]. Det er enkelt og raskt å lage objekter

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

    Vi kan lage en matrise ved å bruke Array-konstruktør. Folk bruker sjelden konstruktøren til å lage arrays i generelle prosjekter.

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

    JavaScript-matriser er mutable, dvs. vi kan endre dem som vi vil etter å ha opprettet dem.

    Hvordan lage et objekt i JavaScript?

    Bortsett fra array, er objektet en annen kjernedatastruktur i JavaScript. Objekter bruker lagre nøkkelverdi-parene. Nøkkelen må være en uforanderlig verdi, mens verdien kan være hva som helst. La oss se hvordan du lager objekter i JavaScript.

    Vi kan lage objekter ved å bruke krøllete parenteser {}. Det er enkelt og raskt å lage objekter.

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

    Vi kan lage objekter ved å bruke Object constructor. Folk bruker sjelden dette i generelle prosjekter.

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

    JavaScript-objekter er mutable, dvs. vi kan endre dem etter å ha opprettet, som du ser i det andre eksemplet.

    Hvordan feilsøker du JavaScript-kode?

    Feilsøking av kode er ikke enkelt. Og det er forskjellig fra et programmeringsspråk til et annet, et prosjekt til et annet, osv..; la oss se de vanlige tingene som brukes til å feilsøke JavaScript.

    1. Logging

    Vi kan bruke console.log-setningene flere steder i koden vår for å identifisere feilen. Koden vil slutte å kjøre de neste kodelinjene når det er en feil i forrige linje.

    Logging er en av de gamle feilsøkingsmetodene, som er ganske mye effektiv for små prosjekter. Det er en vanlig feilsøkingsteknikk for alle programmeringsspråk.

    2. Utviklerverktøy

    JavaScript brukes mest til å utvikle webapplikasjoner. Så nesten alle nettlesere har nå utviklerverktøy som hjelper til med å feilsøke JavaScript-koden.

    En av de mest brukte feilsøkingsmetodene er å sette bruddpunkter i utviklerverktøyene. Knekkpunktene stopper kjøringen av JavaScript og gir all informasjon om kjøringen for øyeblikket.

    Vi kan angi flere bruddpunkter rundt stedet der vi får feil og se hva som forårsaker det. Det er den mest effektive måten å feilsøke JavaScript-nettapplikasjoner på.

    3. IDE-er

    Vi kan bruke IDE-ene til å feilsøke JavaScript. VS Code støtter feilsøking med bruddpunkter. Feilsøkingsfunksjonen kan variere basert på IDE-en du bruker. Men de fleste av IDE-ene vil ha den funksjonen.

    Hvordan legge til JavaScript-kode i en HTML-fil?

    Vi kan legge til JavaScript HTML-filen ved å bruke script-taggen. Du kan sjekke eksempelet nedenfor.

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

    Hva er informasjonskapsler?

    Informasjonskapsler er nøkkelverdi-par som brukes til å lagre liten informasjon. Informasjonen kan være hva som helst. Vi kan angi utløpstiden for informasjonskapslene, som vil bli slettet etter utløpstiden. Disse er mye brukt for å lagre brukernes informasjon.

      Hvordan fungerer det og påvirker det kredittpoengsummen din?

    Informasjonskapsler blir ikke slettet selv om vi oppdaterer siden før vi sletter dem eller de utløper. Du kan sjekke informasjonskapslene til en hvilken som helst nettapp/nettside i hvilken som helst nettleser ved å åpne utviklerverktøyene.

    Vi kan lese informasjonskapselen i JavaScript ved å bruke document.cookie. Det vil returnere alle informasjonskapslene vi har laget.

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

    Det vil returnere en tom streng hvis det ikke er informasjonskapsler.

    Vi kan lage informasjonskapslene ved å sette nøkkelverdi-paret til document.cookie. La oss se et eksempel.

    document.cookie = "one=One;";

    I syntaksen ovenfor er den ene informasjonskapselnøkkelen og One verdien. Vi kan legge til flere attributter til informasjonskapselen som domene, bane, utløper osv..; hver av dem skal være atskilt med semikolon (;). Alle attributtene er valgfrie.

    La oss se et eksempel med attributter.

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

    I koden ovenfor har vi lagt til en utløpsdato og sti til informasjonskapselen. Hvis utløpsdatoen ikke er oppgitt, vil informasjonskapselen bli slettet etter økten. Standardbanen vil være filbanen. Utløpsdatoformatet skal være i GMT.

    La oss se hvordan du lager flere informasjonskapsler.

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

    Informasjonskapslene vil ikke bli overskrevet hvis nøkkelen eller banen er forskjellig mens du angir flere informasjonskapsler. Hvis nøkkelen og banen er den samme, vil den overskrive den forrige informasjonskapselen. Ta en titt på eksemplet nedenfor, som vil overskrive forrige sett informasjonskapsel.

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

    Vi har fjernet utløpsdatoen fra informasjonskapselen og endret verdien.

    Bruk utløpsdatoen en fremtidig dato når du tester koden for at den skal fungere riktig. Hvis du beholder samme dato 31. januar 2023 selv etter 31. januar 2023, opprettes ikke informasjonskapsler.

    Vi har sett hvordan du oppretter og oppdaterer informasjonskapsler. La oss se hvordan du sletter informasjonskapsler.

    Det er enkelt å slette informasjonskapsler. Bare endre utløpsdatoen for informasjonskapselen til en hvilken som helst tidligere dato. Sjekk eksempelet nedenfor.

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

    Du vil ikke finne den siste informasjonskapselen i informasjonskapslene da den slettes i den siste linjen i koden. Det er det for min informasjonskapsler-opplæringen.

    Hva er de forskjellige JavaScript-rammeverkene?

    Det er mange JavaScript-rammer der ute. React, Vue, Angular, etc.., for UI-utvikling. Express, Koa, Nest, etc.., for utvikling på serversiden. NextJS, Gatsby, etc.., for generering av statisk nettsted. React Native, Ionic, etc.., for utvikling av mobilapper. Vi har nevnt noen av JavaScript-rammeverket her. Du kan finne flere rammer som det vil ta mye tid å utforske. Utforsk når du trenger dem.

    Lukking i JavaScript

    En lukking er en funksjon sammen med dets leksikale omfang og dets overordnede leksikalske miljø. Med stenginger kan vi få tilgang til dataene om ytre omfang. Lukningene dannes når funksjonene opprettes.

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

    Lukninger er mye brukt i JavaScript-applikasjoner. Du har kanskje brukt dem før uten å innse at de er nedleggelser. Det er mye mer enn dette å lære om nedleggelsene. Sørg for at du har lært dette konseptet fullstendig.

    Heising i JavaScript

    Heising er en prosess i JavaScript der deklarasjonen av variabler, funksjoner og klasser flyttes til toppen av omfanget før koden kjøres.

    // Accessing `name` before declaring
    console.log(name);
    
    // Declaring and initializing the `name`
    var name = "tipsbilk.net";

    Hvis du kjører koden ovenfor, vil du ikke se noen feil. Men på de fleste språk vil du få feilen. Utgangen vil være udefinert ettersom heising bare flytter erklæringene til toppen, og den vil ikke initialiseres før linje nummer 3.

    Endre var til la eller const som følger, og kjør koden på nytt.

    // Accessing `name` before declaring
    console.log(name);
    
    // Declaring and initializing the `name`
    const name = "tipsbilk.net";

    Nå vil du få referansefeilen som sier at vi ikke får tilgang til variabelen før du initialiserer den.

    ReferenceError: Cannot access 'name' before initialization

    Så her er let og const introdusert i ES6, som ikke kan nås før initialisert, som feilen antyder. Dette er fordi variablene deklarert med let eller const vil være i Temporal Dead Zone (TDZ) til linjen den er initialisert. Vi har ikke tilgang til variablene fra TDZ.

    Curry i JavaScript

    Currying er en teknikk for å konvertere funksjoner med mange parametere til færre parametere med flere callables. Med den kan vi konvertere en funksjon som kan kalles add(a, b, c, d) til add(a)(b)(c)(d) callable. La oss se et eksempel på hvordan du gjør det.

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

    Vi kan generalisere getCurryCallback funksjonen som vil bli brukt for forskjellige funksjoner for å konvertere til curry callables. Du kan se JavaScript-info for mer informasjon om det.

    Forskjellen mellom dokument og vindu

    Vinduet er det øverste objektet i nettleseren. Den inneholder all informasjon om nettleservinduet, som historie, plassering, navigator, etc..; den er globalt tilgjengelig i JavaScript. Vi kan bruke den direkte i koden vår uten import. Vi kan få tilgang til egenskapene og metodene til vindusobjektet uten vindu.

    Dokumentet er delen av vindusobjektet. All HTML som er lastet inn på nettsiden, konverteres til dokumentobjektet. Dokumentobjektet refererer til det spesielle HTMLDocument-elementet, som vil ha forskjellige egenskaper og metoder som alle HTML-elementer.

      Hvordan konvertere bilde til gråtonemaling

    Vinduet objektet representerer nettleservinduet og dokumentet representerer HTML-dokumentet som er lastet inn i det nettleservinduet.

    Forskjellen mellom klientside og serverside

    Klientsiden refererer til sluttbrukeren som bruker applikasjonen. Serversiden refererer til webserveren der applikasjonen er distribuert.

    I frontend-terminologien kan vi si nettleser på brukernes datamaskiner som klientside og skytjenester som serverside.

    Forskjellen mellom innerHTML og innerText

    Både innerHTML og innerText er egenskapene til HTML-elementer. Vi kan endre innholdet i et HTML-element ved å bruke disse egenskapene.

    Vi kan tilordne HTML-strengen til innerHTML en egenskap gjengitt som vanlig HTML. Sjekk eksemplet nedenfor.

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

    Legg til ett element med id-tittelen i HTML-en din og legg til skriptet ovenfor i JavaScript-filen. Kjør koden og se utdataene. Du vil tipsbilk.net i oransje farge. Og hvis du inspiserer elementet, vil det være innenfor span-taggen. Så innerHTML vil ta HTML-strengen og gjengi den som vanlig HTML.

    InnerText på den andre siden vil ta en vanlig streng og gjengi den som den er. Det vil ikke gjengi HTML som innerHTML. Endre innerHTML til innerText i koden ovenfor og sjekk utdataene.

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

    Nå vil du se den nøyaktige strengen som vi ga på nettsiden.

    Forskjellen mellom la og var

    Søkeordene let og var brukes til å lage variabler i JavaScript. Let-søkeordet er introdusert i ES6.

    Lett er et blokk-omfang og var er funksjon-omfang.

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

    Kjør koden ovenfor. Du vil få en feilmelding på den siste linjen siden vi ikke har tilgang til la utenfor blokken fordi den er blokk-omfattet. Endre den til var og kjør den på nytt.

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

    Du vil ikke få noen feil da vi også kan få tilgang til a-variabelen utenfor blokken. La oss nå erstatte blokken med en funksjon.

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

    Du vil få en referansefeil hvis du kjører koden ovenfor, da vi ikke får tilgang til var a it utenfor funksjonen fordi den er funksjonsomfanget.

    Vi kan reklarere variablene ved å bruke var nøkkelord, men vi kan ikke reklarere variablene ved å bruke let nøkkelord. La oss se et eksempel.

    var a = "tipsbilk.net";
    var a = "Chandan";
    console.log(a);
    let a = "tipsbilk.net";
    let a = "Chandan";
    console.log(a);

    Den første kodebiten vil ikke gi noen feil, og verdien er a vil bli endret til den siste tildelte verdien. Den andre kodebiten vil gi en feil da vi ikke kan redeklarere variabler ved å bruke let.

    Forskjellen mellom øktlagring og lokal lagring

    Sesjonslagringen og lokal lagring brukes til å lagre informasjon på brukernes datamaskiner som kan nås uten internett. Vi kan lagre nøkkel-verdi-parene i både øktlagring og lokal lagring. Både nøkkel og verdi vil bli konvertert til strenger hvis du oppgir en annen datatype eller datastruktur.

    Sesjonslagringen tømmes etter at økten er over (når nettleseren er lukket). Plasseringslagringen blir ikke tømt før vi tømmer den.

    Vi kan få tilgang til, oppdatere og slette øktlagring og plasseringslagring med henholdsvis sessionStorage- og localStorage-objekter.

    Hva er NaN i JavaScript?

    NaN er forkortet til Not-a-Number. Det representerer at noe ikke er et lovlig/gyldig nummer i JavaScript. Det er noen tilfeller der vi vil få NaN som utdata som 0/0, udefinert * 2, 1 + udefinert, null * udefinert osv..,

    Hva er leksikalsk scoping?

    Det leksikalske omfanget refererer til å få tilgang til variablene fra foreldrenes omfang. La oss si at vi har en funksjon med to indre funksjoner. Den innerste funksjonen har tilgang til de to overordnede funksjonenes omfangsvariabler. På samme måte kan funksjonen på 2. nivå få tilgang til det ytterste funksjonsomfanget. La oss se det i et eksempel.

    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 bruker en omfangskjede for å finne variabelen når vi får tilgang til den et sted i koden. Først vil den sjekke variabelen i gjeldende omfang, og deretter det overordnede omfanget til det globale omfanget.

    Hva er bestått av verdi og bestått av referanse?

    Pass by value og pass by reference er to måter å sende argumentene til en funksjon i JavaScript.

    Pass by value: den lager en kopi av de originale dataene og sender den til funksjonen. Så når vi gjorde endringer i funksjonen, vil det ikke påvirke de originale dataene. Sjekk eksemplet nedenfor.

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

    Du vil se at den opprinnelige verdien av a-en ikke endres selv om vi endret den inne i funksjonen.

    Pass by reference: den sender referansen til dataene til funksjonen. Så når vi gjorde endringer i funksjonen, vil den også endre de opprinnelige dataene.

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

    Du vil se at den opprinnelige verdien av arr endres når vi endrer den inne i funksjonen.

    Merk: alle primitive datatyper sendes av verdi, og ikke-primitive sendes ved referanse.

    Hva er memoarisering?

    Memoisering er en teknikk som lagrer de beregnede verdiene i cacher og bruker dem når vi trenger dem igjen uten å beregne dem igjen. Det vil fremskynde kjøringen av koden hvis beregningen er veldig tung. Det er en lagringsavveining som ikke er et stort problem sammenlignet med tid.

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

    Det er et enkelt eksempel som demonstrerer memoarisering. Her er det ikke vanskelig å legge til to tall. Det er bare for demoen.

    Hva er hvileparameteren?

    Resten-parameteren brukes til å samle alle de gjenværende parameterne i en funksjon. La oss si at vi har en funksjon som aksepterer minimum 2 argumenter og maksimalt kan akseptere et hvilket som helst antall parametere. Siden vi ikke har det maksimale antallet argumenter, kan vi samle de to første parameterne med normale variabler og alle andre med rest-parameteren ved å bruke rest-operatoren.

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

    Resten-parameteren vil være en rekke av de tre siste argumentene i eksemplet ovenfor. Med dette kan vi ha et hvilket som helst antall parametere for en funksjon.

      Hvordan kobler du til et Logitech Bluetooth-tastatur

    Én funksjon kan bare ha én hvileparameter. Og hvileparameteren skal være den siste i rekkefølgen av parameterne.

    Hva er objektdestrukturering?

    Objektdestrukturering brukes til å få tilgang til variablene fra objektet og tilordne dem til variabler med samme navn som objektnøkler. La oss se et eksempel.

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

    Vi kan endre variablene til destrukturerte variabler på samme linje som følger.

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

    Hva er array-destrukturering?

    Array-destrukturering brukes til å få tilgang til variablene fra matrisen og tilordne dem til variabler. La oss se et eksempel.

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

    Hva er hendelsesfangst og hendelsesboblende?

    Hendelsesregistrering og hendelsesbobling er to måter å formidle hendelser på i HTML DOM. La oss si at det er to HTML-elementer, ett i hverandre. Og en hendelse skjer på det indre elementet. Nå vil hendelsesforplantningsmodusen bestemme rekkefølgen på disse hendelsenes utførelse.

    Hendelsesbobling: den kjører hendelsesbehandleren på elementet først, deretter elementet, og så går det helt opp til det øverste elementet. Dette er standard oppførsel for alle hendelsene.

    Hendelsesfangst: vi må spesifisere i tilfelle at vi må bruke denne typen hendelsesforplantning. Vi kan spesifisere det mens vi legger til hendelseslytteren. Hendelsene vil utføres i følgende rekkefølge hvis vi har aktivert hendelsesregistrering.

  • Hendelsene begynner å kjøre fra det øverste elementet til målelementet til nedover.
  • Hendelsen på målelementet vil bli utført på nytt.
  • Forplantningen av boblende hendelse vil igjen skje til det øverste elementet er oppe.
  • Vi kan stoppe hendelsesforplantningen ved å kalle event.stopPropogation en metode i hendelsesbehandleren.

    Hva er løftene i JavaScript?

    Løftet objektet brukes til asynkrone operasjoner som vil fullføre i fremtiden med en suksess- eller fiaskotilstand.

    Et løfte kan være i en av følgende tilstander.

  • venter – når operasjonen fortsatt pågår.
  • oppfylt – når operasjonen er fullført. Vi vil ha resultater (hvis noen) i suksesstilstanden.
  • avvist – når operasjonen er fullført med en feil. Vi vil ha årsaken (feilen) til at det mislyktes.
  • La oss se to eksempler på suksess- og fiaskosaker.

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

    Du kan ha mer enn én og deretter kjede om nødvendig. De tidligere returnerte dataene vil bli akseptert i neste tilbakeringing.

    Forklar de ulike typene omfang i JavaScript

    Det er to typer omfang i JavaScript. Det globale omfanget og det lokale omfanget.

    Du har kanskje hørt om funksjonsomfanget og blokkomfanget også. De er lokale scopes for henholdsvis var og let, const.

    Hva er selvpåkallende funksjoner?

    De selvpåkallende funksjonene er navnløse funksjoner som vil bli utført umiddelbart etter opprettelsen. La oss se noen eksempler.

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

    Vi kan til og med overføre argumentene til de selvpåkallende funksjonene som du har sett i eksemplet.

    Hva er pilfunksjoner?

    Pilfunksjonen er syntaktisk sukker til normalfunksjonen med noen endringer. De oppfører seg som vanlige funksjoner i generelle brukstilfeller. Pilfunksjoner kommer godt med når vi må ha tilbakeringinger. La oss se syntaksen.

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

    Det er noen forskjeller mellom pilfunksjonene og normale funksjoner.

    • Pilfunksjoner har ikke sin egen denne bindingen. Dette nøkkelordet inne i pilfunksjonen refererer til dets overordnede omfang dette.
    • Pilfunksjoner kan ikke brukes som konstruktørfunksjoner

    Hva er tilbakeringinger?

    En tilbakeringing er en funksjon som sendes til en annen funksjon som påkalles inne i denne funksjonen. Å bruke tilbakeringing er en vanlig ting i JavaScript. La oss se et eksempel.

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

    Funksjonen som er fullført sendes som en tilbakeringing til prøven. Den ferdige funksjonen påkalles med resultatet etter å ha utført en handling. Du vil se tilbakeringingsbruken hovedsakelig i asynkrone operasjoner som løfter, setTimeout, etc..,

    Hva er de forskjellige typene feil?

    La oss sjekke noen feil i JavaScript.

    ReferenceError: denne feilen vil oppstå hvis variabelen vi har tilgang til er tilgjengelig.

    TypeError: JavaScript vil gi denne feilen hvis feilen ikke samsvarer med andre typer feil. Det vil også skje når vi prøver å utføre en handling som ikke er kompatibel med dataene.

    SyntaxError: denne feilen vil oppstå hvis JavaScript-syntaksen ikke er riktig.

    Det er noen andre typer feil også. Men dette er de vanlige feiltypene i JavaScript.

    Hva er de forskjellige omfanget av variabler i JavaScript?

    Det er to omfang av variabler i JavaScript. Variablene som er deklarert ved å bruke nøkkelordet var vil ha funksjonsomfang, og variablene deklarert med let og const vil ha blokkomfanget.

    Se det 17. spørsmålet for flere detaljer om disse variablenes omfang.

    Hva er escape-tegn i JavaScript?

    Omvendt skråstrek er escape-tegnet i JavaScript. Den brukes til å skrive ut noen spesialtegn som vi generelt ikke kan skrive ut. La oss si at vi ønsker å skrive ut apostrof («) inne i en streng som vi ikke kan gjøre normalt, siden strengen vil ende ved den andre apostrof. I så fall bruker vi escape-tegnet for å unngå å avslutte strengen på det tidspunktet.

    const message="Hi, I"m tipsbilk.net';
    console.log(message);

    Vi kan oppnå utgangen ovenfor uten å bruke escape-tegn ved å erstatte de utvendige enkeltapostrofene med doble apostrofene. Men det er bare et eksempel på hvordan man bruker en rømningsfigur. Det er andre karakterer som vi definitivt trenger escape-karakterer for som n, t, osv..,

    Hva er BOM og DOM?

    Browser Object Model (BOM): alle nettlesere har BOM som representerer gjeldende nettleservindu. Den inneholder vårt øverste vindusobjekt som brukes til å manipulere nettleservinduet.

    Document Object Model (DOM): nettlesere lager DOM når HTML-en lastes inn i trestrukturen. Vi kan manipulere HTML-elementene ved å bruke DOM API.

    Hva er et skjermobjekt?

    Skjermobjektet er en av egenskapene til det globale vindusobjektet. Den inneholder forskjellige egenskaper for skjermen der det gjeldende nettleservinduet er gjengitt. Noen av egenskapene er bredde, høyde, orientering, pikseldybde osv.,

    Konklusjon

    Det kan være oppfølgingsspørsmål for alle spørsmålene ovenfor. Så du må forberede konseptene rundt alle spørsmålene ovenfor.

    Du kan også utforske noen vanlige spørsmål og svar på Java-intervjuer.

    God læring 🙂