什么是||操作员呢?

时间:2009-05-06 16:55:30

标签: javascript operators

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

什么是||在这种情况下呢?
将_4添加到Attacklab.wmd_env.buttons?

的数组中

4 个答案:

答案 0 :(得分:19)

如果该值未评估为||,则JavaScript中的false运算符会返回左侧的值,否则返回右侧的值。

来自Mozilla's Core JavaScript 1.5 Reference

  

expr1 || expr2
  如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,如果任一操作数为真,则||返回true;如果两者都为假,则返回false。

因此,在这种情况下,如果Attacklab.wmd_env.buttons没有值,则会将值设置为_4

答案 1 :(得分:12)

这是一种奇特的写作方式

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

提供默认值非常好。请注意,nullundefined不仅会触发条件,还会触发0false'',即所有被视为{{1}在布尔上下文中。

答案 2 :(得分:8)

如果Attacklab.wmd_env.buttonsnullundefined,则会将其设置为默认值_4

答案 3 :(得分:4)

|| operator检查表达式左侧提供的值是否为false(在布尔上下文中)。如果是,则返回表达式右侧指示的备用值。否则返回原始值。

因此,例如,以下代码将'Foo'设置为默认值,如果它为null:

Foo = Foo || "Default Value" 

这有时称为Coalescing运算符。 它支持其他语言,如Ruby和Perl。 C#有??操作员做同样的事情。