Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;
||この場合はどうしますか?
_4をAttacklab.wmd_env.buttonsの配列に追加しますか?||オペレータは?
Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;
||この場合はどうしますか?
_4をAttacklab.wmd_env.buttonsの配列に追加しますか?||オペレータは?
JavaScriptの演算子は、その値がfalse
に評価されない場合、左の値を返します。そうでない場合は、右側の値を返します。 Mozilla's Core JavaScript 1.5 Referenceから
:
expr1 || expr2
返しexpr1
それをtrueに変換できる場合。それ以外の場合はexpr2
を返します。したがって、ブール値で使用すると、||
はどちらかのオペランドが真であれば真を返します。両方がfalseの場合はfalseを返します。
Attacklab.wmd_env.buttons
が値を持っていないのであれば、この場合には、それは_4
に値を設定します。
MDCがむしろあいまいな "返り値expr1 **を**に変換することができれば本当に"というのは奇妙です。それは実際には「変換できる」ということではなく、値の式が返すものです。 – kangax
Attacklab.wmd_env.buttons
がnull
またはundefined
の場合、デフォルト値は_4
に設定されます。
それはデフォルト値を提供するためのうれしいです
if(!Attacklab.wmd_env.buttons)
Attacklab.wmd_env.buttons = _4;
を書くの空想方法です。 null
とundefined
だけで条件付きが発生するだけでなく、0
,と''
、つまりブール値のコンテキストではfalse
とみなされるすべてのものがトリガされることに注意してください。
||演算子は、式の左側に指定された値が(ブール値のコンテキストで)falseかどうかをチェックします。そうであれば、式の右辺で示される代替値を返します。それ以外の場合は元の値を返します。
それがnullであれば、たとえば次のコードは、デフォルト値に「foo」を設定します:
Foo = Foo || "Default Value"
は、これは、時には合体演算子と呼ばれています。 RubyやPerlなどの他の言語でもサポートされています。 C#には?同じことをする演算子。
だから、この答えは彼が何を呼んでいるのか、他の言語学者がそれを使用しているのか、そしてC#のさまざまな構文さえ知っています...そして彼はそれが何をしているのかまだ分かりません。 – Beska
良い点、私はおそらくちょうどコメントを残している必要があります。とにかく、私の答えは更新されました。 –
正しい名前を+1してください!他の人の質問/答えはそれを与えたくないようです... Xqueryでそれを見つけるのを手助けしました(それは好奇心を持っている人のために$ foo:=($ foo、 "デフォルト値")[1]です。 –
タイトルを修正してください。 – rkb
うわー、タイトルを取得するのに7回の試行が必要でした... – Pool