Sobes.tech
Middle+
22

Сіз жазған кодта ES6 стандартының қандай жаңа мүмкіндіктері пайдаланылады? arguments объектісі дегеніміз не және ол rest параметрлерінен қалай ерекшеленеді?

Сұралған компаниялар
Яндекс

AI-дан жауап

sobes.tech AI

В стандарте 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