У меня есть цикл for of
, из которого мне нужно выйти, если нет результирующих значений. Мне приходит в голову, что я мог бы использовать ранний оператор return
для обработки этого или использовать оператор break
. Чтобы было ясно, в этом случае нет дополнительного кода для выполнения ВНУТРИ этого блока кода после части, которую я пропускаю, поэтому я предполагаю, что любой из них будет работать здесь (прерывать или возвращать). Любая функциональная или производительная причина для использования одного над другим в этом конкретном случае?
ВАРИАНТ 1: (перерыв)
for (let diff of differences) {
if (!diff.path) break;
if (diff.path[0] !== "updatedAt") {
const docChange = new ChangedProp(doc, diff, lastEditedBy, "customer");
docChange.log();
}
}
ВАРИАНТ 2: (возврат)
for (let diff of differences) {
if (!diff.path) return;
if (diff.path[0] !== "updatedAt") {
const docChange = new ChangedProp(doc, diff, lastEditedBy, "customer");
docChange.log();
}
}
break
, вероятно, будет лучшим выбором. - person Rey   schedule 05.06.2019return
передает намерение завершить функцию, тогда какbreak
заставляет программиста задуматься о том, что может произойти после цикла. Я бы использовалbreak
, если вам нужно выполнить очистку после цикла, иreturn
, если я хочу немедленно вернуть результат функции, но это очень субъективно. - Вероятно, он компилируется в тот же код на ассемблере. - person Moritz Roessler   schedule 05.06.2019