57- دروس جافا سكربت – JS Destructuring

### مفهوم Destructuring في JavaScript

تعتبر خاصية Destructuring واحدة من الميزات القوية التي تم تقديمها في ECMAScript 6 (ES6) في لغة JavaScript. تمكنك هذه الخاصية من استخراج البيانات من المصفوفات أو الكائنات وتعيينها إلى متغيرات بطريقة أكثر وضوحًا وسهولة. تهدف هذه الميزة إلى تحسين قابلية القراءة وتبسيط التعامل مع [شركة برمجة مصرية] البيانات المهيكلة.

#### Destructuring المصفوفات (Array Destructuring)

تتيح لك Destructuring المصفوفات استخراج العناصر مباشرة من المصفوفة وتعيينها إلى متغيرات. إليك كيف يتم ذلك:

// مصفوفة بسيطة
const fruits = ['تفاح', 'موز', 'كيوي'];

// استخدام destructuring لاستخراج العناصر
const [firstFruit, secondFruit, thirdFruit] = fruits;

console.log(firstFruit); // تفاح
console.log(secondFruit); // موز
console.log(thirdFruit); // كيوي

يمكنك أيضًا تخطي بعض العناصر باستخدام الفواصل:

const numbers = [1, 2, 3, 4, 5];

// تخطي العناصر
const [first, , third] = numbers;

console.log(first); // 1
console.log(third); // 3

#### Destructuring الكائنات (Object Destructuring)

تسهل Destructuring الكائنات استخراج الخصائص من الكائنات وتعيينها إلى متغيرات. يتم ذلك بمطابقة أسماء المتغيرات مع أسماء الخصائص:

// كائن بسيط
const person = {
  name: 'علي',
  age: 25,
  city: 'الرياض'
};

// استخدام destructuring لاستخراج الخصائص
const { name, age, city } = person;

console.log(name); // علي
console.log(age); // 25
console.log(city); // الرياض

في حال كنت ترغب في استخدام أسماء متغيرات مختلفة عن أسماء الخصائص، يمكنك تعيين اسماء جديدة:

const user = {
  username: 'user123',
  password: 'secret'
};

// تعيين أسماء متغيرات جديدة
const { username: userId, password: userPass } = user;

console.log(userId); // user123
console.log(userPass); // secret

#### Destructuring مع القيم الافتراضية

يمكنك أيضًا تحديد قيم افتراضية للمتغيرات في حالة عدم وجود القيمة في المصفوفة أو الكائن:

const colors = ['أحمر'];

// تعيين قيمة افتراضية
const [primaryColor, secondaryColor = 'أزرق'] = colors;

console.log(primaryColor); // أحمر
console.log(secondaryColor); // أزرق

const settings = {
  volume: 70
};

// تعيين قيمة افتراضية
const { volume, brightness = 50 } = settings;

console.log(volume); // 70
console.log(brightness); // 50

#### Destructuring القيم المتداخلة

يمكنك استخدام Destructuring أيضًا مع البيانات المتداخلة مثل المصفوفات داخل الكائنات أو الكائنات داخل المصفوفات:

const userProfile = {
  userName: 'أحمد',
  preferences: {
    theme: 'مظلم',
    notifications: true
  }
};

// استخدام destructuring مع الكائنات المتداخلة
const { userName, preferences: { theme, notifications } } = userProfile;

console.log(userName); // أحمد
console.log(theme); // مظلم
console.log(notifications); // true

### الخلاصة

تعتبر Destructuring واحدة من الميزات المريحة التي تجعل التعامل مع البيانات في JavaScript أكثر سلاسة ووضوحًا. سواء [شركة برمجة مصرية] كنت تعمل مع المصفوفات أو الكائنات، فإن Destructuring توفر لك طريقة فعالة لاستخراج البيانات وتعيينها إلى متغيرات بسهولة. باستخدام هذه الميزة، يمكنك كتابة كود أكثر نظافة وقابلية للفهم.