簡體   English   中英

有沒有一種方法可以簡化此JavaScript if語句?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM