【发布时间】:2016-02-01 10:50:53
【问题描述】:
在 Ruby 中,您有一个称为条件赋值 (||=) 的东西。如果变量尚未定义或设置,您可以使用它为变量分配值。这类似于在 Javascript 中这样说:
if (typeof x == undefined) { x = 'value' }
在 Ruby 中,要将 'value 分配给 x(如果尚未分配),您可以使用 x ||= 'value
工作原理示例:
x = 1
x ||= 2
return x // Will return 1
或者:
x ||= 2
return x // Will return 2
有没有什么方法可以在没有明显更长的if 语句的情况下在 Javascript 中做到这一点?
已解决:@tede24 提出以下建议
var x = x || newValue
它与 Ruby 的唯一不同之处在于,如果 x 已定义为 0,即 var x = 0,则会将 x 设置为 newValue
【问题讨论】:
-
你不应该使用名为
var的变量。 -
对不起,我没有,就在我快速输入示例时,我不小心使用了
var而不是x -
请不要为问题添加解决方案。如果现有答案不满足您,请编写您自己的答案。如果您对其他人的答案有 cmets,请将其添加为对该答案的评论。
-
这是一个关于这个主题的非常老的帖子:esdiscuss.org/topic/logical-assignment-operators。稍新:esdiscuss.org/topic/is-much-needed.
-
顺便说一句,
typeof x == undefined不正确。应该是typeof x == "undefined",用引号括起来undefined。
标签: javascript conditional-statements