gpt4 book ai didi

javascript - 无法在三元的第二个操作数中使用 `return`

转载 作者:行者123 更新时间:2023-11-28 15:57:41 25 4
gpt4 key购买 nike

如果满足条件,我想返回一个值,但如果不满足,则执行一个函数。

我遇到错误

function is_equal(a,b){
a === b ? return true : do_something(a,b);
}

但我收到错误。 意外的 token 返回虽然有一次当我这样做时,我得到了意外的 token 错误!

这有效:

return a === b ? true : do_something(a,b);

但是这是否会以某种方式从一个不应该返回任何内容的函数中返回一些东西?三元不是正确的选择吗? MDN 页面没有文档指定它不应该这样使用。它确实表明它们被以几乎所有其他可以想象的方式使用......谢谢!

最佳答案

出现错误的原因是条件运算符的操作数是 expressions ,但是returnstatement 。在 JavaScript 中,您可以将表达式放在需要语句的位置,但反之则不然。尝试在条件运算符的操作数中使用 return 无效,原因与 var a = return false; 无效相同。

I want to return a value if a condition is met, but perform a function if it isn't.

没有双关语,但这就是 if 语句的用途:

function is_equal(a,b){
if (a === b) {
return true;
}
else {
do_something(a,b);
}
}

请注意,这意味着如果您调用 do_somethingis_equal 将返回 undefined。或者:

function is_equal(a,b){
return a === b ? true : do_something(a,b);
}

...如果你想返回do_something的结果,或者:

function is_equal(a,b){
if (a === b) {
return true;
}
else {
do_something(a,b);
return false;
}
}

可以在一行中完成上述操作,但我不建议这样做:

function is_equal(a,b){
return a === b ? true : (do_something(a,b), false);
}

当它们相等时将返回 true,或者调用 do_something 然后返回 false 如果它们不相等。

关于javascript - 无法在三元的第二个操作数中使用 `return`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18090973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com