يحتوي كائن التاريخ على طريقة GetDay ، التي تُرجع يوم الأسبوع في تاريخ محدد بناءً على التوقيت المحلي. قيمة الإرجاع من 0 ~ 6 ، تقابل الأحد ~ السبت
getDay0123456
في أي يوم الأحد الاثنين الثلاثاء الأربعاء الخميس يوم السبت
عند استخدام المتطلبات المتعلقة بالتاريخ ، تحتاج إلى تحويل القيمة التي تم إرجاعها بواسطة GetDay إلى يوم الأسبوع ، أي ما هو يوم الأسبوع "هذا اليوم"؟ على سبيل المثال ، بعد اختيار التقويم في مكون التقويم ، العودة إلى "2014-12-22 الاثنين".
هذا جزء من الكود لا يزال يعمل عبر الإنترنت
نسخة الكود كما يلي:
/*
* أعد يوم الأسبوع وفقًا لكائن التاريخ
* param {date} التاريخ
* @regurn {string} "الأربعاء"
*/
وظيفة getChineseweekByDate (التاريخ) {
var numWeekDay = date.getDay () ؛
if (numWeekday == 0) {
العودة "الأحد" ؛
} آخر إذا (numWeekDay == 1) {
العودة "الاثنين" ؛
} آخر إذا (numWeekDay == 2) {
العودة "الثلاثاء" ؛
} آخر إذا (numWeekDay == 3) {
العودة "الأربعاء" ؛
} آخر إذا (numWeekday == 4) {
العودة "الخميس" ؛
} آخر إذا (numWeekDay == 5) {
العودة "الجمعة" ؛
} آخر إذا (numWeekDay == 6) {
العودة "السبت" ؛
} آخر {
يعود ''؛
}
}
يتم الحكم على هذا المدونة من خلال متعددة إذا كان آخر فروع ويعود إلى يوم الأسبوع. ذكر بعض الطلاب أنه يمكن تحسينه باستخدام Switch.
نسخة الكود كما يلي:
/*
* أعد يوم الأسبوع وفقًا لكائن التاريخ
* param {date} التاريخ
* @regurn {string} "الأربعاء"
*/
وظيفة getChineseweekByDate (التاريخ) {
var numWeekDay = date.getDay () ؛
التبديل (NumWeekday) {
الحالة 0: العودة "الأحد" ؛
القضية 1: العودة "الاثنين" ؛
القضية 2: العودة "الثلاثاء" ؛
القضية 3: العودة "الأربعاء" ؛
القضية 4: العودة "الخميس" ؛
القضية 5: العودة "الجمعة" ؛
القضية 6: العودة "السبت" ؛
الافتراضي: العودة '' ؛
}
}
بالمقارنة مع if/else ، يكون الرمز أبسط بكثير وأقصر. قام شخص ما برمز إحصائي ، كلما كان الدماغ أقصر. لذلك ، سترى العديد من الأشخاص والكتب التي تدافع وتثني على "الرموز القصيرة" و "طريقة الكود الموجز".
يذكر "مجموعة الكود" استخدام طريقة برنامج تشغيل الجدول لتبسيط البرمجة
الطريقة التي يحركها الجدول-الطريقة التي يحركها الجدول هي وضع برمجة يبحث عن المعلومات من جدول دون استخدام عبارات منطقية (إذا وتبديل). في الواقع ، يمكن اختيار أي شيء يمكن اختياره من خلال البيانات المنطقية من خلال البحث عن الجدول. بالنسبة للحالات البسيطة ، من الأسهل والأكثر وضوحًا استخدام البيانات المنطقية. ولكن عندما تصبح سلسلة المنطق أكثر تعقيدًا ، تصبح طريقة البحث عن الجدول أكثر جاذبية.
كما ذكر أعلاه ، باستخدام الجداول لاستبدال البيانات المنطقية ، حاول العديد من المهندسين الأماميين في JS قصارى جهدهم للتخلص من العبارات مع التعبيرات لأنهم تعلموا بعض خصائص اللغات الوظيفية. على سبيل المثال
1. && استبدال واحد إذا
نسخة الكود كما يلي:
if (a == 1) {
$ .ajax (xx)
}
// ->
(A == 1) && $ .ajax (xx)
2.؟: بديل إذا/آخر
نسخة الكود كما يلي:
if (a == 1) {
$ .ajax (xx)
} آخر {
$ (yy) .remove ()
}
// ->
(أ == 1)؟ $ .ajax (xx): $ (yy) .remove ()
3. يمكن أيضًا استبدال IF/else/else switch بمتعددة "؟:"
نسخة الكود كما يلي:
if (a == 1) {
تنبيه (1)
} آخر إذا (a == 2) {
تنبيه (2)
} آخر إذا (a == 3) {
تنبيه (3)
} آخر {
تنبيه (4)
}
// ->
(أ == 1)
؟ تنبيه (1): (A == 2)
؟ تنبيه (2): (A == 3)
؟ تنبيه (3): تنبيه (4)
بالإضافة إلى ذلك ، يمكنك أيضًا استخدام وظائف للتخلص بشكل متكرر/أثناء العبارات. في البداية ، كنت مدمنًا على أساليب الكتابة هذه ، لكن في وقت لاحق وجدت أنني لا أستطيع فهمها (ربما ما زلت أقرأ أقل ، ودائمًا ما حولت عقلي هذه الجمل بشكل طبيعي). في النهاية ، ما زلت معتادًا على استخدام الجمل.
دعنا نحاول استبدال الجدول في "Code Collection" بكائن JS.
نسخة الكود كما يلي:
/*
* أعد يوم الأسبوع وفقًا لكائن التاريخ
* param {date} التاريخ
* @regurn {string} "الأربعاء"
*/
وظيفة getChineseweekByDate (التاريخ) {
var numWeekDay = date.getDay () ؛
var weekobj = {
'0': 'الأحد' ،
"1": "الاثنين" ،
"2": "الثلاثاء" ،
"3": "الأربعاء" ،
"4": "الخميس" ،
"5": "الجمعة" ،
"6": "السبت" ،
} ؛
إرجاع WeekObj [NumWeekday] || '' ؛
}
بالمقارنة مع Switch ، تم تقليل الكثير من التعليمات البرمجية ، ولكن لا تزال هناك مفاتيح مع 0 ~ 6. تعود طريقة GetDay من 0 ، تمامًا مثل فهرس صفيف JS ، ويبدأ أيضًا من 0. لذلك ، يمكن تبسيط استخدام المصفوفات
نسخة الكود كما يلي:
/*
* أعد يوم الأسبوع وفقًا لكائن التاريخ
* param {date} التاريخ
* @regurn {string} "الأربعاء"
*/
وظيفة getChineseweekByDate (التاريخ) {
var numWeekDay = date.getDay () ؛
var weekarr = ['Sunday' ، 'Monday' ، 'Tuesday' ، 'Wednesday' ، 'Finay' ، 'Friday' ، 'Saturday'] ؛
إرجاع weekarr [numWeekday] || '' ؛
}