@Barrakuda74

Почему работает данный код и как правильно вернуть в return значения по условиям?

Объясните пожалуйста данный код
var x = undefined;
var y = true;
function test(x, y) {
	var z = '';
    var count = 0;
	return  1 == x && (z += "взяли x<br>", count += 1),
          1 == y && (z += "взяли y<br>", count += 1),
          z += 'Кол-во переменных: ' + count,
          z
}
  document.write(test(x,y)); // выведет 'взяли y Кол-во переменных: 1'


Почему он работает, что это за конструкция в return?
Я знаю, что делает данный код, если x == 1, то выполнится код, который идёт далее в скобках после &&. Но почему здесь знак '&&'?? Разве это не 'И'? И почему конструкция не выглядит как классический shorthand, т.е.: return boolean ? 'foo' : 'bar';
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Почему он работает, что это за конструкция в return?
Потому что это корректный и синтаксически правильный код без ошибок. Несколько запутанный, но это не мешает ему нормально работать.

Да, вы правы, && - это логическое И. А еще там запятые

И почему конструкция не выглядит как классический...
Вообще очень странный вопрос. Эта штука выглядит по другому потому, что ее написали по другому.
Ваш К.О.

Похоже, кто-то достиг неплохих результатов в искусстве написания загадочного мозговыносящего кода.
Ответ написан
Ваш ответ на вопрос

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

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