Особенность условного оператора "?"?
Подскажите, пожалуйста, почему данный код выполняется корректно:
let operatingArray = [];
function two() {
operatingArray.push(2)
if (operatingArray.length == 3) {
return count()
} else {
null
}
}
function three() {
operatingArray.push(3)
if (operatingArray.length == 3) {
return count()
} else {
null
}
}
function times() {
operatingArray.push("*")
}
function count() {
switch(operatingArray[1]) {
case "*": return operatingArray[0] * operatingArray[2]
case "+": return operatingArray[0] + operatingArray[2]
case "-": return operatingArray[0] - operatingArray[2]
case "/": return operatingArray[0] / operatingArray[2]
}
}
console.log(two(times(three())));
А данный код, в котором просто используется условный оператор ? - нет
let operatingArray = [];
function two() {operatingArray.push(2), operatingArray.length == 3 ? count() : null}
function three() {operatingArray.push(3), operatingArray.length == 3 ? count() : null}
function times() {operatingArray.push("*")}
function count() {
switch(operatingArray[1]) {
case "*": return operatingArray[0] * operatingArray[2]
case "+": return operatingArray[0] + operatingArray[2]
case "-": return operatingArray[0] - operatingArray[2]
case "/": return operatingArray[0] / operatingArray[2]
}
}
console.log(two(times(three())));
В первом случае вывод - 6, во втором - undefined