Назад к вопросам
Middle+
2
Что нового из стандарта ES6 используется в написанном коде? Что такое объект arguments и чем он отличается от rest-параметров?
Компании, где спрашивали
Яндекс
Ответ от нейросети
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