Front-end-Job-Interview-Questions

Ответы на вопросы на должность Frontend разработчика.


Project maintained by FedorovAlexander Hosted on GitHub Pages — Theme by mattgraham

В чём преимущества использования spread оператора и чем он отличается от rest оператора?

Spread оператор синтаксиса ES6 очень полезен при написании кода в функциональном стиле, поскольку мы можем легко создавать копии массивов или объектов, не прибегая к Object.create, slice или функции библиотеки.

function putSmthgInAnyArray(arr) {
	return [...arr, 'Smthg'];
}

const result = putSmthgInAnyArray([1, 2, 3]); // [1, 2, 3, 'Smthg'];

const person = {
	name: 'Todd',
	age: 29,
};

const copyOfTodd = { ...person };

Rest оператор синтаксиса ES6 позволяет в сокращённом виде указывать неопределённое количество аргументов, передаваемых в функцию. Можно сказать, что он противоположен spread оператору: собирает данные и добавляет их в массив, вместо разделения массива данных. Он используется в аргументах функций, а также при деструктуризации массивов и объектов.

function addFiveToABunchOfNumbers(...numbers) {
	return numbers.map((x) => x + 5);
}

const result = addFiveToABunchOfNumbers(4, 5, 6, 7, 8, 9); // [9, 10, 11, 12, 13, 14]

const [a, b, ...rest] = [1, 2, 3, 4]; // a:1, b:2, rest:[3, 4]

const { e, f, ...others } = {
	e: 1,
	f: 2,
	g: 3,
	h: 4,
}; // e:1, f: 2, others: { g:3, h:4 }

Предыдущий вопрос | Следующий вопрос