Pytania rekrutacyjne JavaScript

169 pytań — 20 odpowiedzi dostępnych od razu

Darmowy podgląd pytań rekrutacyjnych JavaScript pozwala sprawdzić swoją gotowość do rozmowy o języku używanym po stronie przeglądarki i serwera. Zobacz przykładowe odpowiedzi z pełnej bazy 169 zagadnień.

Zakres materiału obejmuje API JavaScript, funkcje, asynchroniczność, środowisko przeglądarki oraz najważniejsze pojęcia języka. Fiszki pomagają przećwiczyć krótkie, rzeczowe wyjaśnienia często spotykanych tematów.

Darmowy start

Pierwsze 20 odpowiedzi są dostępne od razu

Przeglądaj pełną listę 169 pytań. Pełne odpowiedzi, przykłady kodu i materiały do nauki odblokujesz w panelu.

Odblokuj 149 odpowiedzi

JavaScript API - część 1

Jaka jest różnica między setTimeout() a setInterval()?

Funkcja setTimeout() wykonuje kod lub funkcję raz po określonym czasie wyrażonym w milisekundach.

setTimeout(function () {
    console.log('Done after one second!');
}, 1000);

Funkcja setInterval() wykonuje kod lub funkcję cyklicznie co określony czas, zaczynając po pierwszym okresie. Funkcja zwraca identyfikator, którego można użyć do przerwania działania za pomocą clearInterval().

const intervalID = setInterval(function () {
    console.log('Done every second...');
}, 1000);
// clearInterval(intervalID); // Przerwanie

Jaka jest różnica między == i ===?

Podwójny znak równości == (ang. equality) sprawdza równość dwóch wyrażeń lub wartości. Przed porównaniem próbuje je przekonwertować do tego samego typu.

Potrójny znak równości === (ang. identity) porównuje dodatkowo zgodność typów, ale nie dokonuje konwersji.

x y x == y x === y
5 5 true true
1 '1' true false
null undefined true false
0 false true false
‘1,2’ [1,2] true false

Jak wyczyścić tablicę obiektów w JavaScript?

  1. Nadpisanie tablicy pustą tablicą:
let arr = ['hello', 'world'];
arr = [];
console.log(arr); // []
  1. Ustawienie właściwości length tablicy na wartość 0:
let arr = ['hello', 'world'];
arr.length = 0;
console.log(arr); // []
  1. Wykorzystanie metody splice(), która może być użyta do usuwania elementów z tablicy (splice() modyfikuje tablicę i zwraca usunięte elementy:
let arr = ['hello', 'world'];
let removed = arr.splice(0, arr.length);
console.log(arr); // []
console.log(removed); // ["hello", "world"]

Czym się różnią let i var?

Różnica dotyczy zasięgu w jakim zadeklarowana jest zmienna

  • var deklaruje zmienną dla całej funkcji (function scope)
  • let deklaruje zmienną dla bloku (block scope) Dodatkowo, deklaracje wszystkich zmiennych są hoistowane, ale tylko var są inicjalizowane przez undefined, podczas gdy let i const pozostają niezainicjalizowane.
function saveCourse(courseData) {
    if (courseData) {
        console.log(maxStudents);  // undefined
        console.log(courseLength); // ReferenceError

        var maxStudents = 12;      // function scope
        let courseLength = 30;     // block scope
    }

    console.log(maxStudents);      // 12
    console.log(courseLength);     // ReferenceError
}

Jakie są typy danych w JavaScript?

W JavaScript wyróżniamy 9 typów:

  • undefined typeof undefined === "undefined"
  • Boolean typeof true === "boolean"
  • Number typeof 2 === "number"
  • String typeof "2" === "string"
  • BigInt typeof 2n === "bigint"
  • Symbol typeof Symbol("id") === "symbol"
  • null typeof null === "object"
  • Object typeof new Object() === "object"
  • Function typeof alert === "object" (operator typeof wskazuje, że jest to obiekt, jednak wynika to z faktu, że każdy konstruktor funkcji dziedziczy po konstruktorze Object)

Jak utworzyć obiekt w JavaScript?

class Course {
 constructor(title) { this.title = title; }
}
// 1. Za pomocą konstruktora
const jsCourse = new Course('JS'); 
// 2. Za pomocą Object Literal
const angularCourse = { title: 'Angular' };
 
// 3. Za pomocą new Object
const reactCourse = new Object(); 
reactCourse.title = 'React';
 
// 4. Za pomocą Object.create
const vueCourse = Object.create(jsCourse); 
vueCourse.title = 'Vue';

Jakie znasz falsy values?

Falsy values są to wartości, które są traktowane tak samo jak false, gdy są użyte w kontekście boolean, np. w instrukcji if.

JavaScript używa konwersji typów rzutując każdą wartość na boolean w sytuacjach, które tego wymagają, np. w instrukcji warunkowej if lub pętlach. Wyróżniamy 8 falsy values:

  • false Domyślna wartość boolean
  • null Brak wartości
  • undefined Wartość niezdefiniowana
  • NaN Not a number, np. "abc" / 4
  • '' Pusty string
  • 0 Liczba 0
  • -0 Liczba -0
  • 0n Wartość 0 jako BigInt

Co odróżnia null od undefined?

W świecie JS undefined oznacza zmienną, która została zadeklarowana, ale nie posiada jeszcze wartości, na przykład:

let courseLength;
console.log(courseLength); // undefined
console.log(typeof courseLength); // "undefined"

Z kolei null jest wartością, która może zostać przypisana do zmiennej, która nie posiada żadnej wartości:

let courseContent = null;
console.log(courseContent); // null
console.log(typeof courseContent); // "object"
console.log(null === undefined); // false
console.log(null == undefined); // true

Czym jest spread operator?

Spread operator pozwala rozwinąć wyrażenie w miejscach, gdzie potrzebne jest wiele argumentów (do wywołań funkcji), wiele elementów (tworzenie tablic) lub wiele zmiennych.

const results = [5, 5, 4];
function calculateResults(a, b, c) {
    return a + b + c;
}
calculateResults(5, 5, 4); // 14
calculateResults(...results); // 14

var courses = ['Vue', 'React', 'Angular'];
const [firstCourse, ...allTheRest] = courses;
console.log(firstCourse); // "Vue"
console.log(allTheRest); // ["React", "Angular"]
console.log([...firstCourse]);// ["V", "u", "e"]

Czym jest rest operator?

Rest operator wygląda tak samo jak Spread operator, ale jest używany do destrukturyzacji obiektów i tablic. W przeciwieństwie do Spread operatora, pakuje wiele elementów w jeden:

function sum(...results) {
return results.reduce((a, b) => a + b);
}
sum(5) // 5
sum(5, 5) // 10
sum(5, 5, 4, 3, 1, 5); // 23

Co oznacza NaN?

NaN reprezentuje wartość, która nie jest liczbą, przykładowo:

'abc' / 4 // NaN

Do sprawdzenia czy zmienna lub wyrażenie zawiera NaN, możemy skorzystać z funkcji Number.isNan()

Number.isNan('abc' / 4); // true
Number.isNan('100');     // false

Co ciekawe NaN nigdy nie jest równa innej liczbie, nie jest równa nawet samej sobie:

console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
console.log(typeof NaN); // "number"

Jak poprawnie stworzyć URL?

Aby stworzyć poprawny adres URL można skorzystać z funkcji encodeURI(), która zakoduje wszystkie znaki specjalne za wyjątkiem <, ,, /, ?, :, @, &, =, +, $, #, >.

W drugą stronę, aby odczytać adres URI zakodowany przez encodeURI() można skorzystać z decodeURI(). Funkcja rzuca wyjątek w przypadku, gdy nie można poprawnie odczytać adresu URI.

const uri = 'https://example.com/ąę';
const encodedURI = encodeURI(uri);

console.log(encodedURI); 
// https://example.com/%C4%85%C4%99

console.log(decodeURI(encodedURI));
// https://example.com/ąę

Co odróżnia call() od apply()?

Funkcje call() i apply() służą do podmiany kontekstu wykonania funkcji, czyli podmiany wskaźnika this, przez co możliwe jest wywołanie funkcji zdefiniowanej w obiekcie A na obiekcie B.

Funkcja apply() wywołuje funkcję używając do tego przekazanej wartości this oraz listy argumentów przekazanej w formie tablicy:

const numbers = [1, 2], others = [3, 4];
numbers.push.apply(numbers, others);
console.log(numbers); // [1, 2, 3, 4]

Funkcja call() w odróżnieniu od apply() przyjmuje argumenty w postaci pojedynczych wartości:

const numbers = [1, 2], others = [3, 4];
numbers.push.call(numbers, ...others);
console.log(numbers); // [1, 2, 3, 4]

Do czego służy funkcja bind()?

Funkcja bind(), w odróżnieniu od call() i apply() nie zwraca wyniku, ale funkcję, którą można wywołać w przyszłości. Dzięki powiązaniu z this funkcja ta - niezależnie kiedy zostanie wywołana - będzie znała poprawną wartość this z momentu kiedy została utworzona.

Dzięki takiemu zachowaniu, bind() stosuje się do obsługi asynchronicznej eventów.

const numbers = [1, 2];
const addFn = numbers.push.bind(numbers);
addFn(3);
addFn(4);
console.log(numbers); // [1, 2, 3, 4]

Co różni slice() i splice()?

W JavaScript funkcje slice() oraz splice() są często mylone. Mimo że mają bardzo podobne nazwy, mają zupełnie inne zadania:

slice splice
Nie modyfikuje tablicy Modyfikuje tablicę
Zwraca część tablicy jakonową tablicę Zwraca usunięte elementy tablicy
Służy do wybierania elementów z tablicy Służy do dodawania lub usuwania elementów z listy

Pojęcia - część 1

Czym jest scope?

Scope jest to zakres zmiennych, który określa ich widoczność i dostępność w różnych miejscach kodu. Jest zależny od sposobu, w jaki zostaną zadeklarowane.

Przy pomocy słowa kluczowego let deklarujemy zmienne w ramach block scope. Zakres zmiennych jest ograniczony tylko do bloku kodu, w którym zostały zadeklarowane.

Słowo kluczowe const służy do deklarowania stałych. Ich zakres jest analogiczny do zmiennych zadeklarowanych przy pomocy let a różnica polega na tym, że wartość raz przypisana const nie może zostać już zmodyfikowana.

Za pomocą var można definiować zmienne, które są widoczne wewnątrz funkcji nawet po opuszczeniu bloku, w którym zostały zdefiniowane. Ich zakres ograniczony jest do funkcji, tzw. function scope, lub do przestrzeni globalnej.

Jakie znasz typy scope?

W JavaScript wyróżniamy trzy rodzaje scope:

  • Global scope, gdzie zmienne są deklarowane poza obrębem funkcji
  • Function scope, gdzie zmienne są deklarowane w obrębie funkcji
  • Block scope, gdzie zmienne są deklarowane w obrębie bloku kodu (od ES6)
function foo(courseData) {
    let maxStudents = 10;
    var numLessons = 10;
  
    if (courseData) {
        let maxStudents = 4;  // block scope
        var numLessons = 4;   // function scope
    }
    
    console.log(maxStudents); // Wyświetla 10
    console.log(numLessons);  // Wyświetla 4
}

Co to jest dziedziczenie prototypowe?

Dziedziczenie prototypowe jest mechanizmem, za pomocą którego obiekty dziedziczą właściwości i metody po obiektach - rodzicach. Prototype jest obiektem, który służy jako szablon podczas tworzenia innych obiektów.

function Animal(name) {
    this.name = name;
}

function Dog(name) {
    // Podczas tworzenia Dog, wywoływany jest konstruktor Animal
    Animal.call(this, name);
}

// Dog dziedziczy po Animal
Dog.prototype = Object.create(Animal.prototype);
Animal.prototype.getName = function () {
    return 'Hello, ' + this.name;
}

// Mimo że 'name' jest zapisane w Animal, Dog ma do niego dostęp
var dog = new Dog('Husky');
console.log(dog.getName()); // 'Husky'

Jak działa hoisting?

Hoisting to mechanizm JavaScript przenoszący deklaracje funkcji oraz zmiennych na samą górę, tzn. do zasięgu funkcji, lub globalnego zasięgu.

Przenoszone są deklaracje a nie definicje funkcji oraz zmiennych.

var x = 1;                // inicjalizacja x
console.log(x + ' ' + y); // '1 undefined'
var y = 2;                // inicjalizacja y

Co dla interpretera jest równoznaczne z:

var x = 1;                // inicjalizacja x
var y;                    // deklaracja y
console.log(x + ' ' + y); // '1 undefined'
y = 2;                    // inicjalizacja y

Co to jest closure?

Closure, czyli domknięcie to funkcja wewnętrzna, która ma dostęp do

a) zmiennych, które sama definiuje,
b) zmiennych w scope funkcji zewnętrznej,
c) zmiennych globalnych.

W przykładzie poniżej funkcja add10 stanowi domknięcie (funkcję wewnętrzną) funkcji add (zewnętrznej). Pomimo że podczas wywołania funkcji add10(20) i add10(50) przekazujemy tylko jeden parametr, domknięcie zwraca poprawny wynik działania.

Wartość 10 jest w scope funkcji zewnętrznej add. Została zapamiętana w momencie wywołania add(10), dzięki czemu jest dostępna w domknięciu.

const add = x => y => x + y;
const add10 = add(10);
console.log(add10(20)); // 30
console.log(add10(50)); // 60
21. Co to jest IIFE?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
22. Jak zmienić kontekst wywołania funkcji?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
23. Do czego służy use strict; ?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
24. Object.freeze() vs Object.seal()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
25. Czym jest Event Loop?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
26. Czym są Persistent Data Structures?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
27. Jak stworzyć namespace?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
28. Jak debugować kod JavaScript?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
29. Jak zabezpieczyć obiekt przed rozszerzaniem?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
30. Co różni funkcje synchroniczne od asynchronicznych?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Funkcje - część 1

31. Jak działają funkcje map(), filter() i reduce()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
32. Jaka jest różnica między forEach() a map()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
33. Czym są first class functions?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
34. Czym są funkcje wyższego rzędu?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
35. Co to jest pure function?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Browser / Przeglądarka - część 1

36. Czym jest Event Bubbling?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
37. Czym jest Event Capturing?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
38. Na czym polega delegacja zdarzeń?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
39. Do czego służy obiekt history?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
40. Jaka jest różnica między attribute a property?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
41. Do czego służy web storage?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
42. Jak skorzystać z web storage?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
43. Czy można odczytać localStorage innej domeny?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
44. Co różni cookies, sessionStorage i localStorage?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
45. Jakie metody są dostępne w sessionStorage?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Async - część 1

46. Co to jest Promise?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
47. Co to jest callback ?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
48. Czym jest callback hell?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
49. Jakie są korzyści z wykorzystania Promise?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
50. Co to jest async/await?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

JavaScript API - część 2

51. Jak w JavaScript można stworzyć tablicę?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
52. Jak sklonować obiekt w JavaScript?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
53. Czym jest JSON i jak go obsługiwać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
54. Jak odczytać dane zapisane w JSON?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
55. Jaki jest efekt użycia funkcji setTimeout z wartością 0?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
56. Po co stosujemy Object.seal()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
57. Po co stosujemy Object.freeze()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
58. Co różni Object.values od Object.entries?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
59. Jaka jest różnica między for...in a for...of ?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
60. Jak sprawdzić czy obiekt posiada property?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Pojęcia - część 2

61. Jakie są korzyści z zastosowania modułów?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
62. Czym jest call stack?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
63. Co to jest memory heap ?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
64. Do czego służy polyfill?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
65. Na czym polega tree shaking?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
66. Czym jest łańcuch prototypów?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
67. Jaka jest różnica między __proto__ a prototype?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
68. Czym są klasy ES6?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
69. Na czym polega obfuskacja?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
70. Na czym polega minifikacja?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Funkcje - część 2

71. Na czym polega memoizacja?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
72. Czym jest currying?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
73. Na czym polega partial application?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
74. Czym są arrow functions?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
75. Czym są funkcje anonimowe?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Browser / Przeglądarka - część 2

76. Do czego służy preventDefault()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
77. Do czego służy stopPropagation()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
78. Jak zmienić URL bez przeładowania strony?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
79. Jak wywołać przekierowanie na inną stronę?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
80. Jak odczytać adres strony w JavaScript?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
81. Z jakich elementów składa się URL?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
82. Do czego służą data attributes?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
83. Jaka jest różnica między load a DOMContentLoaded ?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
84. Czym jest operator void?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
85. Jaka jest różnica między window a document?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Cookies

86. Do czego służą cookies?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
87. Jakie znasz opcje cookie?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
88. Jak tworzone są cookies?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
89. W jaki sposób odczytać cookies?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
90. Jak usunąć cookie?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

HTTP

91. Jakie są metody żądań HTTP?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
92. Czym jest CORS?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
93. Na czym polega polityka same-origin?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
94. Na czym polega idempotentność metod HTTP?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
95. Jak wykonać zapytanie HTTP z JavaScript?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Async - część 2

96. W jakich stanach może występować Promise?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
97. Na czym polega Promise Chaining?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
98. Do czego służy Promise.all()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
99. Do czego służy Promise.race()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
100. Jak można przerwać działanie Promise()?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Zadania - co robi poniższy kod?

101. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
102. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
103. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
104. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
105. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
106. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
107. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
108. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
109. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
110. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
111. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
112. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
113. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
114. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
115. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
116. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
117. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
118. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
119. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
120. Co robi poniższy kod?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Performance / Wydajność

121. Jaka jest różnica między <script async> a <script defer>?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
122. Ładowanie czcionek przez <link> czy @import?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
123. Czym jest garbage collector?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
124. Jakie znasz algorytmy garbage collectora?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
125. Na czym polega Reference Counting Algorithm?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
126. Na czym polega algorytm Mark and Sweep?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
127. Co to jest memory leak?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
128. Jak zoptymalizować zużycie zasobów?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
129. Jak zwiększyć performance strony?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
130. Jak odnaleźć memory leak w aplikacji?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

JavaScript API - część 3

131. Co to jest WeakSet?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
132. Co odróżnia WeakSet od Set?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
133. Co to jest WeakMap?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
134. Co odróżnia WeakMap od Map?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
135. Czym jest barrel?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
136. Czym jest TypedArray?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
137. Jaka jest różnica między obiektami typu host i native?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
138. Jakie wartości może mieć this?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
139. Do czego służy Iterator?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
140. Do czego służy Generator?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Security / Bezpieczeństwo

141. Jakie znasz sposoby na poprawę bezpieczeństwa aplikacji JavaScript?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
142. Jak zabezpieczyć cookie?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
143. Na czym polega atak Cross-site Scripting?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
144. Na czym polega atak Cross-site Request Forgery?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
145. Na czym polega atak Server-side JavaScript Injection?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Pojęcia - część 3

146. Jaka jest różnica między Obfuscation a Encryption?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
147. Czym jest event table?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
148. Co to jest Temporal Dead Zone?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
149. Czym jest service worker?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
150. Do czego służą server-sent events?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
151. Czym jest Proxy i Reflect API i do czego służą?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
152. Jak działają WeakMap i WeakSet i kiedy ich używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
153. Czym są microtasks vs macrotasks w Event Loop?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
154. Jak działają generatory i iteratory oraz async generators?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
155. Czym jest SharedArrayBuffer i Atomics?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
156. Jak działają Service Workers i kiedy ich używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
157. Jak zaimplementować wzorzec publikuj-subskrybuj (pub/sub)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
158. Czym są Web Workers i jak ich używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
159. Jak działają dynamiczne importy i top-level await w ES Modules?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
160. Czym jest Streams API i jak go używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
161. Jak działa AbortController i do czego służy?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
162. Jak działają Observer API (Intersection, Mutation, Resize)?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
163. Czym są requestAnimationFrame i requestIdleCallback?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
164. Jak działają Symbole i well-known symbols?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
165. Jak używać Web Crypto API do kryptografii?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
166. Jak działa IndexedDB i kiedy go używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
167. Czym są Web Components i jak je tworzyć?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
168. Jak używać Performance API do mierzenia wydajności?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi
169. Czym jest BigInt i kiedy go używać?

Odpowiedź dostępna w pełnej wersji. Odblokuj 149 pozostałych odpowiedzi i ucz się z pełnego zestawu.

Odblokuj odpowiedzi

Chcesz poznać wszystkie odpowiedzi?

Uzyskaj pełny dostęp do 169 pytań rekrutacyjnych z JavaScript oraz pozostałych technologii.

Zobacz plany cenowe