100 запитань та відповідей по темі:

Java Script — Шпаргалка

1. Що таке JavaScript?

JavaScript — це мова програмування для вебу, яка дозволяє робити сторінки інтерактивними.

2. Як підключити JavaScript до HTML?

За допомогою тегу <script src="file.js"></script> або вставити код всередині <script></script>.

3. Що таке змінні в JS?

Змінні зберігають дані. Оголошуються через let, const, або var.

4. Чим різняться let, const і var?
  • var – стара декларація, функціональна область видимості.
  • let – блочна область видимості, змінна.
  • const – блочна область видимості, константа (незмінна).
5. Які типи даних є в JavaScript?

Основні типи: string, number, boolean, null, undefined, symbol, object.

6. Що таке оператори в JS?

Оператори виконують дії над значеннями: арифметичні, порівняння, логічні, присвоєння.

let a = 10; let b = 3;

console.log(a + b); // 13 (додавання)
console.log(a - b); // 7  (віднімання)
console.log(a * b); // 30 (множення)
console.log(a / b); // 3.333... (ділення)
console.log(a % b); // 1  (остача від ділення)
console.log(a ** b); // 1000 (степінь: 10^3)
7. Що таке масиви?

Масиви — це упорядковані колекції елементів, наприклад: let arr = [1, 2, 3];

8. Як отримати довжину масиву?

Властивість length: arr.length.

9. Що таке об’єкти?

Об’єкти зберігають дані у вигляді ключ-значення, наприклад: let user = {name: 'John', age: 30};

10. Як звернутися до властивостей об’єкта?

Через крапку або квадратні дужки: user.name або user['name'].

11. Що таке функції?

Функції — це блоки коду для повторного використання: function greet() { console.log('Hi'); }

12. Як створити функцію-вираз (function expression)?

const greet = function() { console.log('Hi'); };

13. Що таке arrow function?

Скорочений запис функції: const sum = (a, b) => a + b;

14. Що таке callback-функції?

Функції, передані як аргумент іншій функції, для виклику пізніше.

15. Що таке проміси (Promise)?

Об’єкт для асинхронних операцій, який може бути: pending, fulfilled, або rejected.

16. Як створити проміс?

let p = new Promise((resolve, reject) => { /* async code */ });

17. Що таке async/await?

Синтаксис для зручної роботи з промісами. async function fetchData() { let data = await fetch(url); }

18. Що таке DOM?

Document Object Model — структура HTML-документа, до якої можна звертатися через JavaScript.

19. Як знайти елемент за id?

document.getElementById('myId')

20. Як знайти елементи за класом?

document.getElementsByClassName('myClass') або document.querySelectorAll('.myClass')

21. Як додати елемент до масиву?

Через push() для кінця або unshift() для початку: arr.push(4);

22. Як видалити елемент з масиву?

pop() видаляє останній, shift() – перший елемент.

23. Як знайти індекс елемента?

arr.indexOf(value) повертає індекс або -1.

24. Як перевірити, чи є значення в масиві?

arr.includes(value) повертає true або false.

25. Що таке метод map()?

Створює новий масив, застосовуючи функцію до кожного елемента: arr.map(x => x*2)

26. Що таке filter()?

Створює новий масив з елементів, що проходять умову: arr.filter(x => x > 5)

27. Що таке reduce()?

Акумулює значення масиву в одне: arr.reduce((sum, x) => sum + x, 0)

28. Як об’єднати масиви?

Через concat() або спред-оператор: [...arr1, ...arr2]

29. Як перетворити рядок на масив?

str.split(',') розділяє рядок по роздільнику.

30. Як об’єднати масив у рядок?

arr.join(', ') повертає рядок з елементів масиву.

31. Що таке деструктуризація масивів?

Витягування елементів масиву у змінні: let [a, b] = [1, 2];

32. Що таке деструктуризація об’єктів?

Витягування властивостей об’єкта у змінні: let {name, age} = user;

33. Як перевірити тип даних?

typeof value повертає тип: string, number, boolean, object, function.

34. Що таке шаблонні рядки?

Рядки з інтерполяцією: `Hello ${name}`

35. Що таке метод includes() для рядків?

Перевіряє, чи міститься підрядок: str.includes('text')

36. Як знайти підрядок у рядку?

str.indexOf('text') повертає позицію або -1.

37. Що таке slice() для рядків?

Виділяє частину рядка: str.slice(0,5)

38. Що таке trim()?

Видаляє пробіли з початку та кінця рядка: str.trim()

39. Що таке replace()?

Замінює частину рядка: str.replace('old','new')

40. Що таке split() для рядків?

Перетворює рядок у масив: str.split(',')

41. Як знайти елемент за селектором CSS?

document.querySelector('.myClass') або document.querySelectorAll('div')

42. Як змінити текст елемента?

element.textContent = 'Новий текст';

43. Як змінити HTML всередині елемента?

element.innerHTML = '<p>Новий HTML</p>';

44. Як змінити стиль елемента через JS?

element.style.color = 'red'; або element.classList.add('active');

45. Як додати обробник події?

element.addEventListener('click', () => { alert('clicked'); });

46. Що таке event object?

Об’єкт, що передається в обробник події і містить інформацію про подію.

47. Як зупинити стандартну поведінку події?

event.preventDefault();

48. Як зупинити поширення події?

event.stopPropagation();

49. Що таке bubbling і capturing?

Поширення події через DOM: bubbling – від цільового елемента до кореня, capturing – від кореня до цілі.

50. Як отримати значення input?

document.querySelector('input').value

51. Як змінити атрибут елемента?

element.setAttribute('src', 'image.jpg');

52. Як видалити елемент з DOM?

element.remove();

53. Як створити новий елемент?

let div = document.createElement('div');

54. Як додати елемент до DOM?

parent.appendChild(div);

55. Як додати клас до елемента?

element.classList.add('active');

56. Як видалити клас?

element.classList.remove('active');

57. Як переключати клас?

element.classList.toggle('active');

58. Як отримати батьківський елемент?

element.parentElement

59. Як отримати наступний сусідній елемент?

element.nextElementSibling

60. Як отримати попередній сусідній елемент?

element.previousElementSibling

81. Що таке Promise?

Об’єкт для асинхронних операцій з resolve та reject.

82. Як створити Promise?

new Promise((resolve,reject) => { ... });

83. Як обробляти успішний результат Promise?

promise.then(result => { ... });

84. Як обробляти помилки Promise?

promise.catch(error => { ... });

85. Що таке async/await?

Синтаксис для роботи з промісами як із синхронним кодом.

86. Як зробити async функцію?

async function f(){ let res = await fetch(url); }

87. Що таке fetch?

Метод для HTTP-запитів: fetch('url').then(res => res.json())

88. Як отримати JSON через fetch?

fetch(url).then(res => res.json()).then(data => console.log(data))

89. Що таке try/catch?

Блок для обробки помилок у синхронному або async коді.

90. Як працювати з localStorage?

localStorage.setItem('key','value'); localStorage.getItem('key');

91. Як видалити item з localStorage?

localStorage.removeItem('key');

92. Як очистити localStorage?

localStorage.clear();

93. Що таке регулярний вираз?

Шаблон для пошуку або заміни в рядках: /abc/i

94. Як створити регулярний вираз у JS?

let re = /pattern/flags; або let re = new RegExp('pattern','i');

95. Як перевірити рядок на відповідність regex?

/abc/.test('abcdef') → true

96. Як отримати збіги regex?

'abc123'.match(/\d+/g) → ["123"]

97. Як замінити за regex?

'abc123'.replace(/\d+/,'456') → "abc456"

98. Що таке JSON.stringify і JSON.parse?

Перетворення об’єкта в рядок і назад: JSON.stringify(obj), JSON.parse(str)

99. Як працювати з sessionStorage?

Аналог localStorage, але дані видаляються після закриття вкладки: sessionStorage.setItem('key','value')

100. Як зробити deep copy об’єкта?

Через JSON: let copy = JSON.parse(JSON.stringify(obj));

1. Що таке JavaScript?

Мова програмування для веб-браузерів та серверів (Node.js), що дозволяє робити інтерактивні веб-сторінки.

2. Які типи даних є в JavaScript?

Number, String, Boolean, null, undefined, Symbol, BigInt, Object.

3. Що таке змінна?

Місце в пам’яті для зберігання даних, оголошується через var, let або const.

4. Різниця між var, let і const?

var – функціональна область, let і const – блочна область; const не можна переназначити.

5. Що таке функція?

Блок коду, який можна викликати багаторазово.

6. Що таке arrow function?

Скорочений синтаксис функцій: () => {}, зберігає контекст this.

7. Що таке Hoisting?

Підняття оголошень змінних і функцій на початок області видимості.

8. Що таке closure?

Функція, яка має доступ до змінних зовнішньої функції навіть після її виконання.

9. Що таке callback?

Функція, яка передається як аргумент і виконується пізніше.

10. Що таке promise?

Об’єкт, який представляє результат асинхронної операції: pending, fulfilled, rejected.

11. Що таке async/await?

Синтаксис для роботи з промісами, який дозволяє писати асинхронний код як синхронний.

12. Що таке event loop?

Механізм обробки асинхронних операцій у JS, що дозволяє неблокуючий код.

13. Різниця між synchronous і asynchronous кодом?

Synchronous виконується по черзі, asynchronous – може відкладатися і виконуватись пізніше.

14. Що таке JSON?

Формат обміну даними: текстовий, зручний для зберігання об’єктів.

15. Як перетворити JSON у JS об’єкт?

JSON.parse(jsonString)

16. Як перетворити JS об’єкт у JSON?

JSON.stringify(obj)

17. Що таке typeof?

Оператор для визначення типу змінної.

18. Що таке instanceof?

Оператор для перевірки, чи є об’єкт екземпляром певного класу.

19. Що таке Array methods?

Методи для роботи з масивами: map, filter, reduce, forEach.

20. Що таке destructuring?

Синтаксис для витягування значень з масивів або об’єктів у змінні.

21. Що таке spread operator?

... дозволяє розкривати масиви або об’єкти.

22. Що таке rest operator?

...args збирає залишкові аргументи у масив.

23. Що таке IIFE?

Immediately Invoked Function Expression — функція, що виконується одразу після створення.

24. Що таке this?

Контекст виклику функції.

25. Різниця this у arrow function і звичайній?

Arrow function наслідує this з зовнішньої області, звичайна функція має власний this.

26. Що таке call, apply, bind?

Методи для контролю this і виклику функцій: call і apply викликають одразу, bind повертає нову функцію.

27. Що таке prototype?

Об’єкт, з якого наслідуються властивості у JS об’єктів.

28. Що таке class?

Синтаксис для створення об’єктів і наслідування (ES6).

29. Що таке module в JS?

Файл з кодом, який можна експортувати та імпортувати через export/import.

30. Що таке import/export?

Синтаксис для роботи з модулями ES6.

31. Що таке event delegation?

Техніка, коли один обробник подій на батьківському елементі обробляє події дочірніх елементів.

32. Що таке DOM?

Document Object Model — об’єктна модель HTML документа, яку можна змінювати через JS.

33. Що таке BOM?

Browser Object Model — об’єктна модель браузера (window, navigator, screen).

34. Що таке localStorage?

Механізм збереження даних у браузері на стороні клієнта без терміну дії.

35. Що таке sessionStorage?

Механізм збереження даних у браузері протягом однієї сесії.

36. Що таке cookie?

Дані, що зберігаються у браузері і відправляються на сервер при кожному запиті.

37. Як працює JSONP?

Метод отримання даних з іншого домену через тег <script>.

38. Що таке fetch API?

Сучасний метод для роботи з HTTP-запитами, повертає проміс.

39. Різниця між fetch і XMLHttpRequest?

Fetch більш сучасний, працює на промісах; XHR старий, на callback.

40. Що таке JSON.stringify replacer?

Функція або масив, що дозволяє контролювати, які властивості серіалізуються.

41. Що таке JSON.parse reviver?

Функція, що обробляє значення під час десеріалізації JSON.

42. Що таке event bubbling?

Коли подія спливає з дочірнього елементу до батьківського.

43. Що таке event capturing?

Коли подія спочатку обробляється на батьківському елементі, а потім на дочірньому.

44. Що таке mutable і immutable об’єкти?

Mutable можна змінювати після створення, immutable — ні (наприклад, рядки в JS immutable).

45. Що таке shallow copy?

Копія об’єкта або масиву, яка копіює лише перший рівень властивостей.

46. Що таке deep copy?

Повна копія об’єкта або масиву, включаючи всі вкладені об’єкти.

47. Що таке Symbol?

Унікальний та незмінний примітив, часто використовується як ключ об’єкта.

48. Що таке BigInt?

Тип для дуже великих чисел, що перевищують Number.MAX_SAFE_INTEGER.

49. Що таке Map?

Колекція ключ-значення, де ключі можуть бути будь-якого типу.

50. Що таке Set?

Колекція унікальних значень.

51. Різниця між Map і Object?

Object обмежений типом ключів (рядки, символи), Map — будь-які ключі; Map зберігає порядок.

52. Що таке WeakMap?

Map, який не перешкоджає збору сміття об’єктів у ключах.

53. Що таке WeakSet?

Set, що зберігає лише об’єкти і не заважає їх видаленню збирачем сміття.

54. Що таке template literals?

Рядки з можливістю вставки виразів: `Hello ${name}`.

55. Що таке tagged template?

Функція, що обробляє template literals для кастомного форматування.

56. Що таке optional chaining?

Оператор ?., що дозволяє безпечно звертатися до властивостей.

57. Що таке nullish coalescing?

Оператор ??, що повертає праву сторону лише якщо ліва null або undefined.

58. Що таке dynamic import?

Імпорт модуля всередині функції за допомогою import(), повертає проміс.

59. Що таке service worker?

Скрипт, що працює у фоновому режимі для кешування і push notifications.

60. Що таке WebSocket?

Протокол для двостороннього зв’язку між клієнтом і сервером у реальному часі.

61. Що таке generator function?

Функція, що повертає ітератор та може призупиняти виконання через yield.

62. Що таке iterator?

Об’єкт з методом next(), який повертає {value, done}.

63. Що таке for…of?

Цикл для ітерації по ітерабельних об’єктах (масиви, Map, Set).

64. Що таке for…in?

Цикл для перебору ключів об’єкта.

65. Що таке generator delegation?

Використання yield* для передачі управління іншому генератору.

66. Що таке promise chaining?

Послідовне виконання промісів через .then().

67. Що таке promise.all?

Метод, який повертає проміс, що виконується, коли всі проміси у масиві виконані.

68. Що таке promise.race?

Метод, який виконується, коли перший проміс завершиться.

69. Що таке promise.allSettled?

Метод, який чекає завершення всіх промісів і повертає їх статуси.

70. Що таке promise.any?

Метод, який виконується, коли перший проміс успішний.

71. Що таке async/await?

Синтаксис для роботи з промісами у вигляді синхронного коду. async робить функцію промісом, await чекає його виконання.

72. Що таке try/catch/finally?

Конструкція для обробки помилок: try виконує код, catch ловить помилки, finally виконується завжди.

73. Що таке Error object?

Об’єкт, який містить інформацію про помилку: name, message, stack.

74. Що таке custom error?

Власний клас, що успадковує Error, наприклад class ValidationError extends Error.

75. Що таке fetch with async/await?

Використання await fetch(url) для зручного отримання даних з сервера.

76. Що таке destructuring assignment?

Деструктуризація масивів або об’єктів для зручного присвоєння змінних.

77. Що таке rest operator?

Оператор ... для збору решти елементів у масив або об’єкт.

78. Що таке spread operator?

Оператор ... для розгортання масиву або об’єкта у місці використання.

79. Що таке default parameters?

Значення параметрів функції за замовчуванням: function f(a = 1).

80. Що таке rest vs arguments?

arguments — старий об’єкт, rest — масив сучасний ES6, працює тільки з параметрами функції.

81. Що таке function hoisting?

Підняття оголошень функцій у верхню частину скоупу.

82. Що таке variable hoisting?

Підняття оголошень змінних у верхню частину скоупу. var піднімається без значення, let/const — у TDZ.

83. Що таке temporal dead zone?

Період між підняттям змінної let/const і її оголошенням, під час якого доступ заборонений.

84. Що таке closure memory leak?

Коли замикання утримує непотрібні об’єкти в пам’яті довше, ніж потрібно.

85. Що таке Immediately Invoked Function Expression (IIFE)?

Функція, що викликається одразу після оголошення: (function(){})().

86. Що таке module pattern?

Шаблон для створення модулів із приватними змінними та методами.

87. Що таке ES6 module?

Сучасний синтаксис для модулів: export та import.

88. Що таке dynamic import?

Імпорт модуля всередині коду функції з import(), що повертає проміс.

89. Що таке top-level await?

Можливість використовувати await на верхньому рівні модуля без async функції.

90. Що таке WeakRef?

Об’єкт, який утримує слабке посилання на інший об’єкт без запобігання його збору сміттям.

91. Що таке FinalizationRegistry?

API для спостереження за збором сміття об’єктів.

92. Що таке Proxy?

Об’єкт-обгортка для перехоплення операцій над іншим об’єктом.

93. Що таке Reflect API?

Методи для операцій над об’єктами як функції, наприклад Reflect.get, Reflect.set.

94. Що таке event loop?

Механізм обробки черги задач і асинхронних операцій у JS.

95. Що таке call stack?

Стек викликів функцій у JS, де відстежується поточний виконуваний контекст.

96. Що таке microtask queue?

Черга для промісів та mutation observers, виконується після поточного call stack.

97. Що таке macro task queue?

Черга для setTimeout, setInterval та I/O подій, виконується після microtasks.

98. Що таке memory leak?

Помилка, коли об’єкти залишаються в пам’яті без потреби, погіршуючи продуктивність.

99. Що таке structuredClone?

Функція для глибокого копіювання об’єктів у JS.

100. Що таке top-level module scope?

Модулі ES6 мають власний scope, відокремлений від глобального, тому var не створює глобальні змінні.