1/28
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Co to jest hoisting w JavaScript?
Hoisting to mechanizm, w którym deklaracje zmiennych (var) i funkcji są przenoszone na początek ich zakresu przed wykonaniem kodu.
Różnica między var, let i const?
var: funkcjonuje w zakresie funkcji, można redeklarować
let: blokowy zakres (od klamry do klamry), nie można redeklarować
const: blokowy zakres (od klamry do klamry), stała wartość, nie można zmieniać po zadeklarowaniu, nie jest hoistowany
let i const hoistowane, ale nie można ich używać przed inicjalizacją (tzw. temporal dead zone)
Co to jest closure?
Closure to mechanizm w JavaScript, który pozwala funkcji wewnętrznej zachować dostęp do zmiennych funkcji zewnętrznej, nawet po tym, jak ta zewnętrzna funkcja została wywołana i zakończona.
function outer() {
let x = 10;
return function inner() {
console.log(x); // inner ma dostęp do x mimo, że outer już zakończone
};
}
outer(); // zwraca funkcję inner
outer()(); // wywołuje inner, która wypisuje 10, mimo że outer już nie działa
Wywołanie outer()
zwraca funkcję inner
, która ma zachowane środowisko (closure) ze zmienną x
. Gdy wykonasz outer()()
, funkcja inner
jest wywołana i ma dostęp do x
, mimo że outer
zakończyła działanie. To właśnie jest istota closure — funkcja "pamięta" zakres, w którym została utworzona.
Czym różni się różnie === od ==?
=== porównuje wartość i typ bez konwersji typów, == porównuje wartości z konwersją
// Przyklad z ==
console.log(5 == '5'); // true, bo '5' (string) zostaje zamienione na 5 (number)
console.log(false == 0); // true, bo false zamienia się na 0
// Przyklad z ===
console.log(5 === '5'); // false, bo typy są różne (number vs string)
console.log(false === 0); // false, bo typy są różne (boolean vs number)
Co to jest event loop?
Mechanizm, który zarządza kolejką zdarzeń i pozwala na asynchroniczne wykonywanie kodu w JavaScript.
Jakie są typy danych w JavaScript?
Primitive: string, number, boolean, null, undefined, symbol, bigint
Reference: objects, arrays, functions
Czym są Promisy?
Obiekt reprezentujący końcowy rezultat operacji asynchronicznej: fulfilled, rejected lub pending
Różnica między funkcją regularną a arrow function?
Arrow function nie ma własnego this, arguments i nie może być użyta jako konstruktor.
Funkcje regularne mają własne this.
Co oznacza słowo kluczowe this
w JavaScript?
this
odwołuje się do kontekstu wywołania funkcji, np. obiektu, w którym funkcja jest wywołana.
Jak działa destructuring assignment?
Pozwala na rozpakowanie wartości z tablic lub właściwości obiektów do odrębnych zmiennych.
Co to jest prototyp w JavaScript?
Mechanizm dziedziczenia, w którym obiekty mogą dziedziczyć właściwości i metody z innych obiektów.
Czym są funkcje wyższego rzędu (higher-order functions)?
Funkcje, które przyjmują inne funkcje jako argument lub zwracają je.
Jakie są metody manipulacji tablicami w JavaScript? (przykłady)
map, filter, reduce, forEach, find, some, every.
Co to jest event delegation?
Technika przypisywania pojedynczego event listenera do rodzica elementów zamiast do każdego elementu osobno.
Jak działa async/await?
Umożliwia pisanie kodu asynchronicznego w sposób synchroniczny, na bazie Promisów.
Co to jest DOM?
Document Object Model — struktura reprezentująca HTML w formie obiektów, pozwalająca na manipulację dokumentem.
Czym się różni var od let w kontekście hoistingu?
var jest hoistowane i inicjalizowane undefined, let jest hoistowane, ale nie inicjalizowane (TDZ – temporal dead zone).
Co to jest temporal dead zone (TDZ)?
Okres od początku bloku do deklaracji zmiennej let/const, kiedy zmienna jest niedostępna.
// ReferenceError: Cannot access 'x' before initialization
Czym różni się synchronous od asynchronous code?
Synchronous wykonuje się kolejno, blokując dalsze wykonanie. Asynchronous pozwala na dalsze działania podczas oczekiwania na rezultat.
Co to jest JSON?
JavaScript Object Notation — format wymiany danych oparty na strukturze obiektów JavaScript.
Jak utworzyć i usunąć event listener?
addEventListener(event, handler) oraz removeEventListener(event, handler)
Co to jest IIFE?
Immediately Invoked Function Expression — funkcja wywoływana natychmiast po zdefiniowaniu
const suma = (function(a, b) {
return a + b;
})(5, 7);
console.log(suma); // wypisze: 12
Jakie są metody konwersji typów w JavaScript?
parseInt, parseFloat, String(), Number(), Boolean().
Różnica między null a undefined?
null oznacza celową nieobecność wartości, undefined — wartość nieprzypisaną lub brak.
Jak działa operator spread ...
?
Rozwija elementy tablic lub właściwości obiektu.
Co to jest memoizacja?
Technika optymalizacji, polegająca na zapamiętywaniu wyników funkcji zapobiegając wielokrotnym obliczeniom.
Co to jest event bubbling?
Proces propagacji eventu od elementu docelowego do rodziców w górę drzewa DOM.
Jakie są sposoby definiowania funkcji?
Deklaracja funkcji, wyrażenie funkcyjne, arrow function, konstruktor funkcji.
Co to jest strict mode?
Tryb, który wymusza bardziej restrykcyjną składnię i wykrywa błędy („use strict”)