2011-02-01 9 views
4

私はプログラミングのヒントのためにJQueryのソースをブラウズしていましたが、何が起こっているのかわからないコードが見つかりました。JavaScriptのこのビットでは、演算子は何をしますか?

type = type || callback; 

誰でもORの説明ができますか?変数の割り当てでやっているのですか?

私はいくつかの実験を行いました。値を設定したり設定したりしていませんでしたが、私はそれほど賢明ではありません。

答えて

9

typeが「falsey」値である場合、callbackの値は、そうでなければtypeが割り当てられる、type変数に割り当てられます。

"falsey" 値は、次のとおり

  • false
  • null
  • undefined
  • 0
  • ""
  • (空文字列)
  • NaN

したがって、基本的には「typeはfalsey値のいずれかである場合callbacktypeを置き換える」言います。

var type = undefined; 

type = type || "default value"; 

type変数は、最終的に"default value"が割り当てられてしまいます。

が、この考えてみましょう。

、それはこのようなものだった場合:

var type = "some value"; 

type = type || "default value"; 

そして、それはその"some value"を続けるだろうが。

+0

ありがとう@Gareth。 :o) – user113716

+0

あなたはすごく素敵です!それは大きな歓声です。 – Craig552uk

2

変数 "type"を現在の値に設定します。現在の値が "truthy"でない場合は "callback"の値に設定します。 "type"がundefinedまたはnull、または0、または空の文字列、またはブール値falseの場合、 "コールバック"の値に設定されます。

編集おっとまたはNaN

0

は、だから私は、複数の変数が一緒に「チェーン化」することができ、第1の「非falsey」の値が割り当てられている参照してください。

var val, a, b, c; 
a = undefined; 
b = null; 
c = "C"; 
val = a || b || c; 
alert(val); 

これはかなり便利です。

+0

'a || (b || c) 'は私に間違っていると感じます。デフォルト値が偽であるかどうかを確認する必要はありません。 – Raynos

関連する問題