تحويل الأنواع (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 صحيح وتجنب النتائج غير المتوقعة.
التحدي
مبتدئلقد تم تزويدك بكود يحتوي على عدة متغيرات من أنواع مختلفة.
مهمتك هي إجراء تحويل الأنواع (type coercion) وطباعة النتائج:
- قم بتحويل الرقم
numإلى سلسلة نصية (string) وقم بتخزينه في متغير باسمa. - قم بتحويل القيمة المنطقية
boolإلى رقم وقم بتخزينها في متغير باسمb. - قم بتحويل السلسلة النصية
strإلى رقم وقم بتخزينها في متغير باسمc. - قم بإجراء تحويل نوع ضمني (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}`)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثتحويل الأنواع (Type Coercion)2المتغيرات
الأرقامString (النصوص)Boolean (القيم المنطقية)قواعد التسميةالمتغيرات الفارغةمراجعة - تهيئة المتغيراتالثوابت8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Continueمراجعة - Factorialحلقة Do Whileالحلقات المتداخلة3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةالمساواة الصارمة مقابل العاديةمراجعة - العمليات الحسابية البسيطة6أساسيات الإدخال والإخراج (IO)
الإخراجالإخراج باستخدام المتغيراتتحويل أنواع البيانات - الجزء الأولتحويل أنواع البيانات - الجزء الثانيمراجعة - حتى 120مراجعة - صح أم خطأ