私はプログラミングのヒントのためにJQueryのソースをブラウズしていましたが、何が起こっているのかわからないコードが見つかりました。JavaScriptのこのビットでは、演算子は何をしますか?
type = type || callback;
誰でもORの説明ができますか?変数の割り当てでやっているのですか?
私はいくつかの実験を行いました。値を設定したり設定したりしていませんでしたが、私はそれほど賢明ではありません。
私はプログラミングのヒントのためにJQueryのソースをブラウズしていましたが、何が起こっているのかわからないコードが見つかりました。JavaScriptのこのビットでは、演算子は何をしますか?
type = type || callback;
誰でもORの説明ができますか?変数の割り当てでやっているのですか?
私はいくつかの実験を行いました。値を設定したり設定したりしていませんでしたが、私はそれほど賢明ではありません。
type
が「falsey」値である場合、callback
の値は、そうでなければtype
が割り当てられる、type
変数に割り当てられます。
"falsey" 値は、次のとおり
false
null
undefined
0
""
NaN
したがって、基本的には「type
はfalsey値のいずれかである場合callback
でtype
を置き換える」言います。
var type = undefined;
type = type || "default value";
type
変数は、最終的に"default value"
が割り当てられてしまいます。
が、この考えてみましょう。
、それはこのようなものだった場合:
var type = "some value";
type = type || "default value";
そして、それはその"some value"
を続けるだろうが。
変数 "type"を現在の値に設定します。現在の値が "truthy"でない場合は "callback"の値に設定します。 "type"がundefined
またはnull
、または0、または空の文字列、またはブール値false
の場合、 "コールバック"の値に設定されます。
編集おっとまたはNaN
は、だから私は、複数の変数が一緒に「チェーン化」することができ、第1の「非falsey」の値が割り当てられている参照してください。
var val, a, b, c;
a = undefined;
b = null;
c = "C";
val = a || b || c;
alert(val);
これはかなり便利です。
'a || (b || c) 'は私に間違っていると感じます。デフォルト値が偽であるかどうかを確認する必要はありません。 – Raynos
ありがとう@Gareth。 :o) – user113716
あなたはすごく素敵です!それは大きな歓声です。 – Craig552uk