Objek tanggal memiliki metode GetDay, yang mengembalikan hari dalam seminggu dalam tanggal tertentu berdasarkan waktu setempat. Nilai pengembalian dari 0 ~ 6, sesuai dengan hari Minggu ~ Sabtu
getDay0123456
Hari apa Minggu Senin Selasa Rabu Kamis Jumat Sabtu
Saat menggunakan persyaratan terkait tanggal, Anda perlu mengonversi nilai yang dikembalikan pada hari GetDay ke hari dalam seminggu, yaitu, hari apa dalam seminggu "hari ini"? Misalnya, setelah memilih kalender di komponen kalender, kembali ke "2014-12-22 Senin".
Ini adalah kode yang masih berjalan online
Salinan kode adalah sebagai berikut:
/*
* Kembalikan hari dalam seminggu sesuai dengan objek tanggal
* @param {date} tanggal
* @return {string} "Rabu"
*/
fungsi getchineseweekbydate (date) {
var numweekday = date.getday ();
if (numweekday == 0) {
kembali 'Minggu';
} lain jika (numweekday == 1) {
kembali 'Senin';
} lain jika (numweekday == 2) {
kembali 'Selasa';
} lain jika (numweekday == 3) {
kembali 'Rabu';
} lain jika (numweekday == 4) {
kembali 'Kamis';
} lain jika (numweekday == 5) {
kembali 'Jumat';
} lain jika (numweekday == 6) {
kembali 'Sabtu';
} kalau tidak {
kembali '';
}
}
Kode ini dinilai melalui beberapa jika lain cabang dan kembali ke hari dalam seminggu. Beberapa siswa menyebutkan bahwa itu dapat dioptimalkan menggunakan sakelar.
Salinan kode adalah sebagai berikut:
/*
* Kembalikan hari dalam seminggu sesuai dengan objek tanggal
* @param {date} tanggal
* @return {string} "Rabu"
*/
fungsi getchineseweekbydate (date) {
var numweekday = date.getday ();
sakelar (numweekday) {
Kasus 0: Kembalikan 'Minggu';
Kasus 1: Kembalikan 'Senin';
Kasus 2: kembali 'Selasa';
Kasus 3: Kembalikan 'Rabu';
Kasus 4: Kembalikan 'Kamis';
Kasus 5: Kembalikan 'Jumat';
Kasus 6: Kembalikan 'Sabtu';
Default: return '';
}
}
Dibandingkan dengan IF/yang lain, kodenya jauh lebih sederhana dan lebih pendek. Seseorang telah melakukan kode statistik, semakin pendek waktu otak dipikirkan. Karena itu, Anda akan melihat berbagai orang dan buku yang mengadvokasi dan memuji "kode pendek" dan "cara kode singkat".
"Koleksi kode" menyebutkan penggunaan metode driver tabel untuk menyederhanakan pemrograman
Metode berbasis tabel-Metode yang digerakkan oleh tabel adalah mode pemrograman yang mencari informasi dari tabel tanpa menggunakan pernyataan logis (IF dan Switch). Bahkan, apa pun yang dapat dipilih melalui pernyataan logis dapat dipilih dengan mencari tabel. Untuk kasus sederhana, lebih mudah dan lebih mudah menggunakan pernyataan logis. Tetapi ketika rantai logika menjadi semakin kompleks, metode pencarian tabel menjadi semakin menarik.
Seperti disebutkan di atas, menggunakan tabel untuk menggantikan pernyataan logis, banyak insinyur front-end di JS telah mencoba yang terbaik untuk menghilangkan pernyataan dengan ekspresi karena mereka telah mempelajari beberapa karakteristik bahasa fungsional. Misalnya
1. && ganti tunggal jika
Salinan kode adalah sebagai berikut:
if (a == 1) {
$ .Ajax (xx)
}
// ->
(a == 1) && $ .Ajax (xx)
2.?: Ganti jika/lain
Salinan kode adalah sebagai berikut:
if (a == 1) {
$ .Ajax (xx)
} kalau tidak {
$ (yy) .remove ()
}
// ->
(a == 1)? $ .Ajax (xx): $ (yy) .remove ()
3. Multiple If/Else dan Switch juga dapat diganti dengan beberapa "?:"
Salinan kode adalah sebagai berikut:
if (a == 1) {
waspada (1)
} lain jika (a == 2) {
waspada (2)
} lain jika (a == 3) {
waspada (3)
} kalau tidak {
waspada (4)
}
// ->
(a == 1)
? Peringatan (1): (a == 2)
? Peringatan (2): (a == 3)
? Peringatan (3): Peringatan (4)
Selain itu, Anda juga dapat menggunakan fungsi untuk menghilangkan secara rekursif untuk/sementara pernyataan. Pada awalnya saya kecanduan metode penulisan ini, tetapi kemudian saya menemukan bahwa saya tidak bisa memahaminya (mungkin saya masih membaca lebih sedikit, dan otak saya selalu secara alami mengubah ini menjadi kalimat). Pada akhirnya, saya masih terbiasa menggunakan kalimat.
Mari kita coba ganti tabel dalam "koleksi kode" dengan objek JS.
Salinan kode adalah sebagai berikut:
/*
* Kembalikan hari dalam seminggu sesuai dengan objek tanggal
* @param {date} tanggal
* @return {string} "Rabu"
*/
fungsi getchineseweekbydate (date) {
var numweekday = date.getday ();
var weekobj = {
'0': 'Minggu',
'1': 'Senin',
'2': 'Selasa',
'3': 'Rabu',
'4': 'Kamis',
'5': 'Jumat',
'6': 'Sabtu',
};
Return Weekobj [numweekday] || '';
}
Dibandingkan dengan Switch, banyak kode telah berkurang, tetapi masih ada kunci dengan 0 ~ 6. Metode getDay kembali dari 0, seperti indeks array JS, dan juga dimulai dari 0. Oleh karena itu, menggunakan array dapat disederhanakan
Salinan kode adalah sebagai berikut:
/*
* Kembalikan hari dalam seminggu sesuai dengan objek tanggal
* @param {date} tanggal
* @return {string} "Rabu"
*/
fungsi getchineseweekbydate (date) {
var numweekday = date.getday ();
var weekarr = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'];
Return Weekarr [numweekday] || '';
}