Що таке hoisting в javascript?
Hoisting в JavaScript - це механізм, який дозволяє вам використовувати змінні та функції до їх оголошення. Ось як працює hoisting для змінних та функцій в JavaScript:
-
Hoisting для змінних - змінні, оголошені за допомогою ключових слів
var
таlet
, піднімаються (hoisted) до початку блоку, в якому вони були оголошені. Однак, змінні, оголошені за допомогою ключового словаlet
, не ініціалізуються до їх оголошення, що призводить до виникнення Temporal Dead Zone (TDZ). -
Hoisting для функцій - функції, оголошені за допомогою ключового слова
function
, піднімаються (hoisted) до початку блоку, в якому вони були оголошені. Це дозволяє вам викликати функцію до її оголошення.
Ось приклад використання hoisting для змінних та функцій в JavaScript:
console.log(x); // undefined
var x = 10;
sayHello(); // Hello, World!
function sayHello() {
console.log('Hello, World!');
}
У цьому прикладі, змінна x
та функція sayHello
піднімаються до початку блоку, в якому вони були оголошені, що дозволяє використовувати їх до їх оголошення.
Що таке тимчасова Мертва зона в JavaScript?
Тимчасова Мертва Зона (Temporal Dead Zone) в JavaScript - це період часу між створенням змінної та її ініціалізацією, коли змінна не може бути використана через виняток ReferenceError. Тимчасова Мертва Зона виникає при використанні змінних, оголошених за допомогою ключового слова let
та const
, які не ініціалізуються до їх оголошення. Ось приклад використання Тимчасової Мертвої Зони в JavaScript:
console.log(x); // ReferenceError: Cannot access 'x' before initialization
let x = 10;
У цьому прикладі, ми намагаємося використати змінну x
до її ініціалізації, що призводить до винятку ReferenceError через Тимчасову Мертву Зону. Тимчасова Мертва Зона виникає при використанні змінних, оголошених за допомогою ключового слова let
та const
, які не ініціалізуються до їх оголошення.
Що таке замикання Closure і які сценарії його використання?
Замикання (Closure) в 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
зберігати та змінювати значення змінної count
між викликами. Замикання використовується для створення приватних даних та функцій, а також для реалізації функціональності замикань.
Hoisting в JS
Hoisting в JavaScript - це механізм, який дозволяє вам використовувати змінні та функції до їх оголошення. Ось як працює hoisting для змінних та функцій в JavaScript:
-
Hoisting для змінних - змінні, оголошені за допомогою ключових слів
var
таlet
, піднімаються (hoisted) до початку блоку, в якому вони були оголошені. Однак, змінні, оголошені за допомогою ключового словаlet
, не ініціалізуються до їх оголошення, що призводить до виникнення Temporal Dead Zone (TDZ). -
Hoisting для функцій - функції, оголошені за допомогою ключового слова
function
, піднімаються (hoisted) до початку блоку, в якому вони були оголошені. Це дозволяє вам викликати функцію до її оголошення.
Ось приклад використання hoisting для змінних та функцій в JavaScript:
console.log(x); // undefined
var x = 10;
sayHello(); // Hello, World!
function sayHello() {
console.log('Hello, World!');
}
У цьому прикладі, змінна x
та функція sayHello
піднімаються до початку блоку, в якому вони були оголошені, що дозволяє використовувати їх до їх оголошення.