Manchmal stoße ich auf Code, der dem folgenden Beispiel ähnelt (was diese Funktion genau tut, ist nicht Gegenstand dieser Frage):
function doSomething(value) {
if (check1(value)) {
return -1;
}
else if (check2(value)) {
return value;
}
else {
return false;
}
}
Wie Sie sehen, if
werden else if
und else
-Anweisungen in Verbindung mit der return
Anweisung verwendet. Für einen zufälligen Betrachter scheint dies ziemlich intuitiv zu sein, aber ich denke, es wäre eleganter (aus der Sicht eines Softwareentwicklers), das else
-s wegzulassen und den Code wie folgt zu vereinfachen:
function doSomething(value) {
if (check1(value)) {
return -1;
}
if (check2(value)) {
return value;
}
return false;
}
Dies ist sinnvoll, da alles, was auf eine return
Anweisung folgt (im selben Bereich), niemals ausgeführt wird, sodass der obige Code semantisch dem ersten Beispiel entspricht.
Welche der oben genannten Optionen passt besser zu den bewährten Codierungsmethoden? Gibt es bei beiden Methoden Nachteile hinsichtlich der Lesbarkeit des Codes?
Bearbeiten: Es wurde ein doppelter Vorschlag mit dieser Frage als Referenz gemacht. Ich glaube, meine Frage berührt ein anderes Thema, da ich nicht nach doppelten Aussagen frage, wie sie in der anderen Frage dargestellt sind. Beide Fragen zielen darauf ab, Wiederholungen zu reduzieren, wenn auch auf leicht unterschiedliche Weise.
-1
ist eine Zahl, false
ist ein Boolescher Wert und value
wird hier nicht angegeben, sodass es sich um einen beliebigen Objekttyp handeln kann.
value
ist eigentlich eine ganze Zahl. Wenn es irgendetwas sein kann, ist das noch schlimmer.
else
ist ein geringeres Problem, das größere Problem ist, dass Sie offensichtlich zwei Datentypen aus einer einzelnen Funktion zurückgeben, was die API der Funktion unvorhersehbar macht.