Sobes.tech
Junior — Middle
97

Quelles sont les différences entre les fonctions fléchées et les fonctions standard en JavaScript en termes de syntaxe et de comportement?

Réponse de l'IA

sobes.tech IA

Стрелочные функции (arrow functions) в JavaScript отличаются от стандартных функций по синтаксису и поведению:

  1. Синтаксис:
    • Стрелочные функции короче, не требуют ключевого слова function и могут иметь неявный возврат значения.
// Стандартная функция
function sum(a, b) {
  return a + b;
}

// Стрелочная функция
const sum = (a, b) => a + b;
  1. Контекст this:
    • В стрелочных функциях this лексически привязан к контексту, в котором функция была объявлена.
    • В стандартных функциях this зависит от того, как функция вызвана.
const obj = {
  value: 10,
  method: function() {
    setTimeout(function() {
      console.log(this.value); // undefined, т.к. this указывает на глобальный объект
    }, 100);
  },
  arrowMethod: function() {
    setTimeout(() => {
      console.log(this.value); // 10, т.к. стрелочная функция берет this из метода
    }, 100);
  }
};
  1. Отсутствие arguments:

    • Стрелочные функции не имеют собственного объекта arguments.
  2. Нельзя использовать как конструкторы:

    • Стрелочные функции нельзя вызвать с new.

Таким образом, стрелочные функции удобны для коротких функций и сохранения контекста this, а стандартные функции лучше подходят, когда нужен динамический this или конструктор.