من میدانم که هیچ نمیدانم.
تفاوت عملگرهای Spread و Rest در جاوااسکریپت
این دو عملگر ظاهر کاملا یکسانی دارن و هر دو بصورت سهنقطه ( ... ) هستن.
عملگر Spread
کلمه Spread یعنی گسترش دادن و پخش کردن. عملگر Spread برای زمانی هست که میخوایم مقدارهای یک آرایه یا هر چیز Iterable رو گسترش بدیم و پخش کنیم توی یک چیز دیگه. کد زیر رو درنظر بگیرید:
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
تابع sum سه تا آرگومان نیاز داره. متغیر numbers رو در نظر بگیرید. اگه بخوایم از روش قبلی استفاده کنیم، اعداد رو باید به شکل زیر پاس بدیم:
sum(numbers[0], numbers[1], numbers[2]);
اما روش باحالتر استفاده از عملگر Spread هست:
sum(...numbers);
این عملگر دقیقا کار مثال قبلی رو انجام داد. مقدارهای آرایه numbers رو پخش کرد توی تابع sum. همونطور که میبینید کد ما چقدر کوتاهتر و خواناتر شد.
عملگر Rest
این عملگر که توی توابع استفاده میشه، به تابع کمک میکنه تا بینهایت آرگومان داشته باشه. در واقع یک روش جدیدتر بجای کلمه کلیدی arguments توی توابع هست. تابع sum مثال بالا رو درنظر بگیرید که فقط سه تا آرگومان قبول میکرد. با استفاده از پارامتر rest میتونیم یک کاری کنیم که بینهایت آرگومان قبول کنه:
function sum(...numbers) {
return numbers.reduce((total, current) => total + current);
}
sum(1, 2, 3); // 6
sum(1, 2, 3, 11, 12, 13); // 42
منبع:
https://dev.to/macmacky/70-javascript-interview-questions-5gfi
مطلبی دیگر از این انتشارات
منظور از first class function در جاوااسکریپت
مطلبی دیگر از این انتشارات
پروژه harmony و توکن ONE
مطلبی دیگر از این انتشارات
کسب درامد از آربیتراژ ارز دیجیتالی چگونه است؟