Javascript条件返回语句(简写if-else语句)
在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.
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。