Что такое стрелочные функции и чем они отличаются от обычных функций?

Этот вопрос проверяет знание синтаксиса стрелочных функций в JavaScript, их особенностей и ключевых отличий от традиционных функций, таких как поведение контекста this.

Короткий ответ

Стрелочные функции — это сокращенная запись функций, которая не имеет своего контекста this. Они чаще всего используются для упрощения синтаксиса и не поддерживают некоторые особенности обычных функций, например, arguments и this. Эти функции удобны для написания короткого кода, но их нельзя использовать в ситуациях, где важен контекст.

Длинный ответ

Стрелочные функции — это сокращенный синтаксис для создания функций, введенный в ES6 (ECMAScript 2015). 

 

Основная особенность стрелочных функций заключается в том, что они не имеют собственного контекста this — они берут его из внешней области видимости, что делает их полезными в некоторых ситуациях, например, при работе с колбэками.

 

Пример стрелочной функции:

const add = (a, b) => a + b; 
console.log(add(2, 3)); // 5

Основные отличия стрелочных функций от обычных:

  1. Контекст this: Стрелочные функции не имеют собственного this и захватывают его из окружающей области.
  2. Синтаксис: Они короче и удобнее для однострочных выражений.
  3. Отсутствие arguments: Стрелочные функции не имеют объекта arguments, поэтому нужно использовать rest-параметры для получения списка аргументов.
  4. Нельзя использовать как конструктор: Стрелочные функции нельзя использовать с ключевым словом new.

 

Пример с контекстом:

function Person() {  
	this.age = 0;  
	setInterval(() => {    
		this.age++; // 'this' берется из внешней функции    
		console.log(this.age);  
	}, 1000); 
} 
const p = new Person();

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

Подпишись на React Developer в телеграм