Javascript 条件返回语句(Shorthand if-else 语句)



在javascript中编写速记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 语句的开头使用

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

若要有条件地返回,请使用正确的 if 语句:

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

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

好:

var value = condition ? valueWhenTrue : valueWhenFalse;

坏:

condition ? doSomething() : doSomethingElse();

不应该这样做,即使语言允许你这样做。这不是条件运算符的用途,对于试图理解您的代码的人来说,这会令人困惑。

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

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

如果您确实想要,可以将其放在一行上:

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

那么只需在 if 中写下返回值

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

最新更新