Javascript 更短的嵌套if语句?
我只是想知道,有没有更快捷的方法写这个Javascript 更短的嵌套if语句?,javascript,jquery,html,if-statement,Javascript,Jquery,Html,If Statement,我只是想知道,有没有更快捷的方法写这个 if (name == '' && distance == '') { y = 2; } else if (name == '' && distance < 1) { y = 2; } if(name=''&&distance=''){ y=2; } else if(name=''&&distance
if (name == '' && distance == '') {
y = 2;
}
else if (name == '' && distance < 1) {
y = 2;
}
if(name=''&&distance=''){
y=2;
}
else if(name=''&&distance<1){
y=2;
}
我知道我可以把它们放在同一行,但是有没有一种更简单的方法,我不必第二次重写“name=''”部分?有点像这样:
if (name == '' && (distance == '' || distance < 1)) {
y = 2;
}
if (name === '') {
if (distance === '') {
// do stuff
} else {
if (distance < 1) {
// do stuff
}
}
}
if(名称=“”&&(距离=“”| |距离<1)){
y=2;
}
首先计算距离部分,如果满足其中一个参数,则名称==''部分将与其进行检查。我将这样写:
if (name == '' && (distance == '' || distance < 1)) {
y = 2;
}
if (name === '') {
if (distance === '') {
// do stuff
} else {
if (distance < 1) {
// do stuff
}
}
}
if(name==''){
如果(距离==''){
//做事
}否则{
如果(距离<1){
//做事
}
}
}
两种情况下都有一个空名称,因此如果该名称为空,则继续测试距离
如果代码更容易理解,最好多写一点代码
在以后的工作中,通常很难使用简短而神秘的语言。实际上,在javascript中,<1===true,因此您可以执行以下操作:
if (name == '' && distance < 1) {
y = 2;
}
if(name=''&&distance<1){
y=2;
}
if(name='')
{
如果(距离=“”)
{
y==2
}
否则如果(距离<1)
{
y=2
}
}
更简单,但意图仍然显而易见。我同意:最短的代码不一定是最容易阅读或稍后返回并修改的代码。但是对于这个非常简单的用例,我认为越短越好。javascript也使用了短路布尔运算符,因此对于“首先计算距离部分,如果满足其中一个参数,那么name=''部分将进行检查。”您可以这样交换顺序:
if(距离<1&&name='')
这样,首先计算距离,并且仅当距离检查的计算结果为true时才移动到name。