2012-05-22 145 views
6

Javascript代碼:使用||運營商通知

var a = (b) ? b : 40; 

這是工作,只是NetBeans的說: 「使用||運算符(列[?其中是])」。我沒有找到任何解釋。

這是什麼?

謝謝!

+2

請參閱http://stackoverflow.com/questions/2802055/what-does-this-construct-xxy-mean –

回答

6

如果你只是測試爲b的truthyness那麼你可以這樣做:

var a = b || 40; 

...這是短(可以說)更明顯。在JavaScript中,||是一個短路操作員。如果它是真的,則返回左側,否則返回右側。 (即,除非輸入是布爾值,否則它不返回布爾值)。

如果你想看看b實際上定義,那麼你關閉更好:

var a = (typeof b !== "undefined") ? b : 40; 
+0

什麼類型的程序語言工作呢? –

+0

@GáborVarga - 我完全不知道你在問什麼。 – Quentin

3

管子是or聲明。 var a = b || 40表示如果b是非虛假值,則讓a = b,否則爲40.