不是js的专家,但是这个if语句仍然让我感到痒痒,因为我怀疑它可以用更聪明的方式编写:
if(event.value == "/")
{
event.value = "/home";
}
建议?
答案 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仅在您需要不止一次时才有用。