在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(); }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句