На самом деле проверка на «ложь» - это не вопрос производительности, это вопрос цикломатической сложности. Позвольте мне прояснить:
Представьте, что вам нужно выполнить 4 или 5 условий, прежде чем вы сможете выполнить действие:
if (condition1 === true) {
...code
if (condition2 === true) {
...code
if (condition3 === true) {
...code
if (condition4 === true) {
...code
if (condition5 === true) {
...code
return value;
}
}
}
}
}
Это было бы очень сложно понять, верно?
Теперь давайте применим правило «уйти раньше», проверив «ложь».
Код ниже делает то же самое, что и код выше:
if (condition1 === false) {
return;
}
...code of condition 1 when is true
if (condition2 === false) {
return;
}
...code of condition 2 when is true
if (condition3 === false) {
return;
}
...code of condition 3 when is true
if (condition4 === false) {
return;
}
...code of condition 4 when is true
if (condition5 === false) {
return;
}
return value;
Видите, как код намного чище и проще для чтения? Это просто потому, что вы сохранили вложенные уровни до минимума, а не накапливали их.
Надеюсь, это ответит на ваш вопрос.