V7020. Suspicious code formatting. Curly brackets may be missing.
Анализатор обнаружил потенциальную ошибку: форматирование кода, следующего за управляющей конструкцией, не соответствует логике выполнения программы. Возможно, пропущены фигурные скобки.
Рассмотрим пример:
if (a == 1)
b = c;
d = b; // <=
В этом примере инструкция d = b; выполнится вне зависимости от условия, поскольку при отсутствии блока после управляющей конструкции её телом будет только первое выражение. При этом форматирование указывает на то, что выполнение d = b; ожидалось только при истинности условия a == 1.
Согласно Google JavaScript Style Guide фигурные скобки рекомендуется использовать для всех управляющих конструкций, даже если их тело содержит всего одну операцию. Это позволит не допустить путаницы из-за кода, вводящего в заблуждение.
Варианты исправленного кода:
// Option N1
if (a == 1) {
b = c;
}
d = b;
// Option N2
if (a == 1) {
b = c;
d = b;
}
Также вводящий в заблуждение код может выглядеть следующим образом:
if (a == 1) b = c; d = b;
В этом случае операция d = b; также выполнится вне зависимости от условия.
Варианты исправления:
if (a == 1) { b = c; d = b; }
if (a == 1) { b = c; }
d = b;
if (a == 1) b = c;
d = b;
Примечание. В качестве управляющих конструкций анализатор рассматривает if, for и while.