Спросят с вероятностью 7%
Стрелочная функция (arrow function) — это сокращённый синтаксис для создания функций, введённый в стандарте ES6 (ECMAScript 2015). Стрелочные функции имеют компактный синтаксис и обладают некоторыми особенностями в отношении контекста
this.Зачем они нужны
Полезны для:
1️⃣Упрощения записи функций.
2️⃣Автоматического привязывания контекста
this к окружению, в котором они были созданы (лексическое привязывание).Синтаксис
Синтаксис стрелочной функции:
const функция = (аргументы) => {
// тело функции
};Примеры
1️⃣Функция без аргументов:
const sayHello = () => {
console.log('Hello!');
};2️⃣Функция с одним аргументом:
const double = num => num * 2;
3️⃣Функция с несколькими аргументами:
const add = (a, b) => a + b;
4️⃣Функция с телом, содержащим несколько выражений:
const sumAndLog = (a, b) => {
const result = a + b;
console.log(result);
return result;
};Особенности
1️⃣Лексическое привязывание
this: В стрелочных функциях this привязывается к контексту, в котором функция была определена. Это отличие от обычных функций, где this определяется в момент вызова функции. function Person() {
this.age = 0;
setInterval(() => {
this.age++;
console.log(this.age);
}, 1000);
}
const person = new Person();
В этом примере стрелочная функция внутри
setInterval использует this от внешней функции Person, что позволяет корректно увеличивать значение age.2️⃣Отсутствие своего
this, arguments, super и new.target: Стрелочные функции не имеют своих собственных версий этих объектов, что делает их непригодными в некоторых случаях, например, при использовании в качестве методов объекта.3️⃣Нельзя использовать как конструкторы: Стрелочные функции нельзя использовать с оператором new.
const MyFunc = () => {};
const instance = new MyFunc(); // Ошибка: MyFunc не является конструкторомСтрелочная функция — это короткий синтаксис для создания функций в JavaScript, который автоматически привязывает this к контексту, в котором она была создана. Они удобны для коротких функций и ситуаций, где требуется лексическое привязывание this.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых