Ich habe mir das Video von Douglas Crockford zu diesem Thema angeschaut und seine Erklärung für die Nichtverwendung von Inkrement und Dekrement ist, dass
- Es wurde in der Vergangenheit in anderen Sprachen verwendet, um die Grenzen von Arrays zu durchbrechen und alle Arten von Schlechtigkeit und
- Dass sie eher verwirrend ist und unerfahrene JS-Entwickler nicht genau wissen, was sie tut.
Erstens sind Arrays in JavaScript dynamisch dimensioniert, und daher ist es, verzeihen Sie mir, wenn ich falsch liege, nicht möglich, die Grenzen eines Arrays zu überschreiten und auf Daten zuzugreifen, auf die mit dieser Methode in JavaScript nicht zugegriffen werden sollte.
Zweitens, sollten wir Dinge vermeiden, die kompliziert sind? Das Problem ist doch nicht, dass wir diese Möglichkeit haben, sondern dass es Entwickler gibt, die behaupten, JavaScript zu beherrschen, aber nicht wissen, wie diese Operatoren funktionieren? Es ist ganz einfach: value++ gibt mir den aktuellen Wert und fügt nach dem Ausdruck noch einen hinzu, ++value erhöht den Wert, bevor er mir gegeben wird.
Ausdrücke wie a ++ + ++ b sind einfach zu berechnen, wenn man sich die obigen Angaben merkt.
var a = 1, b = 1, c;
c = a ++ + ++ b;
// c = 1 + 2 = 3;
// a = 2 (equals two after the expression is finished);
// b = 2;
Ich nehme an, Sie müssen nur daran denken, wer den Code durchlesen muss. Wenn Sie ein Team haben, das JS in- und auswendig kennt, brauchen Sie sich keine Sorgen zu machen. Wenn nicht, dann kommentieren Sie ihn aus, schreiben Sie ihn anders, usw. Tun Sie, was Sie tun müssen. Ich glaube nicht, dass Inkrement und Dekrement von Natur aus schlecht sind oder Fehler erzeugen oder Schwachstellen schaffen, vielleicht nur weniger lesbar, je nach Zielgruppe.
Im Übrigen halte ich Douglas Crockford ohnehin für eine Legende, aber ich denke, er hat wegen eines Betreibers, der das nicht verdient hat, viel Aufsehen erregt.
Ich lebe dafür, das Gegenteil zu beweisen...