Объясните пожалуйста данный код
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';