من میدانم که هیچ نمیدانم.
تفاوت عملگرهای Spread و Rest در جاوااسکریپت

این دو عملگر ظاهر کاملا یکسانی دارن و هر دو بصورت سهنقطه ( ... ) هستن.
عملگر Spread
کلمه Spread یعنی گسترش دادن و پخش کردن. عملگر Spread برای زمانی هست که میخوایم مقدارهای یک آرایه یا هر چیز Iterable رو گسترش بدیم و پخش کنیم توی یک چیز دیگه. کد زیر رو درنظر بگیرید:
12345function sum(x, y, z) { return x + y + z; } const numbers = [1, 2, 3];
تابع sum سه تا آرگومان نیاز داره. متغیر numbers رو در نظر بگیرید. اگه بخوایم از روش قبلی استفاده کنیم، اعداد رو باید به شکل زیر پاس بدیم:
1sum(numbers[0], numbers[1], numbers[2]);
اما روش باحالتر استفاده از عملگر Spread هست:
1sum(...numbers);
این عملگر دقیقا کار مثال قبلی رو انجام داد. مقدارهای آرایه numbers رو پخش کرد توی تابع sum. همونطور که میبینید کد ما چقدر کوتاهتر و خواناتر شد.
عملگر Rest
این عملگر که توی توابع استفاده میشه، به تابع کمک میکنه تا بینهایت آرگومان داشته باشه. در واقع یک روش جدیدتر بجای کلمه کلیدی arguments توی توابع هست. تابع sum مثال بالا رو درنظر بگیرید که فقط سه تا آرگومان قبول میکرد. با استفاده از پارامتر rest میتونیم یک کاری کنیم که بینهایت آرگومان قبول کنه:
123456function 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
مطلبی دیگر از این انتشارات
آموزش انتقال ارز دیجیتال به کیف پول لجر (Ledger)
مطلبی دیگر از این انتشارات
آشنایی با بلاکچین / بخش 2
مطلبی دیگر از این انتشارات
سهام NFT چیست؟