7
Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;

||は何ですか この場合はどうしますか?
Attacklab.wmd_env.buttonsである配列に_4を追加しますか?

4

4 に答える 4

21

JavaScriptの||演算子は、その値がに評価されない場合は左側の値をfalse返し、そうでない場合は右側の値を返します。

MozillaのコアJavaScript1.5リファレンスから:

expr1 || expr2
expr1trueに変換できるかどうかを 返します。それ以外の場合は、を返しますexpr2。したがって、ブール値とともに使用すると、||いずれかのオペランドがtrueの場合にtrueを返します。両方がfalseの場合、falseを返します。

したがって、この場合、Attacklab.wmd_env.buttons値がない場合は、値がに設定され_4ます。

于 2009-05-06T16:57:09.797 に答える
12

それは素晴らしい書き方です

if(!Attacklab.wmd_env.buttons)
    Attacklab.wmd_env.buttons = _4;

デフォルト値を提供するのに便利です。null条件付きだけでなく、、、および、つまりブール値のコンテキストで考慮されるすべてのものをundefinedトリガーすることを覚えておいてください。0false''false

于 2009-05-06T17:01:37.010 に答える
8

Attacklab.wmd_env.buttonsnullまたはの場合undefined、デフォルト値に設定されます_4

于 2009-05-06T16:57:02.717 に答える
4

|| 演算子は、式の左側に指定された値がfalseであるかどうかをチェックします(ブール値のコンテキストで)。その場合、式の右辺で示される代替値を返します。それ以外の場合は、元の値を返します。

したがって、たとえば、次のコードは、nullの場合、「Foo」をデフォルト値に設定します。

Foo = Foo || 「デフォルト値」 

これは、合体演算子と呼ばれることもあります。RubyやPerlなどの他の言語でサポートされています。C#には?? 同じことをする演算子。

于 2009-05-06T17:04:03.417 に答える