JavaScript

0.0(0)
studied byStudied by 0 people
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/28

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

29 Terms

1
New cards

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.

2
New cards

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)

3
New cards

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.

4
New cards

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)

5
New cards

Co to jest event loop?

Mechanizm, który zarządza kolejką zdarzeń i pozwala na asynchroniczne wykonywanie kodu w JavaScript.

6
New cards

Jakie są typy danych w JavaScript?

Primitive: string, number, boolean, null, undefined, symbol, bigint
Reference: objects, arrays, functions

7
New cards

Czym są Promisy?

Obiekt reprezentujący końcowy rezultat operacji asynchronicznej: fulfilled, rejected lub pending

8
New cards

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.

9
New cards

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.

10
New cards

Jak działa destructuring assignment?

Pozwala na rozpakowanie wartości z tablic lub właściwości obiektów do odrębnych zmiennych.

11
New cards

Co to jest prototyp w JavaScript?

Mechanizm dziedziczenia, w którym obiekty mogą dziedziczyć właściwości i metody z innych obiektów.

12
New cards

Czym są funkcje wyższego rzędu (higher-order functions)?

Funkcje, które przyjmują inne funkcje jako argument lub zwracają je.

13
New cards

Jakie są metody manipulacji tablicami w JavaScript? (przykłady)

map, filter, reduce, forEach, find, some, every.

14
New cards

Co to jest event delegation?

Technika przypisywania pojedynczego event listenera do rodzica elementów zamiast do każdego elementu osobno.

15
New cards

Jak działa async/await?

Umożliwia pisanie kodu asynchronicznego w sposób synchroniczny, na bazie Promisów.

16
New cards

Co to jest DOM?

Document Object Model — struktura reprezentująca HTML w formie obiektów, pozwalająca na manipulację dokumentem.

17
New cards

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

18
New cards

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

19
New cards

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.

20
New cards

Co to jest JSON?

JavaScript Object Notation — format wymiany danych oparty na strukturze obiektów JavaScript.

21
New cards

Jak utworzyć i usunąć event listener?

addEventListener(event, handler) oraz removeEventListener(event, handler)

22
New cards

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

23
New cards

Jakie są metody konwersji typów w JavaScript?

parseInt, parseFloat, String(), Number(), Boolean().

24
New cards

Różnica między null a undefined?

null oznacza celową nieobecność wartości, undefined — wartość nieprzypisaną lub brak.

25
New cards

Jak działa operator spread ...?

Rozwija elementy tablic lub właściwości obiektu.

26
New cards

Co to jest memoizacja?

Technika optymalizacji, polegająca na zapamiętywaniu wyników funkcji zapobiegając wielokrotnym obliczeniom.

27
New cards

Co to jest event bubbling?

Proces propagacji eventu od elementu docelowego do rodziców w górę drzewa DOM.

28
New cards

Jakie są sposoby definiowania funkcji?

Deklaracja funkcji, wyrażenie funkcyjne, arrow function, konstruktor funkcji.

29
New cards

Co to jest strict mode?

Tryb, który wymusza bardziej restrykcyjną składnię i wykrywa błędy („use strict”)