2012-04-13 49 views
11

我使用了很多這些:如何縮短jQuery的語法if-else語句?

$text = $menu.jqmData('menu-text') ? 
      $menu.jqmData('menu-text') : self.options.menuTxt; 

這已經是「簡寫」語法,但我想知道,是否有可能進一步降低上述行。必須有更好的方法,比檢查$ menu.jqmData('menu-text'),然後再寫一遍。不在嗎?

感謝您的幫助!

回答

21

更簡單的方法是使用雙管。它基本上使用第二個值,如果第一個是falsy

$text = $menu.jqmData('menu-text') || self.options.menuTxt; 

您也可以在同一行中多次使用它。假設你有一個變量uberMenuTxt,它優先於另外兩個,你可以這樣做。

$text = uberMenuTxt || $menu.jqmData('menu-text') || self.options.menuTxt; 

它基本保持在每持續的電流值是falsy,並將在:第一,停止時間是沒有的。

+0

太棒了!噸碼保存:-) – frequent 2012-04-13 09:48:51

+0

問題:哪一個先於另一個,如果兩者都返回一個值。第一個,就像在正常的if語句中,是正確的? – frequent 2012-04-13 09:51:52

+4

@頻繁是的,這是怎麼的|| (OR)的作品。如果第一個語句返回true,則不再評估以下內容。 – GNi33 2012-04-13 09:56:32