Как работает эта странная конструкция на js ?
10 > 1 ? 15 < 2 ? 7 > 3 ? 'variant 1' : 'variant 2' : 'variant 3' : 'variant 4'
Это тернарный оператор, более лёгкая форма обычного if{}else{}
, однако возвращает истинное значение:
a = 2 > 5 ? 'o_O' : true; // a === true
В Вашем случае, операторы просто вложены (не рекомендуется так делать, тяжело для чтения).
Можно переписать так:
if (10 > 1) { // true, we need to go deeper
if (15 < 2) { // false, go to else statement
if (7 > 3) {
console.info('variant 1');
} else {
console.info('variant 2');
}
} else { // Execute!
console.info('variant 3');
}
} else {
console.info('variant 4');
}
Как я понимаю из грамматики JavaScript, то каждое подвыражение за исключением начального условия условного оператора в свою очередь может включать условный оператор
Поэтому данное выражение
10 > 1 ? 15 < 2 ? 7 > 3 ? 'variant 1' : 'variant 2' : 'variant 3' : 'variant 4'
можно представить как цепочку вложенных условных операторов
10 > 1 ? ( 15 < 2 ? ( 7 > 3 ? 'variant 1' : 'variant 2' ) : 'variant 3' ) : 'variant 4'
В результате значением выражения будет строка 'variant 3'
Сначала отформатировать по-человечески
10 > 1
? 15 < 2
? 7 > 3
? 'variant 1'
: 'variant 2'
: 'variant 3'
: 'variant 4'
а потом читать так же, как вложенные if-else:
if (10 > 1)
if (15 < 2)
if (7 > 3)
return 'variant 1'
return 'variant 2'
return 'variant 3'
return 'variant 4'
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть несколько блоков с дата-атрибутами, значение которых являются координатыНужно перебрать все блоки у которых есть эти дата-атрибуты...
Как сформировать такой параметр 'status' : 1 в переменную get? Сейчас $_POST выглядит так
Добрый деньНа это странице на вакансию можно откликнуться через LinkedIn