Javascript 条件 return 语句(Shorthand if-else 语句)

Javascript conditional return statement (Shorthand if-else statement)

在 javascript 中写入 shorthand if-else 时出现语法错误。这是我的代码:

data && data.cod   ==  '404' && return;

尽管当我像下面这样使用正常的 if-else 时工作正常:

        if(data && data.cod   ==  '404') {return};
        var temp        =   data && data.main && data.main.temp;
       //Code here...

我知道,如果我使用像 return (data && data.cod == '404')?'true':'false'; 这样的三元运算符,它工作正常,但我正在寻找 "return" 有条件的基础,否则继续进一步。

您的行为违反了语法规则。

return关键字只能用在return statement

的开头

data && data.cod == '404' && <something>中,您唯一可以放在<something>中的是表达式,而不是语句。你不能把 return 放在那里。

有条件地return,使用适当的if语句:

if(data && data.cod == '404') {
    return;
}

我建议不要像您尝试的那样使用快捷方式作为 "clever" 执行带有副作用的代码的方式。条件运算符和布尔运算符的目的是产生一个值:

好:

var value = condition ? valueWhenTrue : valueWhenFalse;

差:

condition ? doSomething() : doSomethingElse();

你不应该这样做,即使语言允许你这样做。这不是条件运算符的目的,它会让试图理解您的代码的人感到困惑。

为此使用适当的 if 语句。这就是它的用途:

if (condition) {
    doSomething();
} else {
    doSomethingElse();
}

如果你真的想的话,你可以把它放在一行上:

if (condition) { doSomething(); } else { doSomethingElse(); }

那么就在 if

中写上 return
var result = (data && data.cod   ==  '404') 
if (result) {
  return result;
} else {
    //otherwise
}