2017-07-23 8 views
0

ich diese war auf der Suche, wenn Aussagen:javascript: ternären Operator für if/else if/else-Anweisung

if (cellDate < filterLocalDateAtMidnight) { 
    return -1; 
} else if (cellDate > filterLocalDateAtMidnight) { 
    return 1; 
} else { 
    return 0; 
} 

von this article und ich habe mich gefragt, warum kurze Hand, wenn Aussagen nicht verwendet wurden (dh die ternäre mit Betreiber)> Gibt es einen Nachteil bei der Verwendung? Es scheint eine gute Gelegenheit zu sein, es zu benutzen.

Wenn es verwendet werden kann, ist das unten, wie Sie es vereinfachen würden? Ich möchte meinen Code Refactoring, obwohl ich ein wenig besorgt bin über in dem Artikel aus dem Beispiel verirrt (und versehentlich einige Sonderfall Pannen Einführung)

cellDate < filterLocalDateAtMidnight ? -1 :(cellDate > filterLocalDateAtMidnight : 1 : 0); 

i die separate übernehmen, wenn Aussagen in dem Fall verwendet werden, von null/undefinierte Werte?

+0

Ihr ternärer Ausdruck repräsentiert die if else-Anweisungen korrekt. Wenn sonst Aussagen kompakt mit ternärem Operator ausgedrückt werden können. –

Antwort

1

Verschachtelte ternare sind verwirrend zu lesen und sollten generell vermieden werden. Siehe die Airbnb style guide.

Mit numerischen Vergleichen können Sie in der Regel einfach Subtraktion verwenden. das heißt

return cellDate - filterLocalDateAtMidnight; 

Aber Vorsicht, dass diese Lösung ist anfällig für wirklich große Zahl Überlauf in Integer.

Verwandte Themen