Javascript 条件 return 语句(Shorthand if-else 语句)
Javascript conditional return statement (Shorthand if-else statement)
在 javascript 中写入 shorthand 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
关键字只能用在return statement
的开头
在data && data.cod == '404' && <something>
中,您唯一可以放在<something>
中的是表达式,而不是语句。你不能把 return
放在那里。
有条件地return,使用适当的if
语句:
if(data && data.cod == '404') {
return;
}
我建议不要像您尝试的那样使用快捷方式作为 "clever" 执行带有副作用的代码的方式。条件运算符和布尔运算符的目的是产生一个值:
好:
var value = condition ? valueWhenTrue : valueWhenFalse;
差:
condition ? doSomething() : doSomethingElse();
你不应该这样做,即使语言允许你这样做。这不是条件运算符的目的,它会让试图理解您的代码的人感到困惑。
为此使用适当的 if
语句。这就是它的用途:
if (condition) {
doSomething();
} else {
doSomethingElse();
}
如果你真的想的话,你可以把它放在一行上:
if (condition) { doSomething(); } else { doSomethingElse(); }
那么就在 if
中写上 return
var result = (data && data.cod == '404')
if (result) {
return result;
} else {
//otherwise
}
在 javascript 中写入 shorthand 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
关键字只能用在return statement
在data && data.cod == '404' && <something>
中,您唯一可以放在<something>
中的是表达式,而不是语句。你不能把 return
放在那里。
有条件地return,使用适当的if
语句:
if(data && data.cod == '404') {
return;
}
我建议不要像您尝试的那样使用快捷方式作为 "clever" 执行带有副作用的代码的方式。条件运算符和布尔运算符的目的是产生一个值:
好:
var value = condition ? valueWhenTrue : valueWhenFalse;
差:
condition ? doSomething() : doSomethingElse();
你不应该这样做,即使语言允许你这样做。这不是条件运算符的目的,它会让试图理解您的代码的人感到困惑。
为此使用适当的 if
语句。这就是它的用途:
if (condition) {
doSomething();
} else {
doSomethingElse();
}
如果你真的想的话,你可以把它放在一行上:
if (condition) { doSomething(); } else { doSomethingElse(); }
那么就在 if
中写上 returnvar result = (data && data.cod == '404')
if (result) {
return result;
} else {
//otherwise
}