я думал, что я должен был сделать это:Зачем использовать && вместо || в следующем выражении if?
if (building.floorplan || selectedCategory !== 'outdoor') {
// run code
}
(Выполнить код, если здание имеет план этажа или если выбранная категория не на улице.)
Но оказывается, код работает только с &&
:
if (building.floorplan && selectedCategory !== 'outdoor') {
// run code
}
(Выполнить код, если здание имеет план и, если выбранная категория не на улице.)
Не должен ли первый код запускать код? Поскольку условие встречается, если есть план поэта, или выбранная категория не является наружной?
Первая должна работать. Каков тип «.floorplan»? – Chris
Первое утверждение будет выполняться, если одно из условий оценивается как true. Второй оператор будет выполняться, если оба условия оцениваются как true. Да, это означает, что первая всегда будет работать, если вторая работает. –
Это два принципиально разных выражения. Поэтому без какого-либо дальнейшего контекста невозможно сказать, почему вам нужно было использовать один над другим. Но да, случай OR будет выполняться, когда выполняется сценарий AND, но он намного слабее, поэтому он также будет работать в случаях, когда сценарий AND не будет работать. – JustSid