【发布时间】:2010-10-24 06:09:20
【问题描述】:
Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;
|| 是什么意思这种情况下怎么办?
将 _4 添加到 Attacklab.wmd_env.buttons 数组中?
【问题讨论】:
-
哇,我花了 7 次尝试才得到正确的标题...
标签: javascript operators
Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||_4;
|| 是什么意思这种情况下怎么办?
将 _4 添加到 Attacklab.wmd_env.buttons 数组中?
【问题讨论】:
标签: javascript operators
||运算符检查表达式左侧提供的值是否为假(在布尔上下文中)。如果是这样,则返回表达式右侧指示的替代值。否则返回原始值。
例如,如果 'Foo' 为 null,则以下代码会将其设置为默认值:
富 = 富 || “默认值”这有时称为合并运算符。 Ruby 和 Perl 等其他语言也支持它。 C# 有 ??做同样事情的运算符。
【讨论】:
JavaScript 中的|| 运算符返回左边的值,如果该值不等于false,否则返回右边的值。
来自Mozilla's Core JavaScript 1.5 Reference:
expr1 || expr2
如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,||在任一操作数为真时返回真;如果两者都是 false,则返回 false。
因此,在这种情况下,如果Attacklab.wmd_env.buttons 没有值,它会将值设置为_4。
【讨论】:
这是一种奇特的写作方式
if(!Attacklab.wmd_env.buttons)
Attacklab.wmd_env.buttons = _4;
提供默认值很好。请记住,不仅null 和undefined 将触发条件,而且0、false 和'',即在布尔上下文中被视为false 的所有内容。
【讨论】:
如果Attacklab.wmd_env.buttons 是null 或undefined,它将被设置为默认值_4。
【讨论】: