Sobes.tech
Middle+

Quelles nouveautés de la norme ES6 sont utilisées dans le code écrit ? Qu'est-ce que l'objet arguments et en quoi diffère-t-il des paramètres rest ?

sobes.tech IA

Réponse de l'IA

В стандарте ES6 (ECMAScript 2015) появились несколько важных нововведений, которые часто используются в современном JavaScript-коде:

  • Rest-параметры (...args) — позволяют собрать произвольное количество аргументов функции в массив.
  • Стрелочные функции — сокращённый синтаксис функций с лексическим this.
  • Деструктуризация — удобный способ извлечения значений из массивов и объектов.
  • Шаблонные строки — для удобного форматирования строк.

Объект arguments — это специальный объект, доступный внутри всех обычных функций, который содержит все переданные аргументы. Он похож на массив, но не является настоящим массивом (нет методов массива, например, map).

Отличия arguments от rest-параметров:

  • arguments существует только в обычных функциях, в стрелочных функциях его нет.
  • arguments — не массив, а массивоподобный объект; rest-параметры — настоящий массив.
  • Rest-параметры позволяют явно указать, какие аргументы собирать, и работают только с оставшимися параметрами.
  • Rest-параметры более удобны и современны, их рекомендуется использовать вместо arguments.

Пример с rest-параметрами:

function sum(...numbers) {
  return numbers.reduce((acc, n) => acc + n, 0);
}

console.log(sum(1, 2, 3)); // 6

Использование arguments:

function sum() {
  let total = 0;
  for(let i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }
  return total;
}

console.log(sum(1, 2, 3)); // 6