0Pricing
JavaScript Academy · درس

تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت

افهم التحويل الضمني مقابل الصريح؛ وفضّل التحويلات الواضحة باستخدام Number/String/Boolean؛ وتعامل مع NaN بأمان.

تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

مقدمة

الهدف: تعرّف متى تحوّل JavaScript الأنواع، وما النتائج التي تنتجها، وكيف تستخدم التحويلات الصريحة للحفاظ على سلوك يمكن التنبؤ به.

  • التحويل الضمني في مقابل الصريح
  • Number وString وBoolean
  • أمان NaN
تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 1

تجربة التحويل الضمني

يؤدي استخدام + مع سلسلة نصية إلى ضم السلاسل؛ بينما تحاول - و* إجراء تحويل رقمي.

// Implicit coercion can surprise beginners
console.log("5" + 1);     
// "51"  (string concatenation)
console.log(5 + "1");    
// "51"  (number -> string)
console.log("5" - 1);     
// 4     (string -> number)
console.log("5" * 2);     
// 10    (string -> number)
تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 2

التحويلات الصريحة

استخدم Number(x) وString(x) وBoolean(x) لكتابة شيفرة واضحة.

// Prefer explicit, readable casts
const n = Number("42");      
// 42
const s = String(42);         
// "42"
const t = Boolean("hi");      
// true (non-empty string)
const f = Boolean("");        
// false (empty string)

console.log(n, s, t, f);
تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 3

Number في مقابل parseInt

يتطلب Number(x) سلسلة نصية رقمية بالكامل؛ أما parseInt فيحلّل الأرقام الموجودة في البداية فقط.

// Number vs parseInt with examples
console.log(Number("42"));          
// 42 (full string must be numeric)
console.log(parseInt("42", 10));    
// 42
console.log(parseInt("42px", 10));  
// 42 (stops at non-digit)
console.log(Number("42px"));        
// NaN (not a pure number)
تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 4

التحقق من NaN

استخدم Number.isNaN لاختبار NaN من دون إجراء تحويل إضافي.

// NaN is "Not a Number" and is not equal to itself
const bad = Number("oops");   
// NaN
console.log(bad === NaN);     
// false
console.log(Number.isNaN(bad)); 
// true (use this)
console.log(isNaN("5"));      
// false (string coerces to number 5)
تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 5

قائمة التحقق من الأمان

أنماط آمنة:

  • فضّل === والتحويلات الصريحة.
  • استخدم Number(x) مع السلاسل النصية الرقمية؛ وتجنب الحيل المعقدة.
  • تحقّق من المدخلات، واختبر Number.isNaN بعد التحليل.
تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 6

اختبار التحويل الصريح

تحقّق سريع: التحويل الرقمي الصريح.

تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 7

مراجعة

مراجعة: قد يسبب التحويل الضمني نتائج مفاجئة. فضّل التحويلات الصريحة باستخدام Number وString وBoolean، واستخدم Number.isNaN للتحقق عند الحاجة.

تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت — رسم توضيحي 8

الأسئلة الشائعة

هل درس «تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت» مجاني؟

نعم — نص درس «تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت»؟

افهم التحويل الضمني مقابل الصريح؛ وفضّل التحويلات الواضحة باستخدام Number/String/Boolean؛ وتعامل مع NaN بأمان. تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟

لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟

نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. القيم البدائية مقابل الكائنات والأنواع الأساسية
  2. typeof والقيم Truthy/Falsy و== مقابل ===
  3. تحويل الأنواع: أنماط آمنة لتجنّب المفاجآت
← العودة إلى JavaScript Academy