1. У чому різниця між var, let та const в JavaScript?
var
: Обмежений функцією, може бути перевизначений, підвищений.let
: Обмежений блоком, не може бути перевизначений, не підвищений.const
: Обмежений блоком, не може бути змінений.
Приклад:
var x = 10;
let y = 20;
const z = 30;
x = 15; // Дозволено
y = 25; // Дозволено
z = 35; // Помилка: спроба присвоїти значення змінній, яка є константою
2. Поясніть концепцію замикань (closures) в JavaScript з прикладом.
- Замикання виникає, коли функція зберігає доступ до свого лексичного оточення, навіть коли виконується поза ним.
- Приклад:
function outer() {
let count = 0;
return function inner() {
count++;
return count;
};
}
const counter = outer();
console.log(counter()); // 1
console.log(counter()); // 2
3. Як працює ключове слово this в JavaScript?
- Вказує на об'єкт, який викликає функцію.
- Контекст змінюється залежно від того, як викликається функція.
- Приклад:
const obj = {
name: 'Forhad',
getName: function () {
return this.name;
}
};
console.log(obj.getName()); // "Forhad"
4. Що таке функції вищого порядку, і чи можете ви навести приклад?
- Функції, які приймають інші функції як аргументи або повертають функції.
- Приклад:
const numbers = [1, 2, 3, 4];
const squared = numbers.map(num => num * num);
console.log(squared); // [1, 4, 9, 16]
5. У чому різниця між синхронним та асинхронним JavaScript?
- Синхронний: Виконує код послідовно.
- Асинхронний: Дозволяє неконкурентне виконання за допомогою зворотних викликів (callbacks), обіцянок (promises) або async/await.
- Приклад:
console.log('Start');
setTimeout(() => console.log('Асинхронна операція'), 1000);
console.log('End');
6. Поясніть різницю між методами forEach та map в масивах.
forEach
: Ітерує елементи, не повертаючи нового масиву.map
: Створює новий масив з результатами функції зворотного виклику.- Приклад:
const arr = [1, 2, 3];
arr.forEach(num => console.log(num * 2)); // Логує: 2, 4, 6
const doubled = arr.map(num => num * 2);
console.log(doubled); // [2, 4, 6]
7. Що таке обіцянки (promises), і як їх використовувати?
- Обіцянки використовуються для обробки асинхронних операцій та уникнення "пекла зворотних викликів" (callback hell).
- Приклад:
const promise = new Promise((resolve, reject) => {
const success = true;
if (success) resolve('Успіх');
else reject('Помилка');
});
promise.then(console.log).catch(console.error);
8. Що таке стрілочні функції, і чим вони відрізняються від звичайних функцій?
- Коротший синтаксис, не мають власного
this
. - Приклад:
const add = (a, b) => a + b;
console.log(add(5, 3)); // 8
Перекладено з: [JavaScript Interview Questions 2025](https://mdforhadsarker.medium.com/javascript-interview-questions-2025-b6f23bc75f17)