Стрелочные функции JavaScript: краткий синтаксис и преимущества

  1. Краткий синтаксис. Стрелочные функции имеют более короткий и лаконичный синтаксис по сравнению с обычными функциональными выражениями.

Пример:

const add = (a, b) => a + b;
  1. Неявный возврат: стрелочные функции автоматически возвращают результат выражения без использования ключевого слова return, если тело функции состоит из одного оператора.

Пример:

const multiply = (a, b) => a * b;
  1. Лексическая привязка this: стрелочные функции не имеют собственного значения this. Вместо этого они наследуют значение thisиз окружающего контекста, что упрощает доступ к правильному значению this.

Пример:

const person = {
  name: 'John',
  greet: function() {
    setTimeout(() => {
      console.log(`Hello, my name is ${this.name}`);
    }, 1000);
  }
};
person.greet(); // Output: Hello, my name is John
  1. Нет аргументовПривязка: стрелочные функции не имеют собственного объекта arguments. Вместо этого вы можете получить доступ к аргументам окружающей области.

Пример:

function sumAll() {
  const numbers = Array.from(arguments);
  return numbers.reduce((sum, num) => sum + num, 0);
}
console.log(sumAll(1, 2, 3, 4)); // Output: 10
  1. Не подходит для объектных методов: функции стрелок не привязывают собственное значение this, что делает их непригодными для объектных методов, которым требуется собственный контекст this.
  2. >

Пример:

const person = {
  name: 'John',
  sayName: () => {
    console.log(`My name is ${this.name}`);
  }
};
person.sayName(); // Output: My name is undefined