Das Datumsobjekt verfügt über eine GetDay -Methode, die den Wochentag in einem bestimmten Zeitpunkt zurückgibt, der auf der lokalen Zeit basiert. Der Rückgaberwert liegt bei 0 ~ 6, entspricht Sonntag ~ Samstag
Getday0123456
Welcher Tag Sonntag Montag Dienstag Mittwoch Mittwoch Freitag Samstag Samstag
Wenn Sie bei der Verwendung von Anforderungen an Datumsanforderungen den von Getday zurückgegebenen Wert in den Wochentag konvertieren, ist der Wochentag "dieser Tag"? Kehren Sie beispielsweise den Kalender in der Kalenderkomponente nach "2014-12-22 Montag" zurück.
Dies ist ein Code, der noch online ausgeführt wird
Die Codekopie lautet wie folgt:
/*
* Geben Sie den Wochentag gemäß dem Datumsobjekt zurück
* @param {Datum} Datum
* @return {String} "Mittwoch"
*/
Funktion getChineseWeekByDate (Datum) {
var numWeekday = date.getday ();
if (numWeekday == 0) {
zurück 'Sonntag';
} else if (numWeekday == 1) {
Rückkehr 'Montag';
} else if (numWeekday == 2) {
Rückkehr "Dienstag";
} else if (numWeekday == 3) {
Rückkehr "Mittwoch";
} else if (numWeekday == 4) {
Rückkehr 'Donnerstag';
} else if (numWeekday == 5) {
Rückkehr "Freitag";
} else if (numWeekday == 6) {
Rückkehr "Samstag";
} anders {
zurückkehren '';
}
}
Dieser Kodex wird über mehrere, wenn sonst noch Filialen beurteilt, und kehrt zum Wochentag zurück. Einige Schüler erwähnten, dass es mithilfe von Switch optimiert werden kann.
Die Codekopie lautet wie folgt:
/*
* Geben Sie den Wochentag gemäß dem Datumsobjekt zurück
* @param {Datum} Datum
* @return {String} "Mittwoch"
*/
Funktion getChineseWeekByDate (Datum) {
var numWeekday = date.getday ();
Switch (numwweekday) {
Fall 0: zurück 'Sonntag';
Fall 1: Return 'Montag';
Fall 2: Rückkehr "Dienstag";
Fall 3: Rückkehr "Mittwoch";
Fall 4: Rückkehr "Donnerstag";
Fall 5: Rückkehr 'Freitag';
Fall 6: Rückkehr 'Samstag';
Standard: Rückgabe '';
}
}
Im Vergleich zu if/sonst ist der Code viel einfacher und kürzer. Jemand hat einen statistischen Code gemacht, je kürzer die Zeit, die das Gehirn denkt. Daher werden Sie verschiedene Personen und Bücher sehen, die "kurze Codes" und "die Art des prägnanten Code" befürworten und loben.
"Codesammlung" erwähnt die Verwendung der Tabellen -Treibermethode zur Vereinfachung der Programmierung
Tabellengesteuerte Methode-Tabellengesteuerte Methode ist ein Programmiermodus, in dem Informationen aus einer Tabelle durchsucht werden, ohne logische Anweisungen zu verwenden (falls und Switch). In der Tat kann alles, was durch logische Anweisungen ausgewählt werden kann, ausgewählt werden, indem Sie die Tabelle nachschlagen. Für einfache Fälle ist es einfacher und einfacher, logische Anweisungen zu verwenden. Aber wenn die Logikkette immer komplexer wird, wird die Tabellen -Lookup -Methode immer attraktiver.
Wie oben erwähnt, haben viele Front-End-Ingenieure in JS mit Tabellen, um logische Anweisungen zu ersetzen, ihr Bestes versucht, Aussagen mit Ausdrücken zu beseitigen, da sie einige der Eigenschaften funktionaler Sprachen gelernt haben. Zum Beispiel
1. && ersetzen Single wenn
Die Codekopie lautet wie folgt:
if (a == 1) {
$ .ajax (xx)
}
// ->
(a == 1) && $ .ajax (xx)
2.??: Ersetzen Sie, wenn/sonst
Die Codekopie lautet wie folgt:
if (a == 1) {
$ .ajax (xx)
} anders {
$ (yy) .remove ()
}
// ->
(a == 1)? $ .ajax (xx): $ (yy) .remove ()
3. Multiple if/else und Switch kann auch durch mehrere "ersetzt werden"?: "
Die Codekopie lautet wie folgt:
if (a == 1) {
Alarm (1)
} else if (a == 2) {
Alarm (2)
} else if (a == 3) {
Alarm (3)
} anders {
Alarm (4)
}
// ->
(a == 1)
? Alarm (1): (a == 2)
? Alarm (2): (a == 3)
? Alarm (3): Alarm (4)
Darüber hinaus können Sie Funktionen verwenden, um für/während der Aussagen rekursiv zu eliminieren. Zuerst war ich süchtig nach diesen Schreibmethoden, aber später stellte ich fest, dass ich es nicht verstehen konnte (vielleicht las ich immer noch weniger und mein Gehirn hat diese immer natürlich in Sätze umgewandelt). Am Ende war ich immer noch daran gewöhnt, Sätze zu verwenden.
Versuchen wir, die Tabelle in der "Codesammlung" durch ein JS -Objekt zu ersetzen.
Die Codekopie lautet wie folgt:
/*
* Geben Sie den Wochentag gemäß dem Datumsobjekt zurück
* @param {Datum} Datum
* @return {String} "Mittwoch"
*/
Funktion getChineseWeekByDate (Datum) {
var numWeekday = date.getday ();
var weekobj = {
'0': 'Sonntag',
'1': 'Montag',
'2': 'Dienstag',
'3': 'Mittwoch',
'4': 'Donnerstag',
'5': 'Freitag',
'6': 'Samstag',
};
return weekobj [numWeekday] || '';
}
Im Vergleich zum Switch wurde viel Code reduziert, aber es gibt immer noch Schlüssel mit 0 ~ 6. Die GetDay -Methode kehrt aus 0 zurück, genau wie der JS -Array -Index, und beginnt auch mit 0. Daher können die Verwendung von Arrays vereinfacht werden
Die Codekopie lautet wie folgt:
/*
* Geben Sie den Wochentag gemäß dem Datumsobjekt zurück
* @param {Datum} Datum
* @return {String} "Mittwoch"
*/
Funktion getChineseWeekByDate (Datum) {
var numWeekday = date.getday ();
var weekarr = ['sunday', 'montag', 'toiday', "medoch '," donnerstag "," freitag "," saturday "];
Return Weekarr [NumWeekday] || '';
}