В общем заголовок вопроса полностью исчерпывающий. Просто хочу понять, почему в javascript нельзя писать условия if через "a === (b || c)", типа:
var a = 2,
b = 2,
c = 3;
if (a === (b || c)) {
console.log(a)
}
return null
Или иначе, если это не реализуемо:
if (a === b || b === c)
Писать условие a === b || b === c
как b === (a || c)
нельзя по той простой причине что эти выражения не эквивалентны. В Javascript операции выполняются не в том порядке в котором они "выполняются" в русском языке, а в соответствии с фиксированными приоритетами и довольно простой грамматикой. Конкретно в выражении b === (a || c)
сначала вычисляется a || c
- в результате чего получается одно число, с которым и сравнивается b
. Для того чтобы сравнить b
с двумя числами, надо выполнить два сравнения.
Вообще, условие a === b || b === c
по своей форме довольно простое и нет смысла пытаться упрощать его.
Но если по какой-то причине дублировать b
нежелательно (например, пишется Write-Only однострочник) - можно использовать массив и метод includes: [a, c].includes(b)
let test = (a, b, c) => {
return (a === (b || c));
}
console.info(test(2, 2, 3));
console.info(test(2, 2));
console.info(test(2, undefined, 3));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть метод для добавления пар ключ - значение в проперти файл словаря, дело в том, что я не знаю как его сделать универсальным, те
Не заполняется поле "Дата рождения" при запуске тест passed, сделал проверку на заполнение полей, выдает асертЭлемент находит, но почему-то пропускает...
Стоит сервер - клиентское приложение , использующее в своей работе Java и TomCatПри соединении клиентского приложения с серверной частью по протоколу...
Требуется реализовать возможность вывода фотографий после получения ответа JSON с сервераВ этом ответе содержаться прямые ссылки на фотографии