2011-08-17 14 views
2

ルビーでは、a || bと書くことができます。関数は存在する場合はaを選択し、存在しない場合はbを選択します。Rubyのa ||に相当するJQuery b

私のようなひどく面倒な何か書き込むことなく、jQueryのでこれをどのように操作を行うことができます。また

if (a){ 
    a 
} else { 
    b 
} 

を、jQueryのは、Rubyのa ||= bに相当するものがありますか?

+2

'a = a || b;はうまくいくはずです。問題がありますか? – ghayes

+1

jQueryに演算子がありません。JavaScript OTOHはそうです。注意のために+1 –

答えて

8

jQueryは単なるJavaScriptライブラリであり、JavaScriptでも同じです。

var c = a || b; 

最初のオブジェクトが返されますこと、truthyであればこれは

です。それ以外の場合は、2番目のオブジェクトが返されます。 JavaScriptで

4
var myVariable = myVariable || "Default"; 
6

、(両方とも falsy ある場合、または最後の値)a || bだけルビーのように、第一truthy値を評価します。 (jQueryのJavaScriptのためのちょうどライブラリで、覚えておいてください。)

しかし、JavaScriptがRubyはそう取られる必要があるかもしれない気にしないよりも、falsy非truthy値)より多くのを持っています。 Truthy and Falsy: When All is Not Equal in JavaScriptを参照してください。

たとえば、JavaScriptの場合、"" || "foo""foo"になりますが、Rubyでは""と評価されます。

ハッピーコーディング。


そして、はい、JavaScriptはすべて二項演算子x = x Q yためx Q= yサポートしています。見つけやすい簡単な方法は試してみることです:)

+0

+1。非常に真実。 – naveen