[英]Is there a way to simplify this javascript if-statement?
不是js方面的專家,但是此if語句仍然讓我很煩,因為我懷疑它可以用更聰明的方式編寫:
if(event.value == "/")
{
event.value = "/home";
}
有什么建議嗎?
您可以省略花括號:
if(event.value == "/") event.value = "/home";
或有條件的:
event.value = event.value == "/" ? "/home" : event.value;
...但是我不確定這兩個選項是否真的“更好”,並且with
語句您應該遠離。
if(event.value == "/"){
event.value += "home";
}
event.value = (event.value == "/") ? "/home" : event.value;
將是唯一的其他實際選擇。 在這種情況下,if()版本更具可讀性。
除了尼克的建議之外,您真正可以做的事情不多,但是這是加入混合的另一種方法:
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");
IMO僅在您多次需要時才有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.