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

有没有办法简化这个javascript if语句?,javascript,Javascript,虽然不是js方面的专家,但这个if语句仍然让我感到好笑,因为我怀疑它可以用一种更聪明的方式编写: if(event.value == "/") { event.value = "/home"; } 建议?您可以省略大括号: if(event.value == "/") event.value = "/home"; 或有条件的: event.value = event.value == "/" ? "/home" : event.value; …但我不确定这两种方法是否真的“更好”,

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

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

建议?

您可以省略大括号:

if(event.value == "/") event.value = "/home";
或有条件的:

event.value = event.value == "/" ? "/home" : event.value;
…但我不确定这两种方法是否真的“更好”,你应该远离

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

这是唯一可行的选择。在这种情况下,if()版本的可读性要高得多。

除了Nick的建议之外,你实际上可以用它做的事情不多,但这里有另一种方法:

if(event.value == "/"){
   event.value += "home";
}
event.value += (event.value == "/") ? "home" : "";
另一个,只是为了好玩:

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

我认为没有更好的办法了。如果您的编码风格指南允许,您可以省略大括号,但在语义上不会有任何区别。
较短的
event.value=(event.value==“/”)?“/home”:event.value
不是很好,因为当值与
'/'
不同时,它会进行无用的赋值

您可以将其设置为功能,使其看起来更好

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

...

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

在我看来,它只有在你不止一次需要它的时候才有用

像往常一样快:)所以我想这基本上就像PHP。是否有较短的方法在括号内引用event.value?比如:if(event.value==“/”)sameval=“/home”@soren.qvist-有,我喜欢上面的
with
语句,但出于几个原因它是邪恶的-并且不是在所有浏览器中都可用。你不喜欢的语句是什么?我的意思是,正如陈述所说,这已经很短了。我来这里是想知道一个逻辑问题。。。这是一个空白问题。很好,少输入1个字符。:)