zkrvndm
@zkrvndm
Архитектор решений

Всегда ли внутри условного оператора команды выполняются последовательно?

Возьмем такой пример:
Развернуть пример
async function supply() {
	
	if (await supply1() && await supply2() && await supply3()) {
		
		return true;
		
	}
	
	else {
		
		return false;
		
	}
	
}

async function supply1() {
	
	console.log(1);
	
	return true;
	
}

async function supply2() {
	
	console.log(2);
	
	return false;
	
}

async function supply3() {
	
	console.log(3);
	
	return true;
	
}

Гарантируется ли языком, что внутри if функции будут вызваны строго последовательно и при этом, если какая-то функция вернет false, то все последующие функции не будут вызваны? Ну то есть, я могу такой синтаксиc использовать безбоязненно и что поведение никогда не поменяется? Или лучше тут сделать три отдельных if один внутри другого?
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Это требование стандарта. Соблюдается ли оно конкретным интерпретатором JS - это вопрос к разработчикам интерпретатора. Можете проверить самостоятельно
const test = (x) => { console.log(x); return false; };
if (test(1) && test(2)) {
  console.log('???');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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