Вебинар: Понять себя как тимлида: привычки, роли и стили управления - 21.10
Анализатор обнаружил ошибку, связанную с использованием постфиксных инкремента или декремента при записи в эту же переменную.
Рассмотрим пример:
let value = 0;
....
value = value++; // <=
....
После присваивания переменная value останется равна нулю. Это связано с тем, что постфиксные инкремент и декремент возвращают значение переменной до её изменения. Порядок операций в данном выражении будет следующим:
value;value на единицу; value значения, полученного на шаге 1. Таким образом, результат выполнения постфиксных инкремента или декремента теряется при перезаписи в ту же переменную.
Это может быть опечатка, и на самом деле нужно было сохранить результат в другую переменную. В таком случае корректный вариант может выглядеть так:
let value = 0;
let savedValue = ....;
....
savedValue = value++;
....
Либо же программист написал присваивание по ошибке, и на самом деле оно тут не нужно:
let value = 0;
....
value++;
....
Диагностическое правило классифицируется как:
Была ли полезна эта страница документации?