Продвинутые темы в JavaScript

Замыкания

Замыкания позволяют функциям запоминать область видимости, в которой они были созданы, даже после того, как эта область перестала существовать.


// Пример замыкания
function outer() {
    let counter = 0;
    return function() {
        counter++;
        return counter;
    };
}

const increment = outer();
console.log(increment()); // 1
console.log(increment()); // 2
            

Контекст выполнения и this

Контекст выполнения в JavaScript определяется значением ключевого слова this, которое может изменяться в зависимости от того, как была вызвана функция.


// Пример использования this
const person = {
    name: 'John',
    greet: function() {
        console.log(`Привет, меня зовут ${this.name}`);
    }
};

person.greet(); // Привет, меня зовут John
            

Работа с данными

JavaScript предоставляет мощные методы для работы с массивами и другими структурами данных, такие как map, filter и reduce.


// Пример использования map
let numbers = [1, 2, 3, 4];
let squared = numbers.map(num => num * num);
console.log(squared); // [1, 4, 9, 16]