Я смотрел видео Дугласа Крокфорда по этому поводу, и его объяснение того, как не использовать приращение и уменьшение, состоит в том, что
- В прошлом он использовался на других языках, чтобы выходить за рамки массивов и вызывать все виды зла и
- То, что JS-разработчики более запутаны и неопытны, точно не знают, что он делает.
Во-первых, массивы в JavaScript имеют динамический размер, и, простите меня, если я ошибаюсь, невозможно разбить границы массива и получить доступ к данным, к которым нельзя обращаться с помощью этого метода в JavaScript.
Во-вторых, должны ли мы избегать сложных вещей, конечно, проблема не в том, что у нас есть эта возможность, а в том, что есть разработчики, которые утверждают, что делают JavaScript, но не знают, как работают эти операторы ?? Это достаточно просто. значение ++, укажите текущее значение и после выражения добавьте к нему единицу, значение ++, увеличьте значение перед тем, как передать его.
Выражения типа a ++ + ++ b просты в использовании, если вы просто помните выше.
var a = 1, b = 1, c;
c = a ++ + ++ b;
// c = 1 + 2 = 3;
// a = 2 (equals two after the expression is finished);
// b = 2;
Полагаю, вы просто должны вспомнить, кто должен читать код, если у вас есть команда, которая знает JS наизнанку, вам не нужно беспокоиться. Если нет, то прокомментируйте, напишите по-другому и т. Д. Делайте то, что вы должны делать. Я не думаю, что инкремент и декремент по своей сути плох, генерируют ошибки или создают уязвимости, может быть, просто менее читабельны в зависимости от вашей аудитории.
Кстати, я думаю, что Дуглас Крокфорд в любом случае легенда, но я думаю, что он сильно напугал оператора, который этого не заслуживал.
Я живу, чтобы оказаться неправым ...