Sobes.tech
Middle+

Τι νέα από το πρότυπο ES6 χρησιμοποιούνται στον γραμμένο κώδικα; Τι είναι το αντικείμενο arguments και πώς διαφέρει από τις παραμέτρους rest;

sobes.tech AI

Απάντηση από 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