محتويات الدورة

JavaScript / أساسي: القيم وأسس المتصفح / الدرس 2

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

اجعل القرارات متوقعة بفصل التحويل والصدق المنطقي والمساواة. يوضح نموذج ورشة ضرورة تمييز الصفر الصالح من القيمة الغائبة.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اختيار تحويل ومقارنة صريحين.
  • الحفاظ على القيم الصالحة التي تعد كاذبة منطقياً.
  • تتبع الفروع والحلقات بثوابت واضحة.

للعوامل قواعد تحويل مختلفة

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

javascript مدخلات متشابهة وعقود مختلفة
console.log("2" + 1);
console.log(Number("2") + 1);
console.log(Number("2 seats"));
console.log(parseInt("2 seats", 10));
الناتج المتوقع
21
3
NaN
2

يرفض تحويل القيمة الكاملة الكلمات الزائدة هنا، وتظل الكمية بحاجة إلى فحص الصحة والحدود.

تجيب المساواة والترتيب عن أسئلة مختلفة

تتجنب المساواة الصارمة تحويل الأنواع الذي تجريه المساواة المرنة، فتسهل مراجعة المقارنات غالباً. قارن قيماً موحدة من النوع المقصود بدلاً من توزيع التحويلات داخل الشروط. لا تساوي NaN نفسها صارماً، ويفحص Number.isNaN هذه القيمة دون تحويل المعامل. تقارن مساواة الكائنات الهوية لا التشابه البنيوي؛ فكائنان مستقلان بحقول متطابقة مختلفان. ولأسماء المستخدم اختر مقارنة محلية ملائمة بدلاً من فرض قواعد ترتيب عددية على النص. حدّد عقد المقارنة قبل الفرع.

الغائب يختلف عن الصفر

يحول الشرط القيمة إلى منطقية. يعد الصفر والنص الفارغ وnull وundefined وNaN وfalse كاذباً، وتعد المصفوفات والكائنات صادقة ولو فرغت. يعيد OR أحد المعاملين فيستبدل صفراً أو نصاً فارغاً صالحاً بالبديل. تستبدل ?? فقط null وundefined. اختر وفق المعنى؛ فخصم اختياري مقداره صفر يجب أن يبقى صفراً، وقد يعني البحث الفارغ غياب المرشح. فضّل فرع تحقق صريحاً إذا كانت null خطأ لا طلباً لقيمة افتراضية.

javascript الحفاظ على خصم صفري صالح
const options = { discount: 0 };
console.log(options.discount || 10);
console.log(options.discount ?? 10);
console.log([] ? "truthy" : "falsy");
الناتج المتوقع
10
0
truthy

قد يكون الأول افتراضاً تجارياً خاطئاً. يحفظ الثاني الصفر، ويوضح الثالث ضرورة فحص length لفراغ المصفوفة.

بناء الفروع حول حقائق المجال

لقاعدة عمر من 16 إلى 65 شاملة، أثبت أولاً أن القيمة عدد صحيح محدود ثم افحص الحدين. ميّز المدخل غير الصالح من عمر صالح غير مؤهل. تعبر if/else عن نتائج متنافية، وقد يعمل شرطان مستقلان معاً عند التداخل. تناسب switch مجموعة أفعال محددة، لكن الاسم المجهول يحتاج مساراً مقصوداً. تجنب التعابير المتداخلة التي تخفي تغير الحالة قبل الرفض. احسب القرار أولاً ثم طبّق الأثر المقصود.

تحديد التكرار وإظهار التقدم

تحتاج الحلقة حالة بداية وشرط استمرار وتقدماً نحو التوقف. لقائمة فواتير صغيرة احتفظ بمجموع بالسنتات الصحيحة وبيّن الثابت بعد كل عنصر: مجموع ما عولج. استخدم for...of للقيم والفهرس العددي عندما يهم الموضع. لا تعدّل المجموعة أثناء المرور دون فهم أثره في الزيارات اللاحقة. ولأحجام يتحكم فيها المستخدم ضع حدوداً وراعِ الاستجابة؛ فقد تجعل حلقة صحيحة تحتكر خيط المتصفح الصفحة غير قابلة للاستخدام.

الأخطاء الشائعة وإصلاحها

وصل الكمية نصياً بدلاً من جمعها

لماذا يحدث؟
دخول النص إلى المنطق العددي دون تحويل.
كيف تصلحه؟
التحليل والتحقق مرة قبل الحساب.
كيف تتجنب تكراره؟
اختبار القيمة والنوع عند حد الإدخال.

استبدال خصم صفر بعشرة

لماذا يحدث؟
استخدام OR لافتراض يخص الغياب فقط.
كيف تصلحه؟
استخدام ?? عندما يكون البديل للغياب فقط.
كيف تتجنب تكراره؟
إدراج أمثلة صالحة كاذبة منطقياً في القبول.

حلقة لا تنتهي

لماذا يحدث؟
عدم وصول متغير التقدم إلى شرط التوقف.
كيف تصلحه؟
تتبع مدخل قصير وتصحيح التحديث أو الحد.
كيف تتجنب تكراره؟
بيان سبب الانتهاء وتحديد الأحجام الخارجية.

اختبر فهمك

1. قد يكون عدد النتائج الاختياري صفراً. اختر عملية الافتراض.

اعرض الحل المشروح

استخدم count ?? 20 إذا دل null وundefined على عدم التحديد وكان الصفر صالحاً. تحقق من المقدم مستقلاً؛ فلا يقبل النص أو السالب لمجرد عدم الغياب. لا يستبدل الافتراض قاعدة المخطط.

2. ماذا يحدث لـ"3x" في نموذج مقاعد صحيحة؟

اعرض الحل المشروح

ارفضه بدلاً من تحليل ثلاثة جزئياً. افحص النص بعد إزالة المسافات ثم حول بـNumber واشترط عدداً صحيحاً محدوداً ضمن المجال. أعلن خطأ المدخل قبل أي حجز، واحتفظ بالنص للتصحيح.

أهم ما تعلمته

  • وحّد الأنواع قبل المقارنة والحساب.
  • للافتراض والتحقق والصدق أغراض مختلفة.

المراجع الرسمية