Я хотел прояснить кое-что.Логические && и || операторы в JavaScript
Рассмотрим это:
var a = 42;
var b = "abc";
var c = null;
a || b; // 42
a && b; // "abc"
c || b; // "abc"
c && b; // null
Я знаю, что для оператора ||
, если тест на первый операнд верно, то выражение результатов ||
в значении первого операнда (или С). Если тест является ложным, выражение ||
приводит к значению второго операнда (b).
И наоборот, для оператора &&
, если проверка истинна, выражение &&
приводит к значению второго операнда (b). Если тест является ложным, результаты &&
выражение в значении первого операнда (или С)
Так что же происходит, когда вы используете &&
и ||
операторов цепочки ценности, как:
if(a && b && c && d && e){
//do something;
}
if(a || b || c || d || e){
//do something
}
Что именно происходит, когда вы связываете значения? Потому что в первом примере (с участием оператора &&
), если a истинно, то b должно быть возвращено правильно? так что c или d даже учитываются в этой точке?
https://developer.mozilla.org/en-US/docs/Glossary/Truthy и https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_OR – ceejayoz
В первом выражении c, d и e определенно не игнорируются (если только a или b не были ложными и выражение коротко замкнуто). В цепочке из && возвращаемое значение будет первым ложным выражением или окончательным выражением, если все являются правдивыми. Когда вы фактически не присваиваете результат чему-то, вам, как правило, не нужно беспокоиться о том, что возвращается или нет - первое выражение выполняется, если a, b. с. д. и е все являются правдивыми, а второе выражение выполняется, если хотя бы один из них правдивый. – PMV
Спасибо, что поняли, что это действительно полезный ответ! –