۱۵
مفاهیم جدید ES6+ ✨
با جدیدترین و خفنترین امکانات جاوااسکریپت آشنا میشیم.
Destructuring: باز کردن جعبه!
این قابلیت خفن بهمون اجازه میده مقادیر رو از توی آرایهها یا آبجکتها بکشیم بیرون و مستقیم بریزیم تو متغیرهای جدا.
// باز کردن آبجکت
const user = { name: 'رضا', age: 30 };
const { name, age } = user;
console.log(name); // 'رضا'
console.log(age); // 30
// باز کردن آرایه
const colors = ['قرمز', 'سبز', 'آبی'];
const [firstColor, secondColor] = colors;
console.log(firstColor); // 'قرمز'
Spread (...) و Rest (...): سه نقطه جادویی
این سه نقطه (`...`) بسته به اینکه کجا استفاده بشه، دو تا کار کاملاً متفاوت انجام میده:
- Spread (پخش کردن): محتویات یه آرایه یا آبجکت رو "پخش" میکنه. برای کپی کردن یا ترکیب کردن عالیه.
- Rest (بقیه): بقیه اعضای یه آرایه یا پارامترهای یه تابع رو جمع میکنه تو یه آرایه جدید.
// Spread Operator
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]
const user1 = { name: 'علی' };
const userWithRole = { ...user1, role: 'admin' }; // { name: 'علی', role: 'admin' }
// Rest Operator
const [first, second, ...others] = [10, 20, 30, 40, 50];
console.log(others); // [30, 40, 50]
function sum(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4)); // 10
Template Literals: رشتههای حرفهای
به جای چسبوندن رشتهها با `+`، میتونیم از بکتیک (`` ` ``) استفاده کنیم و متغیرها رو مستقیم با `${}` داخل رشته بذاریم. خیلی تمیز و خوانا!
const userName = "مریم";
const userAge = 25;
// روش قدیمی
const messageOld = "سلام، اسم من " + userName + " است و " + userAge + " سال دارم.";
// روش جدید و خفن
const messageNew = `سلام، اسم من ${userName} است و ${userAge} سال دارم.`;
console.log(messageNew);
تمرین! 🧠
یه آبجکت `person` با ویژگیهای `name`, `city` و `job` بساز. با استفاده از destructuring، این سه ویژگی رو به متغیرهای جدا تبدیل کن. بعد با استفاده از template literals، یه جمله مثل "علی در تهران یک برنامهنویس است." بساز و تو کنسول چاپ کن.
جواب تمرین
const person = {
name: "علی",
city: "تهران",
job: "برنامهنویس"
};
// 1. Destructuring
const { name, city, job } = person;
// 2. Template Literals
const sentence = `${name} در ${city} یک ${job} است.`;
console.log(sentence);