alert(1) || alert(2) && alert(3)function myalert(value) {
alert(value);
return value;
}
myalert(1) + myalert(2) * myalert(3)alert(value) возвращает undefinedmyalert(value) возвращает valueA || B && C разбирается как A || (B && C)A. Если оно приводится к false, требуется проверить второй аргумент ||, т.е. (B && C)B. Если оно приводится к false, то проверять C уже не нужно. undefined || undefined && 'до этого места проверка не доходит'undefined || 'что угодно' // 'что угодно'
undefined && 'что угодно' // undefined