Das schreibe ich normalerweise für Schleifen.
für (var i = 0; i <20; i ++) {....}Aber ich denke, einige Leute schreiben das
für (var i = 0; i <20; ++ i) {..}Welche Auswirkungen hat dies auf die für Schleife?
1. Es scheint, dass es keinen Unterschied für ...
Aber wenn es in der Zuordnung verwendet wird, gibt es einen Unterschied ...
var a = 1; var b = a ++; var c = 1; var d = ++ c; Konsole.log (b, d); // 1, 2
A ++ soll eine zuerst anwenden und ihn dann selbst hinzufügen
++ a ist zuerst hinzuzufügen und dann a aufzutragen
2. Es ist wahrscheinlich eine Gewohnheit, die durch die C/C ++ - Ära gebracht wurde. Legende hat es, dass ++ i schneller als i ++ ist, aber tatsächlich ist die Leistung dieser beiden in JS ähnlich.
In den spezifischen Details wird die Spezifikation wie folgt geschrieben:
Für die Situation vor -
Unaryexpression: ++ unaryexpressionlet expr das Ergebnis der Bewertung von unaryexpression.Let OldValue Be tonumber (GetValue (Expr). Ifabrupt (Status) .Return NewValue.
Eine grobe Übersetzung:
1. Sei expr gleich dem Ergebnis des Stromausdrucks (das ist der Teil After ++)
2. Lassen
3. Verwenden Sie die gleichen Regeln wie der " +" -Operator, lass NewValue = OldValue + 1
V.
5. Der gesamte Betrieb gibt NewValue zurück
Für die Situation dahinter -
Postfixexpression: lfthandsidexpression ++
1.LET LHS ist das Ergebnis der Bewertung der Lfthandsidexpression.
2. Let OldValue Be Tonumber (GetValue (LHS)).
3.. ReturnIfabrupt (OldValue).
4. NEWVALUE ist das Ergebnis des Hinzufügens des Wertes 1 zu OldValue, wobei dieselben Regeln wie für den + Operator verwendet werden (siehe 12.7.5).
5.LET -Status putValue (LHS, NewValue).
6. returnIfabrupt (Status).
7. Kehren Sie OldValue zurück.
Eine grobe Übersetzung -
1. Sei lhs gleich dem Ergebnis des Stromausdrucks (der vorherige Teil von ++)
2. Lassen Sie OldValue dem LHS gleich sein, um das Ergebnis der Anzahl zu konvertieren
3. Verwenden Sie die gleichen Regeln wie der " +" -Operator, lass NewValue = OldValue + 1
V.
5. Die gesamte Operation gibt OldValue zurück
Es ist ersichtlich, dass der Unterschied zwischen beiden nur der letzte Schritt ist. Ob der gesamte Vorgang nach dem Hinzufügen oder vor dem Hinzufügen eines zurückgibt.
Für die für die Aussage:
für (var i = 0; i <n; i ++)
Die letzte Spalte ist nur selbstverfolgt und weist diesen Wert niemandem zu, sodass aus dieser Sicht das gleiche für ++ -Symbole vor oder nach dem Platzierungen gleichermaßen ist.
3. Tatsächlich gibt es keinen großen Unterschied. Aber wenn Sie ein bisschen Effizienz verfolgen wollen, werde ich tatsächlich effizienter sein.
Es stammt in der Tat aus der STD -Standardbibliothek von C ++. Wenn ich Iterator eines STD -Containers ist, ist ich keine Zahl, i ++ generiert einen zusätzlichen Zuordnungsvorgang, also hat ++ i eine höhere Leistung. Daher verwenden Menschen, die es gewohnt sind, C ++ zu verwenden, ++ i, um Geld zu sparen, wenn ich kein numerischer Wert ist.
Das obige ist der Unterschied zwischen i ++ und ++ i in JS für Loop, die Ihnen vom Editor vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!