جاري التحميل...

تحويل النوع

فرّقت بين null و undefined. المهارة التالية: تغيير نوع القيمة عمدًا — اجعل الرقم نصًا للتسمية، أو النص رقمًا للحساب. هذا هو تحويل النوع. هنا نستخدم ثلاث دوال واضحة: String() و Number() و Boolean() — مع مفاجأة شائعة لـ +.

ما هو تحويل النوع في JavaScript؟

تحويل النوع يعني نقل القيمة من نوع إلى آخر. فضّل التحويل الصريح: String(42) يعطي "42"، وNumber("7") يعطي 7، وBoolean(0) يعطي false. إن لم يفهم Number النص تحصل على NaN. مع + إذا كان أحد الطرفين سلسلة غالبًا يحدث دمج نص لا جمع — اطبعها مرة لتتذكر.

أدوات التحويل

📊 تحويل النوع للمبتدئ

الأداة / الفكرة مثال النتيجة / ملاحظة
String(...) String(42) "42" (نص)
Number(...) Number("7") 7 (رقم)
Boolean(...) Boolean(0) false (معاينة falsy)
نص غير رقمي Number("hello") NaN — typeof ما زال "number"
فارغ → منطقي Boolean("") false
خلط مع + 5 + "2" "52" (دمج، ليس 7)

String() — اصنع نصًا

عندما تحتاج تسمية أو رسالة ضع القيمة داخل String(...). الأرقام والمنطقيات وnull وundefined تصبح سلاسل يمكن دمجها أو عرضها.

تحويلات String()

javascript
console.log(String(42));
console.log(String(true));
console.log(String(null));
console.log(String(undefined));
console.log(typeof String(42));

Number() — اصنع رقمًا

استخدم Number(...) عندما يجب أن يصبح النص جاهزًا للحساب. السلاسل الرقمية تتحول بسلاسة. النص غير الرقمي يصبح NaN.

تحويلات Number()

javascript
console.log(Number("7"));
console.log(Number("3.5"));
console.log(Number(true));
console.log(Number(false));
console.log(typeof Number("7"));

عندما يفشل Number — NaN

Number("hello") يعطي NaN. تذكّر من درس الأرقام: typeof NaN ما زال "number". اعتبر NaN تحويلًا فاشلًا لا عددًا صالحًا.

فخ Number يصبح NaN

javascript
console.log(Number("hello"));
console.log(typeof Number("hello"));
console.log(Number(""));
console.log(Number(null));

Number("") وNumber(null) يصبحان 0 — فخ آخر للمبتدئ. عندما تقصد كمية حقيقية أعطِ سلسلة أرقام واضحة.

Boolean() — نعم/لا من قيمة

Boolean(...) يحول القيمة إلى true أو false. القيم الفارغة مثل 0 و"" وnull وundefined وNaN تصبح false. السلاسل غير الفارغة ومعظم الأرقام تصبح true. قائمة truthy / falsy الكاملة في الدرس التالي — هنا تكفيك الدالة.

تحويلات Boolean()

javascript
console.log(Boolean(1));
console.log(Boolean(0));
console.log(Boolean("hi"));
console.log(Boolean(""));
console.log(Boolean(null));

مفاجأة + — دمج أم جمع؟

إذا كان أحد طرفي + سلسلة، غالبًا يلصق JavaScript النص بدل الجمع. عندما تقصد حسابًا حوّل أولًا بـ Number().

علامة + قد تدمج

javascript
console.log(5 + 2);
console.log(5 + "2");
console.log(Number("5") + Number("2"));
console.log("Score: " + 10);

اعرض التحويلات على الصفحة

حوّل قيمًا قليلة ثم اكتب تسميات قصيرة بـ textContent.

تسميات الصفحة بعد التحويل

html
<!DOCTYPE html>
<html>
<head>
<title>Type conversion — labels</title>
</head>
<body>
<p id="out">…</p>
<script>
let raw = "12";
let asNumber = Number(raw);
let asText = String(asNumber);
let flag = Boolean(asNumber);
document.getElementById("out").textContent =
"raw=" + raw +
" | number=" + asNumber +
" | text=" + asText +
" | flag=" + flag;
</script>
</body>
</html>

تُظهر الفقرة الفكرة بثلاثة أشكال. غيّر raw إلى "0" وحدّث الصفحة وشاهد flag يصبح false بينما الرقم ما زال 0.

جرّبها بنفسك

  1. اطبع String(99) وString(false) وtypeof String(99).
  2. اطبع Number("8") وNumber("8") + 2 — توقّع حسابًا لا "82".
  3. اطبع Number("oops") وtypeof للنتيجة (NaN وما زال "number").
  4. اطبع Boolean("") وBoolean("ok").
  5. اطبع 3 + "4" ثم أعد الكتابة بـ Number("3") + Number("4").
  6. في عرض HTML اجعل raw = "0" وحدّث واقرأ flag الجديد.

أخطاء شائعة

  • افتراض أن + يجمع دائمًا — وجود سلسلة قد يسبب دمجًا
  • تجاهل NaN بعد Number("hello") واستخدامه في الحساب
  • ظن أن هذا الدرس يغني عن truthy / falsy — Boolean() معاينة فقط
  • توقع أن String(null) هو "" — الناتج النص "null"
  • نسيان فحص typeof عندما تبدو النتيجة غريبة

خلاصة

  • تحويل النوع: تغيير نوع القيمة عمدًا
  • فضّل String() وNumber() وBoolean() للوضوح
  • نص غير رقمي → NaN؛ typeof NaN ما زال "number"
  • + مع سلسلة غالبًا يدمج — حوّل قبل الجمع
  • التالي: truthy و falsy — أي القيم تتصرف كـ true أو false في الشروط

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
8
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى