JavaScript үндэс / Spread ба Rest оператор

Spread ба Rest оператор

... гэсэн гурван цэгийн тэмдэглэгээ JavaScript-д хоёр өөр зорилгоор ашиглагддаг: spread нь утгуудыг тарааж дэлгэдэг, rest нь утгуудыг цуглуулан нэгтгэдэг. Хэрэглэх байр суурь нь хоёрыг ялгана.

Spread оператор — массив

Spread нь массивын элементүүдийг задалж тарааж өгнө. Массивуудыг нэгтгэхэд маш тохиромжтой.

javascript
const эхний = [1, 2, 3];
const хоёр дах = [4, 5, 6];

const нэгтгэсэн = [...эхний, ...хоёр дах];
console.log(нэгтгэсэн); // [1, 2, 3, 4, 5, 6]

Дунд нь утга нэмж болно:

javascript
const шинэ = [...эхний, 99, ...хоёр дах];
console.log(шинэ); // [1, 2, 3, 99, 4, 5, 6]

Массив хуулах

Spread ашиглан массивын бүрэн хуулбар үүсгэж болно. Энэ нь эх массивыг өөрчлөхгүйгээр ажиллах боломж олгодог.

javascript
const эх = [10, 20, 30];
const хуулбар = [...эх];

хуулбар.push(40);

console.log(эх); // [10, 20, 30]  ← өөрчлөгдөөгүй
console.log(хуулбар); // [10, 20, 30, 40]

Зүгээр const хуулбар = эх гэж бичвэл хоёул нэг массивыг заана — spread ашиглавал жинхэнэ хуулбар гарна.

Spread оператор — объект

Объектын шинж чанаруудыг ч spread-ээр дэлгэж болно. Объектуудыг нэгтгэх, хуулахад хэрэглэнэ.

javascript
const үндсэн = { нэр: "Болд", нас: 25 };
const нэмэлт = { хот: "Улаанбаатар" };

const бүрэн = { ...үндсэн, ...нэмэлт };
console.log(бүрэн);
// { нэр: "Болд", нас: 25, хот: "Улаанбаатар" }

Давхардсан key байвал хожуу бичигдсэн нь давна:

javascript
const шинэчлэгдсэн = { ...үндсэн, нас: 30 };
console.log(шинэчлэгдсэн); // { нэр: "Болд", нас: 30 }

Rest оператор — функцийн параметр

Rest нь функцид дурын тооны аргумент хүлээн авах боломж олгоно. Параметрийн сүүлд ... бичихэд бусад бүх аргументыг массивд цуглуулна.

javascript
function нийлбэр(...тоонууд) {
  let нийт = 0;
  for (const тоо of тоонууд) {
    нийт += тоо;
  }
  return нийт;
}

console.log(нийлбэр(1, 2, 3)); // 6
console.log(нийлбэр(10, 20, 30, 40)); // 100

Rest оператор — destructuring

Destructuring дотор rest ашиглан зарим элементийг тусад нь авч, үлдсэнийг нь нэгтгэж болно.

javascript
const [эхний, хоёр дах, ...үлдсэн] = [1, 2, 3, 4, 5];

console.log(эхний);   // 1
console.log(хоёр дах); // 2
console.log(үлдсэн);  // [3, 4, 5]

Объект destructuring дээр ч адилхан:

javascript
const { нэр, ...бусад } = { нэр: "Болд", нас: 25, хот: "УБ" };

console.log(нэр); // Болд
console.log(бусад); // { нас: 25, хот: "УБ" }

Дараагийн хичээлд:

Алдаа зохицуулах — try/catch ашиглан кодын алдааг хэрхэн барьж, хэрэглэгчид ойлгомжтойгоор мэдэгдэх талаар үзнэ. Энэ нь найдвартай программ бичихэд зайлшгүй шаардлагатай.