Junior
Фарқи байни операторҳои spread ва rest чист?
sobes.tech AI
Ҷавоб аз AI
โอเปอเรเตอร์การกระจาย (...) ขยายวัตถุที่สามารถทำซ้ำได้ (อาร์เรย์, สตริง) ไปยังองค์ประกอบแยกกัน และมักใช้เพื่อสร้างสำเนาของอาร์เรย์ รวมออบเจกต์ หรือส่งอาร์กิวเมนต์ให้กับฟังก์ชัน ตัวดำเนินการที่เหลือ (...) รวบรวมองค์ประกอบที่เหลือไว้ในอาร์เรย์เดียว ใช้ใน destructuring หรือเมื่อกำหนดฟังก์ชันเพื่อรวบรวมอาร์กิวเมนต์
ตัวอย่างการใช้ spread:
// สร้างสำเนาของอาร์เรย์
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]
// รวมอาร์เรย์
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]
// ส่งอาร์กิวเมนต์ให้ฟังก์ชัน
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6
ตัวอย่างการใช้ rest:
// รวบรวมองค์ประกอบที่เหลือเมื่อ destructuring อาร์เรย์
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]
// รวบรวมอาร์กิวเมนต์ในฟังก์ชัน
function logArguments(arg1, ...restArgs) {
console.log(arg1); // อาร์กิวเมนต์แรก
console.log(restArgs); // อาร์เรย์ของอาร์กิวเมนต์ที่เหลือ
}
logArguments(1, 2, 3, 4); // จะแสดง 1 และ [2, 3, 4]
ความแตกต่างหลักอยู่ที่วัตถุประสงค์ของพวกเขา: spread ขยาย, rest รวบรวม.