Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript条件返回语句(简写if-else语句)_Javascript_Jquery_Ternary Operator - Fatal编程技术网

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

Javascript条件返回语句(简写if-else语句),javascript,jquery,ternary-operator,Javascript,Jquery,Ternary Operator,在javascript中编写速记if-else时,出现语法错误。这是我的密码: data && data.cod == '404' && return; 虽然在我使用“正常”时效果很好,但如下图所示: if(data && data.cod == '404') {return}; var temp = data && data.main && data.

在javascript中编写速记if-else时,出现语法错误。这是我的密码:

data && data.cod   ==  '404' && return;
虽然在我使用“正常”时效果很好,但如下图所示:

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

我知道,如果我使用三元运算符,比如
return(data&&data.cod=='404')?'true':'false'但我希望在有条件的基础上“返回”,否则将继续

您试图做的是违反语法规则

return
关键字只能在项目开始时使用

data&&data.cod==“404”&&
中,您唯一可以放置在
中的是表达式,而不是语句。您不能将
return
放在那里

要有条件地返回,请使用适当的
if
语句:

if(data && data.cod == '404') {
    return;
}
我建议不要像您尝试的那样使用快捷方式作为“聪明”的方式来执行带有副作用的代码。条件运算符和布尔运算符的用途是生成一个值:

好:

var value = condition ? valueWhenTrue : valueWhenFalse;
condition ? doSomething() : doSomethingElse();
坏:

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
}

这是什么
data&&data.cod==“404”&&return问题有点不清楚。
return
语句就是一个语句。这不是一个表达,你不能把它当作一个表达。我的错。实际上,我已经尝试先使用三元运算符,然后根据需要更改其实现…(更新了我的问题)。这不是关于三元运算符,而是关于返回的简写语法。这是不可能的,但我喜欢这个想法,所以投票赞成:-)。这将帮助我们进一步减少代码。非常好的答案!这样的东西是道格拉斯·克罗克福德写作的原因之一,也是它如此严格的原因之一。他不想试图写“聪明”的代码。编写“聪明”的代码通常会引入难以调试的bug。