Що таке замикання (closures) в javascript?
Замикання (closures) в JavaScript - це механізм, який дозволяє функціям зберігати доступ до змінних зовнішнього контексту, в якому вони були оголошені. Замикання в JavaScript дозволяють створювати функції, які можуть зберігати стан та отримувати доступ до змінних зовнішнього контексту, навіть після того, як цей контекст був виконаний. Ось приклад використання замикань в JavaScript:
function createCounter() {
var count = 0;
return function() {
count++;
return count;
};
}
var counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
У цьому прикладі, ми визначаємо функцію createCounter
, яка повертає функцію, яка зберігає стан лічильника count
. Потім ми створюємо екземпляр функції counter
та викликаємо її двічі, що призводить до збільшення значення лічильника на 1 кожен раз. Замикання в JavaScript дозволяють створювати функції, які можуть зберігати стан та отримувати доступ до змінних зовнішнього контексту.
Що таке область видимості JS?
Область видимості (scope) в JavaScript - це місце, де змінні та функції доступні для використання. Область видимості визначає, де можна отримати доступ до змінних та функцій в коді. У JavaScript є два типи областей видимості: глобальна та локальна. Глобальна область видимості охоплює весь скрипт, тоді як локальна область видимості охоплює блок коду, функцію або об'єкт. Ось приклад використання області видимості в JavaScript:
var x = 10; // глобальна область видимості
function foo() {
var y = 20; // локальна область видимості
console.log(x); // 10
console.log(y); // 20
}
foo();
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
У цьому прикладі, змінна x
має глобальну область видимості, тоді як змінна y
має локальну область видимості в межах функції foo
. Змінна x
доступна як у глобальній, так і в локальній області видимості, тоді як змінна y
доступна тільки в локальній області видимості функції foo
. Область видимості в JavaScript визначає, де можна отримати доступ до змінних та функцій в коді.
Що таке лексичне оточення?
Лексичне оточення (lexical environment) в JavaScript - це місце, де змінні та функції доступні для використання в коді. Лексичне оточення визначає, де можна отримати доступ до змінних та функцій в коді на основі місця їх оголошення. Лексичне оточення в JavaScript визначається за допомогою областей видимості та ланцюжків областей видимості. Ось приклад використання лексичного оточення в JavaScript:
var x = 10; // глобальне лексичне оточення
function foo() {
var y = 20; // локальне лексичне оточення
console.log(x); // 10
console.log(y); // 20
}
foo();
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
У цьому прикладі, змінна x
має глобальне лексичне оточення, тоді як змінна y
має локальне лексичне оточення в межах функції foo
. Змінна x
доступна як у глобальному, так і в локальному лексичному оточенні, тоді як змінна y
доступна тільки в локальному лексичному оточенні функції foo
. Лексичне оточення в JavaScript визначає, де можна отримати доступ до змінних та функцій в коді на основі місця їх оголошення.
Що таке чиста функція JS?
Чиста функція (pure function) в JavaScript - це функція, яка повертає одне й те ж значення для одних і тих самих вхідних даних та не має побічних ефектів. Чисті функції не змінюють стану програми та не взаємодіють з зовнішнім середовищем. Ось приклад використання чистої функції в JavaScript:
function add(x, y) {
return x + y;
}
console.log(add(1, 2)); // 3
console.log(add(1, 2)); // 3
У цьому прикладі, функція add
є чистою, оскільки вона повертає одне й те ж значення для одних і тих самих вхідних даних та не має побічних ефектів. Функція add
не змінює стану програми та не взаємодіє з зовнішнім середовищем. Чисті функції в JavaScript дозволяють вам писати більш прогнозований та легко тестований код.
Що таке функція в JavaScript?
Функція в JavaScript - це блок коду, який виконує певну дію або обчислення. Функції в JavaScript можуть приймати аргументи, виконувати операції та повертати значення. Ось приклад визначення та використання функції в JavaScript:
function add(x, y) {
return x + y;
}
console.log(add(1, 2)); // 3
У цьому прикладі, ми визначаємо функцію add
, яка приймає два аргументи x
та y
та повертає їх суму. Потім ми викликаємо функцію add
з аргументами 1
та 2
, що призводить до виведення результату 3
. Функції в JavaScript дозволяють вам організовувати код, виконувати операції та повертати значення.
Замикання JS простими словами
Замикання (closures) в JavaScript - це механізм, який дозволяє функціям зберігати доступ до змінних зовнішнього контексту, в якому вони були оголошені. Замикання в JavaScript дозволяють створювати функції, які можуть зберігати стан та отримувати доступ до змінних зовнішнього контексту, навіть після того, як цей контекст був виконаний. Ось приклад використання замикань в JavaScript:
function createCounter() {
var count = 0;
return function() {
count++;
return count;
};
}
var counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
У цьому прикладі, ми визначаємо функцію createCounter
, яка повертає функцію, яка зберігає стан лічильника count
. Потім ми створюємо екземпляр функції counter
та викликаємо її двічі, що призводить до збільшення значення лічильника на 1 кожен раз. Замикання в JavaScript дозволяють створювати функції, які можуть зберігати стан та отримувати доступ до змінних зовнішнього контексту.
Closures в JS
Замикання (closures) в JavaScript - це механізм, який дозволяє функціям зберігати доступ до змінних зовнішнього контексту, в якому вони були оголошені. Замикання в JavaScript дозволяють створювати функції, які можуть зберігати стан та отримувати доступ до змінних зовнішнього контексту, навіть після того, як цей контекст був виконаний. Ось приклад використання замикань в JavaScript:
function createCounter() {
var count = 0;
return function() {
count++;
return count;
};
}
var counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
У цьому прикладі, ми визначаємо функцію createCounter
, яка повертає функцію, яка зберігає стан лічильника count
. Потім ми створюємо екземпляр функції counter
та викликаємо її двічі, що призводить до збільшення значення лічильника на 1 кожен раз. Замикання в JavaScript дозволяють створювати функції, які можуть зберігати стан та отримувати доступ до змінних зовнішнього контексту.
Scope в JS
Область видимості (scope) в JavaScript - це місце, де змінні та функції доступні для використання. Область видимості визначає, де можна отримати доступ до змінних та функцій в коді. У JavaScript є два типи областей видимості: глобальна та локальна. Глобальна область видимості охоплює весь скрипт, тоді як локальна область видимості охоплює блок коду, функцію або об'єкт. Ось приклад використання області видимості в JavaScript:
var x = 10; // глобальна область видимості
function foo() {
var y = 20; // локальна область видимості
console.log(x); // 10
console.log(y); // 20
}
foo();
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
У цьому прикладі, змінна x
має глобальну область видимості, тоді як змінна y
має локальну область видимості в межах функції foo
. Змінна x
доступна як у глобальній, так і в локальній області видимості, тоді як змінна y
доступна тільки в локальній області видимості функції foo
. Область видимості в JavaScript визначає, де можна отримати доступ до змінних та функцій в коді.
що таке рекурсія в js?
Рекурсія в JavaScript - це процес, коли функція викликає саму себе для вирішення задачі. Рекурсія в JavaScript дозволяє вам вирішувати складні завдання шляхом розбиття їх на менші підзадачі та виклику функції для їх вирішення. Ось приклад використання рекурсії в JavaScript:
function factorial(n) {
if (n === 0) {
return 1;
}
return n * factorial(n - 1);
}
console.log(factorial(5)); // 120
У цьому прикладі, ми визначаємо функцію factorial
, яка обчислює факторіал числа n
за допомогою рекурсії. Функція перевіряє, чи n
дорівнює 0
, якщо так, то повертає 1
, в іншому випадку викликає саму себе з аргументом n - 1
. Рекурсія в JavaScript дозволяє вам вирішувати складні завдання шляхом розбиття їх на менші підзадачі та виклику функції для їх вирішення.