2016-03-19 8 views
0

Bitte this Code von d3.jsIst dies ein Fall von Javascript-Komma-Operator

if (y1 < y0) t = y0, y0 = y1, y1 = t; 

hat dieses nichts sehen mit comma operator, im Sinne der Rückkehr/Zuordnung des letzten Wertes zu tun, oder äquivalent zu

if (y1 < y0) { 
    t = y0; 
    y0 = y1; 
    y1 = t; 
} 

Ich war mehr besorgt über alles, was hier passiert, indem man sich auf die Reihenfolge der Operation verlässt.

+0

, die völlig korrekt ist, verwendet Komma-Operator prägnanter sein, um einen schnelleren Download führt und weniger Speicherabdruck. –

+1

@ArifBurhan sollten Sie solche Behauptungen vermeiden, es sei denn, Sie können sie unterstützen. – naomik

+1

Nichts schwierig, nur eine einfache von links nach rechts Bewertung jedes Ausdrucks. Der Komma-Operator hat die niedrigste Priorität aller Operatoren, daher sollte es dort wenig Sorgen geben. Persönlich, wenn ich es in einer einzigen Zeile haben wollte, würde ich es so schreiben: 'if (y1

Antwort

0

Ja, das erste Snippet verwendet den Komma-Operator und beide Snippets sind äquivalent, da der Komma-Operator von links nach rechts ausgewertet wird.

Der Komma-Operator ist in Ihrem Snippet verwendet, um mehrere Zuweisungen in einer einzigen Anweisung, so sind sie alle beherrscht durch die vorhergehenden if und ein paar Zeichen zu setzen ({ und }) gespeichert werden können.

nicht sicher, ob dies wert ist manuell zu tun, aber minifiers tun normalerweise diese Art von Optimierung (und es summiert sich)

Verwandte Themen