JavaScript三元运算符表达式中的Return语句

时间:2019-05-10 10:45:38

标签: javascript function conditional

问题

是否可以在三元运算符内执行return语句?

这很奇怪,因为我觉得三元就像 if / else 的简写,并且您可以在其中执行return语句 if / else

但是由于某些原因,我无法在三元运算符内部执行return语句:

常规IF / ELSE:

// THIS WORKS
function foo() {
  if (true) {
    console.log('This is true');
  } else {
    console.log('Not true');
  }
}

第三级为IF / ELSE:

// THIS ALSO WORKS
function bar() {
  true ? 
    console.log('This is true')
  : console.log('Not true');
}

以上两种代码都可以正常工作。但是当涉及退货时,会发生以下情况:

常规IF / ELSE,返回:

// THIS WORKS
function foo() {
  if (true) {
    console.log('This is true');
  } else {
    return;
  }
}

TERNARY为IF / ELSE,返回:

// THIS DOESN'T WORK
function bar() {
  true ? 
    console.log('This is true')
  : return;
}

可能的重复项:

我环顾四周,没有找到这个确切问题的答案。

对我来说很明显,我可以返回三元运算符,就像下面的代码一样,但这不是这个问题的意思。

function foo() {
  return(
    true ?
      console.log('This is true')
    : null
  );
}

2 个答案:

答案 0 :(得分:4)

不可能。三元运算符的操作数为expressionsreturnstatement。您应该使用if else。根据{{​​3}}

  

参数

     

条件
  以值作为条件的表达式。

   exprT,exprF
  具有任何类型的值的表达式。

答案 1 :(得分:1)

这是不可能的-三元运算符需要表达式,而return是一条语句。使用简单的if语句:

function foo() {
    if (true) console.log("This is true"):
    else return;
}