วัตถุวันที่มีวิธีการ getday ซึ่งส่งคืนวันของสัปดาห์ในวันที่เฉพาะตามเวลาท้องถิ่น ค่าส่งคืนมาจาก 0 ~ 6 ซึ่งสอดคล้องกับวันอาทิตย์ ~ วันเสาร์
getDay0123456
วันอาทิตย์วันจันทร์วันอังคารวันพุธวันพฤหัสบดีวันเสาร์วันเสาร์
เมื่อใช้ข้อกำหนดที่เกี่ยวข้องกับวันที่คุณจะต้องแปลงมูลค่าที่ส่งคืนโดย getDay เป็นวันของสัปดาห์นั่นคือวันใดของสัปดาห์คือ "วันนี้"? ตัวอย่างเช่นหลังจากเลือกปฏิทินในส่วนประกอบปฏิทินให้กลับไปที่ "2014-12-22 วันจันทร์"
นี่คือส่วนหนึ่งของรหัสที่ยังคงทำงานออนไลน์
การคัดลอกรหัสมีดังนี้:
-
* ส่งคืนวันของสัปดาห์ตามวัตถุวันที่
* @param {วันที่} วันที่
* @return {String} "วันพุธ"
-
ฟังก์ชั่น getChineseweekByDate (วันที่) {
var numweekday = date.getday ();
if (numweekday == 0) {
กลับ 'วันอาทิตย์';
} อื่นถ้า (numweekday == 1) {
กลับมา 'วันจันทร์';
} อื่นถ้า (numweekday == 2) {
กลับมา 'วันอังคาร';
} อื่นถ้า (numweekday == 3) {
กลับมา 'วันพุธ';
} อื่นถ้า (numweekday == 4) {
กลับมา 'วันพฤหัสบดี';
} อื่นถ้า (numweekday == 5) {
กลับมา 'วันศุกร์';
} อื่นถ้า (numweekday == 6) {
กลับ 'วันเสาร์';
} อื่น {
กลับ '';
-
-
รหัสนี้ถูกตัดสินผ่านหลายสาขาหากอื่น ๆ และกลับไปสู่วันของสัปดาห์ นักเรียนบางคนกล่าวว่าสามารถปรับให้เหมาะสมโดยใช้สวิตช์
การคัดลอกรหัสมีดังนี้:
-
* ส่งคืนวันของสัปดาห์ตามวัตถุวันที่
* @param {วันที่} วันที่
* @return {String} "วันพุธ"
-
ฟังก์ชั่น getChineseweekByDate (วันที่) {
var numweekday = date.getday ();
สวิตช์ (numweekday) {
กรณีที่ 0: กลับ 'วันอาทิตย์';
กรณีที่ 1: กลับ 'วันจันทร์';
กรณีที่ 2: return 'Tuesday';
กรณีที่ 3: กลับ 'วันพุธ';
กรณีที่ 4: กลับ 'วันพฤหัสบดี';
กรณีที่ 5: กลับ 'วันศุกร์';
กรณีที่ 6: กลับ 'วันเสาร์';
ค่าเริ่มต้น: return '';
-
-
เมื่อเทียบกับถ้า/อื่น ๆ รหัสนั้นง่ายกว่าและสั้นกว่ามาก มีคนทำรหัสสถิติเวลาที่สมองจะสั้นลง ดังนั้นคุณจะเห็นผู้คนและหนังสือหลายเล่มที่สนับสนุนและสรรเสริญ "รหัสสั้น" และ "วิธีการสรุปรหัส"
"คอลเลกชันรหัส" กล่าวถึงการใช้วิธีไดรเวอร์ตารางเพื่อทำให้การเขียนโปรแกรมง่ายขึ้น
วิธีการที่ขับเคลื่อนด้วยตาราง-วิธีการขับเคลื่อนด้วยตารางเป็นโหมดการเขียนโปรแกรมที่ค้นหาข้อมูลจากตารางโดยไม่ต้องใช้คำสั่งแบบลอจิคัล (ถ้าและสวิตช์) ในความเป็นจริงสิ่งใดก็ตามที่สามารถเลือกได้ผ่านคำสั่งเชิงตรรกะสามารถเลือกได้โดยการค้นหาตาราง สำหรับกรณีง่ายๆมันง่ายขึ้นและตรงไปตรงมามากขึ้นในการใช้คำสั่งเชิงตรรกะ แต่เมื่อโซ่ตรรกะมีความซับซ้อนมากขึ้นเรื่อย ๆ วิธีการค้นหาตารางจะน่าสนใจมากขึ้นเรื่อย ๆ
ดังที่ได้กล่าวไว้ข้างต้นการใช้ตารางเพื่อแทนที่คำสั่งเชิงตรรกะวิศวกรส่วนหน้าจำนวนมากใน JS ได้พยายามอย่างดีที่สุดในการกำจัดข้อความด้วยการแสดงออกเนื่องจากพวกเขาได้เรียนรู้ลักษณะบางอย่างของภาษาที่ใช้งานได้ ตัวอย่างเช่น
1. && แทนที่ if Single
การคัดลอกรหัสมีดังนี้:
ถ้า (a == 1) {
$ .ajax (xx)
-
-
(a == 1) && $ .ajax (xx)
2. ?: แทนถ้า/อื่น ๆ
การคัดลอกรหัสมีดังนี้:
ถ้า (a == 1) {
$ .ajax (xx)
} อื่น {
$ (yy). remove ()
-
-
(a == 1)? $ .ajax (xx): $ (yy). remove ()
3. หลาย if/else และสวิตช์สามารถแทนที่ด้วยหลาย ๆ "?:"
การคัดลอกรหัสมีดังนี้:
ถ้า (a == 1) {
การแจ้งเตือน (1)
} อื่นถ้า (a == 2) {
การแจ้งเตือน (2)
} อื่นถ้า (a == 3) {
การแจ้งเตือน (3)
} อื่น {
การแจ้งเตือน (4)
-
-
(a == 1)
- การแจ้งเตือน (1): (a == 2)
- การแจ้งเตือน (2): (a == 3)
- การแจ้งเตือน (3): แจ้งเตือน (4)
นอกจากนี้คุณยังสามารถใช้ฟังก์ชั่นเพื่อกำจัดคำสั่ง/ในขณะที่ซ้ำ ตอนแรกฉันติดวิธีการเขียนเหล่านี้ แต่ต่อมาฉันพบว่าฉันไม่เข้าใจ (บางทีฉันก็ยังอ่านน้อยลงและสมองของฉันจะแปลงสิ่งเหล่านี้เป็นประโยคตามธรรมชาติ) ในท้ายที่สุดฉันยังคงคุ้นเคยกับการใช้ประโยค
ลองแทนที่ตารางใน "คอลเลกชันรหัส" ด้วยวัตถุ JS
การคัดลอกรหัสมีดังนี้:
-
* ส่งคืนวันของสัปดาห์ตามวัตถุวันที่
* @param {วันที่} วันที่
* @return {String} "วันพุธ"
-
ฟังก์ชั่น getChineseweekByDate (วันที่) {
var numweekday = date.getday ();
var weekobj = {
'0': 'วันอาทิตย์',
'1': 'วันจันทร์',
'2': 'วันอังคาร',
'3': 'วันพุธ',
'4': 'วันพฤหัสบดี',
'5': 'วันศุกร์',
'6': 'วันเสาร์',
-
Return Weekobj [Numweekday] || -
-
เมื่อเปรียบเทียบกับสวิตช์แล้วโค้ดจำนวนมากได้ลดลง แต่ยังมีคีย์ที่มี 0 ~ 6 เมธอด getDay กลับมาจาก 0 เช่นเดียวกับดัชนีอาร์เรย์ JS และเริ่มจาก 0 ดังนั้นการใช้อาร์เรย์สามารถทำให้ง่ายขึ้น
การคัดลอกรหัสมีดังนี้:
-
* ส่งคืนวันของสัปดาห์ตามวัตถุวันที่
* @param {วันที่} วันที่
* @return {String} "วันพุธ"
-
ฟังก์ชั่น getChineseweekByDate (วันที่) {
var numweekday = date.getday ();
var weekarr = ['วันอาทิตย์', 'วันจันทร์', 'วันอังคาร', 'วันพุธ', 'วันพฤหัสบดี', 'วันศุกร์', 'วันเสาร์'];
Return Weekarr [numweekday] || -
-