Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تحويل الأنواع (Type Coercion)

جزء من قسم Fundamentals في رحلة JavaScript على Coddy — الدرس 22 من 77.

يُعد التحويل القسري للأنواع (Type coercion) في JavaScript هو التحويل التلقائي للقيم من نوع بيانات إلى آخر. يمكن أن يحدث هذا بشكل ضمني في عمليات معينة أو بشكل صريح عند استخدام دوال مثل String() أو Number() أو Boolean().

غالباً ما يحدث التحويل الضمني للأنواع (Implicit type coercion) عند استخدام عامل المساواة غير الصارم == أو عند إجراء عمليات بين أنواع مختلفة، مثل إضافة رقم إلى سلسلة نصية.

على سبيل المثال:

let result = 5 + "5";
// تحتوي على "55"، لأن الرقم 5 يتم تحويله ضمنياً إلى السلسلة النصية "5" ثم يتم دمجهما
let result = true == 1;
// يحمل القيمة true، لأن القيمة المنطقية true يتم تحويلها ضمنياً إلى الرقم 1

يمكن القيام بالتحويل الصريح للأنواع باستخدام الدوال المدمجة:

  • String(value) يحول القيمة إلى سلسلة نصية
  • Number(value) يحول قيمة إلى رقم
  • Boolean(value) يحول قيمة إلى قيمة منطقية (boolean)

على سبيل المثال:

let num = "123";
let str = Number(num) + 7; // يحمل القيمة 130
console.log(str); 
let bool = true;
let numBool = Number(bool); // تحتوي على 1

إن فهم تحويل الأنواع (type coercion) أمر بالغ الأهمية لكتابة كود JavaScript صحيح وتجنب النتائج غير المتوقعة.

challenge icon

التحدي

مبتدئ

لقد تم تزويدك بكود يحتوي على عدة متغيرات من أنواع مختلفة.

مهمتك هي إجراء تحويل الأنواع (type coercion) وطباعة النتائج:

  1. قم بتحويل الرقم num إلى سلسلة نصية (string) وقم بتخزينه في متغير باسم a.
  2. قم بتحويل القيمة المنطقية bool إلى رقم وقم بتخزينها في متغير باسم b.
  3. قم بتحويل السلسلة النصية str إلى رقم وقم بتخزينها في متغير باسم c.
  4. قم بإجراء تحويل نوع ضمني (implicit type coercion) عن طريق دمج num مع str وقم بتخزين النتيجة في متغير باسم d.

استخدم دوال تحويل الأنواع الصريحة (String()، Number()) للمهام الثلاث الأولى ولاحظ التحويل الضمني في المهمة الأخيرة.

ورقة مرجعية

تحويل النوع (Type coercion) في JavaScript هو التحويل التلقائي للقيم من نوع بيانات إلى آخر.

يحدث تحويل النوع الضمني (Implicit type coercion) تلقائيًا في العمليات:

let result = 5 + "5"; // "55" - تم تحويل الرقم إلى سلسلة نصية
let result = true == 1; // true - تم تحويل القيمة المنطقية إلى رقم

يستخدم تحويل النوع الصريح (Explicit type coercion) دوال مدمجة:

  • String(value) يحول القيمة إلى سلسلة نصية
  • Number(value) يحول القيمة إلى رقم
  • Boolean(value) يحول القيمة إلى قيمة منطقية
let num = "123";
let str = Number(num) + 7; // 130

let bool = true;
let numBool = Number(bool); // 1

جرّب بنفسك

// المتغيرات المعطاة
let num = 42
let bool = false
let str = "7"

// اكتب كودك بالأسفل


// لا تغير السطر بالأسفل
console.log(`a = ${a}`)
console.log(`b = ${b}`)
console.log(`c = ${c}`)
console.log(`d = ${d}`)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals