Как лучше писать условия if?

Как лучше писать условия? И дайте советы, чтобы не писать говнокод, пожалуйста)
// --- Так:
if (...) {
 //code
} else {
 //code
}
// -- Или так:
if (...) {
  //code
  return 0;
}
//code

Ниже пример кода
function search() {
    if (this.column == "all") {
			alert('Выберете столбец!');
			return 0;
		}

		if (str == "") {
			this.printData();
			return 0;
		}

		let result = [], searchResult;

		str = str.toLowerCase();

		for (let j = 0; j < this.inData.length; j++) {
			let dataRow = this.inData[j];
			let dataValue = dataRow[this.column];
			let dataStr = String(dataValue).toLowerCase();

			if (dataStr.indexOf(str) > -1) {
				result.push(dataRow);
			}
		}

		if (result.length != 0) {
			searchResult = new Table(result, this.id);
			searchResult.printData();	
		} else {
			alert("Нет результатов");
		}
}
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 3
@webviewer
if (...) {
  //code
  return 0;
}
//code


Такой вариант более читаемый
Ответ написан
Комментировать
Robur
@Robur
Знаю больше чем это необходимо
В таком варианте как вы написали - вам else вообще не нужен. А ненужный код лучше не писать.

В других ситуациях может быть по другому. else сам по себе никаких проблем не имеет, пишите если нужен.
Основное правило с if - не городить большую вложенность и делать код внутри как можно короче, если он становится достаточно большой - выделять в функцию.

ПС. "0" в return не нужен.
Ответ написан
Комментировать
xEpozZ
@xEpozZ
Веб-разработчик
Если
if (a>b){
a = 100;
}else{
a = 0;
}

тогда лучше
a = 0;
if(a > b){
a = 100;
}

если больше логики в "ифах", то как сказали ребята выше
function setName(data){
let name;
if(data.firstName && data.lastName){
name = data.firstName + ' '  + data.lastName;
}else{
name = data.firstName + ' '  + data.lastName;
}
data.name = name;
}

если какая-нибудь void функция, тогда можно и
function start(){
if(something.isStarted){
return;
}
something.start();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы