2011-08-19 9 views

答えて

25

演算子は、真であると評価された場合は左の被演算子を返し、そうでない場合は右の被演算子を評価して返します。つまり、a || ba ? a : bに相当しますが、aは1回のみ評価されます。

+1

+1はJavaScriptで* null併合演算子とも呼ばれますhttp://stackoverflow.com/questions/476436/null-coalescing-operator-for-javascript/476445#476445 – naveen

+1

いいえ、それは* C#のヌル合体演算子( '?')の置換*。 :)私は ''ヌル合体演算子(nu​​ll coalescing operator)と呼ばれる '||'を聞いたことがありませんでした。それは常に「論理的な」または「演算子」でした。 – cdhowie

+0

が合意しました。 OPの以前の質問から、彼はASP.NETの背景にあり、この明確化の理由です。 – naveen

2

myObjがすでに定義されていない限り、myObjが初期化されます。

1

||短絡オペレータです。最初のオペランドがtrueと評価された場合、2番目のオペランドは評価されません。

したがってJS a || bmyObjが未定義またはnullの場合、それはそれならば、新しい空のオブジェクトを作成します||の右側の式

のでmyObjはどちらかであるこのmyobj評価C#a ?? b

0

のようなものですこのmyobjは、私はあなたは私が何を意味するか理解してほしい

nullの場合はnullまたは空のオブジェクトではありません

+1

また、 'myObj'の値がfalseまたは0またはNaNまたは空文字列の場合、変数に新しいオブジェクトが割り当てられます。 **ただ**未定義またはnullではありません。 JavaScriptには6つの偽のものがあります。 –

+0

@Ray Toal:追加ありがとう – Fender

1

またはOP(||)意志最初の空でない/偽のパラメータを返します。指定されたこのmyobjが偽またはnullである場合、それは空のオブジェクトに設定された場合に

({}括弧は、オブジェクトを作成するために使用される)

1

あなたがあるオブジェクトを取得するために、この構築物を使用することができnullundefinedなどではありません。後でmyObjをコードとして使用する場合に使用します。なんらかの理由でmyObjがこの行より前に定義されていない場合、再割り当てするとundefinedまたはnullのままになります。その場合は{}となります。

あなたはと考えることができます理解するために

// If the object is already defined 
if (myObj) 
    var myObj = myObj; 
// It was undefined or null, so assign an empty object to it. 
else 
    var myObj = {}; 
2

||最初にかなり基本的な例を見てみましょう。次のように論理OR演算子が定義された変数のデフォルト値を提供するために使用されてもよい。この場合

var bar = false, 
foobar = 5, 
foo = bar || foobar; // foo = 5 

バーがfalsyとみなされる場合、FOOは、foobarに値が割り当てられます。偽の値は、0、偽、未定義、ヌル、NaNまたは空(例えば、「」)とみなすことができる。

関連する問題