gpt4 book ai didi

javascript - 为什么在三元运算符内部返回会抛出 SyntaxError?

转载 作者:行者123 更新时间:2023-11-30 11:02:05 28 4
gpt4 key购买 nike

有什么不同?为什么它会在函数 a() 中出错?

function a(){
1 == 1 ? return true: ""; // Uncaught SyntaxError: Unexpected token return
}

function b(){
1 == 1 ? console.log(true):""; // correct
}

function c(){
if (1==1) return true; // correct
}

最佳答案

return是一个语句:它只能独立存在,就像一个if语句,不能被解析为一个值。条件运算符只需要值(表达式)。它的语法是:

cond ? expr1 : expr2

其中condexpr1expr2 都是表达式。如果 cond 为真,整个条件运算符将求值为 expr1,否则为 expr2

同样,这是无效的:

1 === 1
? if (foo) {
// do something
}
: ''

条件运算符的 ?: 之后的内容必须始终计算为一个值 - 也就是说,它必须是只有一个表达式return 只是一个语句,不能求值(就像 if 语句不能求值一样)。

console.log,另一方面,一个表达式,其计算结果为 undefined

如果您只想在 a 中满足条件时返回 true,那么您将不得不使用完整的 if:

function a() {
if (1 == 1) {
return true;
}
// other statements here
}

如果你想在条件满足时返回true,否则返回空字符串,那么你可以将return放在左边并使用条件运算符:

function a() {
return 1 == 1
? true
: '';
}

当您需要有条件地创建表达式 时,请使用条件运算符。如果除了创建条件表达式之外还需要做任何其他事情(例如,如果要在条件满足时返回 特定值,否则继续执行函数的其余部分),则应该使用if 代替。

关于javascript - 为什么在三元运算符内部返回会抛出 SyntaxError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57301013/

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