Sobes.tech
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 รวบรวม.