Как сократить выражение синтаксиса jquery if-else?

Я использую много из них:

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

Это уже "сокращенный" синтаксис, но мне интересно, можно ли еще больше уменьшить приведенную выше строку. Должен быть лучший способ, чем проверять $menu.jqmData('menu-text'), а затем снова написать все это. Не существует?

Спасибо за помощь!

Ответ 1

Более короткий путь - использовать двойную трубу. Он в основном использует второе значение, если первый falsy.

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

Вы также можете использовать его несколько раз в одной строке. Скажем, у вас была переменная uberMenuTxt, которая имеет приоритет над двумя другими, и вы можете сделать это так.

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

Он в основном продолжает работать каждый раз, когда текущее значение falsy и останавливается при первом отсутствии.