有没有办法简化这个javascript if语句?

时间:2010-12-13 20:39:30

标签: javascript

不是js的专家,但是这个if语句仍然让我感到痒痒,因为我怀疑它可以用更聪明的方式编写:

if(event.value == "/")
{
    event.value = "/home";
}

建议?

6 个答案:

答案 0 :(得分:3)

您可以省略大括号:

if(event.value == "/") event.value = "/home";

或条件:

event.value = event.value == "/" ? "/home" : event.value;

......但我不确定其中任何一个真的“更好”,而with statement你应该远离它。

答案 1 :(得分:2)

if(event.value == "/"){
   event.value += "home";
}

答案 2 :(得分:1)

event.value = (event.value == "/") ? "/home" : event.value;

将是唯一的其他实用选择。在这种情况下,if()版本更具可读性。

答案 3 :(得分:1)

除了尼克的建议之外,除了尼克的建议之外,你真的可以用它做更多的事情,但这是另一种投入混合的方式:

event.value += (event.value == "/") ? "home" : "";

另一个,只是为了好玩:

event.value = ((function(v){ return v=="/" ? v+'home' : v }(event.value))

答案 4 :(得分:1)

我认为没有更好的方法。如果您的编码风格指南允许,您可以省略大括号,但它不会在语义上产生影响。 较短的event.value = (event.value == '/')?'/home':event.value;不太好,因为当值与'/'不同时,它会进行无用的分配。

答案 5 :(得分:0)

您可以将其投入使用以使其看起来更好。

function GetValue(s1, s2, s3) {
   return s1 == s2 ? s3 : s1;
}

...

event.value = GetValue(event.value, "/", "/home");

IMO仅在您需要不止一次时才有用。