问题
是否可以在三元运算符内执行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
);
}
答案 0 :(得分:4)
不可能。三元运算符的操作数为expressions。 return
是statement。您应该使用if
else
。根据{{3}}
参数
条件
以值作为条件的表达式。
exprT,exprF
具有任何类型的值的表达式。
答案 1 :(得分:1)
这是不可能的-三元运算符需要表达式,而return
是一条语句。使用简单的if
语句:
function foo() {
if (true) console.log("This is true"):
else return;
}