JS jobbintervju Flashcards
Vad är skillnaden mellan null och undefined?
null används för att indikera frånvaro av värde, undefined betyder att en variabel inte har tilldelats ett värde ännu.
Vad är skillnaden mellan let, const och var när du deklarerar variabler?
let och const är blockomfattande och har blockscope, medan var har funktionsscope. let kan ändras, const är konstant.
Vad är en closure?
En closure är en funktion tillsammans med den omgivande omfattningen av variabler.
Vad är skillnaden mellan synkron och asynkron kod?
Synkron kod körs i sekvens.
Asynkron kod kan utföras parallellt och väntar inte på att en uppgift ska slutföras innan den går vidare.
Vad är prototypkedja (prototype chain) och hur fungerar det i JavaScript?
Prototypkedjan är en mekanism för att söka efter egenskaper i objekts prototyp och dess prototypkedjor. Om en egenskap inte hittas i objektet söks det i dess prototyp och så vidare.
När används en callback-funktion oftast?
Den används i asynkron kod för att hantera resultatet av en uppgift.
Vad är en IIFE (Immediately Invoked Function Expression)?
En IIFE är en funktion som definieras och omedelbart körs.
Hur väljer du ett HTML-element med JavaScript?
querySelector och getElementById
Hur lägger du till en händelselyssnare på ett HTML-element?
Använd addEventListener för att lägga till en händelselyssnare på ett HTML-element. Det tar två argument: typen av händelse och en funktion som ska köras när händelsen inträffar.
Vad är event bubbling och event delegation?
Event bubbling är när en händelse sprider sig genom DOM-trädet från det mest specifika elementet upp till dokumentet.
Event delegation är att placera en event listener på en gemensam förälder för att hantera händelser på dess barn. Det minskar antalet lyssnare och fungerar bra för dynamiskt skapade element.
Vad är arrow-funktioner och vad skiljer dem från vanliga funktioner?
Anonyma funktioner med kortare syntax.
Binder inte sitt eget this, vilket gör dem användbara i vissa sammanhang för att undvika problem med scopet av this.
Vad är destructuring?
Destructuring är en teknik som gör det möjligt att extrahera värden från objekt och arrayer och tilldela dem till variabler.
Hur används promises för att hantera asynkron kod?
Genom att representera resultatet av en asynkron operation. Det gör det möjligt att skriva kod som ser ut som synkron kod.
Vad är skillnaden mellan map(), filter() och reduce()?
map() gör något med varje element i en array och returnerar en ny array med de nya värdena.
filter() filtrerar element i en array baserat på ett villkor och returnerar en ny array.
reduce() används för att reducera arrayen till ett enda värde genom att applicera en funktion på varje element.
Vad står AJAX för?
AJAX står för Asynchronous JavaScript and XML.
Nämn 2 sätt att göra ett HTTP GET-anrop med JavaScript?
fetch() eller XMLHttpRequest
fetch() är en modern metod som returnerar en Promise som innehåller svaret från servern.
Vad är ett CORS-problem och hur kan det lösas?
CORS (Cross-Origin Resource Sharing) är en säkerhetsåtgärd som hindrar obehörig dataåtkomst över olika domäner.
Ställ in servern för att tillåta åtkomst från specifika domäner med hjälp av HTTP-headers.
Skillnad mellan Angular, React och Vue?
- Angular: ramverk för att bygga stora och komplexa applikationer.
- React: js-bibliotek för att bygga användargränssnitt med fokus på komponentbaserad utveckling.
- Vue: progressivt ramverk som är lätt att integrera och använda.
Vad är virtual DOM i React?
Virtual DOM är en virtuell representation av den riktiga DOM-strukturen i minnet.
3 punkter för att beskriva konceptet “state” i React-komponenter?
- Intern data som kan ändras i en React-komponent.
- När state ändras, renderas komponenten om och visar den nya datan.
- State används för att hålla reda på komponentens tillstånd och uppdateras vanligtvis med setState()-metoden.
XSS-attack (Cross-Site Scripting) och hur kan du förhindra det?
XSS: skadlig kod injiceras i en webbsida för att stjäla information från användare.
Förhindras genom:
1. Validera och escapera användargenererad indata
2. Använda Content Security Policy (CSP) för att begränsa exekvering av skript.
Vad är en CSRF-attack (Cross-Site Request Forgery) och hur kan du skydda en applikation från det?
CSRF är en attack där en obehörig hemsida försöker komma åt en annan webbplats där användaren redan är inloggad.
Kan förebyggas genom anti-CSRF tokens, som genereras och kontrolleras för varje request.
Vad är enhetstestning?
Hur kan du utföra enhetstester för JavaScript-kod?
Att testa enskilda enheter av kod (funktioner eller metoder) för att säkerställa att de fungerar som förväntat.
Kan utföras med testramverk som Jest eller Mocha genom att skriva testcase som kontrollerar funktionernas resultat och beteende.
Nämn 3 verktyg för att felsöka JavaScript-kod?
- Webbläsarkonsolen för att inspektera variabler och logga meddelanden.
- Google Chrome DevTools eller Firefox Developer Tools, kan också användas för att stega igenom koden och identifiera fel.
- Linters