Особенность условного оператора "?"?

Подскажите, пожалуйста, почему данный код выполняется корректно:

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


Ответы (0 шт):