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

时间:2015-01-23 07:13:37

标签: javascript jquery ternary-operator

在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';这样的三元运算符,它可以正常运行,但我正在寻找"返回"在有条件的基础上,否则继续。

2 个答案:

答案 0 :(得分:9)

您要做的是违反语法规则。

return关键字只能在return statement

的开头使用

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(); }

答案 1 :(得分:0)

那么只需在if

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