ترجمة رمز DashCode
-
21-09-2019 - |
سؤال
سؤال سريع وربما سهل على الأرجح إجابته "أفضل الممارسات"
أنا أتابع برنامجًا تعليميًا لـ Safari WebApp مخصص ، وتغيير طرق العرض حول هذا الرمز: يستخدم:
function btnSave_ClickHandler(event)
{
var views = document.getElementById('stackLayout');
var front = document.getElementById('mainScreen');
if (views && views.object && front) {
views.object.setCurrentView(front, true);
}
}
سؤالي هو فقط عن if
عبارة شرطية. ما الذي يقوله هذا الثلاثي ، ولماذا يجب التحقق من كل من هذه الأشياء قبل تغيير العرض؟ يفعل views.object
مجرد اختبار لمعرفة ما إذا كان متغير طرق العرض يستجيب لطريقة الكائن؟ لماذا هذا مهم؟
تعديل - كانت هذه هي النقطة الرئيسية في هذا السؤال ، وهي لا تعتبر JavaScript كلغة وكيف if
تعمل الحلقات ، ولكن لماذا يجب التحقق من هذه الأشياء الثلاثة على وجه التحديد:
تحت أي سيناريوهات قد views
و front
لا يوجد؟
أنا لا أكتب رمزتي عادة بشكل متكرر. إذا لم يتغير اسم جدول MySQL الخاص بي ، سأقول فقط UPDATE 'mytable' WHERE...
بدلا من أكثر بكثير مطوئة (وفي رأيي ، زائدة عن الحاجة)
$mytable = "TheSQLTableName";
if ($mytable == an actual table && $mytable exists && entries can be updated){
UPDATE $mytable;
}
بينما إذا كان اسم الجدول (أو في مثال JS ، فإن أسماء العرض) ليس "مشفرًا" ، ولكنه بدلاً من ذلك هو إدخال مستخدم أو قابلاً للتغيير بطريقة أخرى ، فقد أقوم بتصحيح الكود الخاص بي كمثال DashCode. لذلك أخبرني ، هل يمكن لهذه القيم "خطأ" على أي حال؟
شكرًا!
المحلول
إذا كان يختبر هذه المؤشرات الثلاثة للتأكد من أنها غير خالية. مؤشر فارغ هو 0 الذي يتحول إلى خطأ. إذا كان أي من هذه المؤشر الثلاثة 0 (خالية) ، فلن يحاول استخدامها.
لست متأكدًا من ما يفعله مؤشر فارغ في JavaScript ولكنه خطأ وقد يتسبب في استثناء. إذا كان مجرد تجنب هذا الاحتمال.