在Ruby中,你有一种称为条件赋值(public static IEnumerable<T> Prepend<T>(this IEnumerable<T> first, [MinLength(1)] params T[] second)
{
return second.Concat(first);
}
)的东西。如果尚未定义或设置变量值,则可以使用它为变量赋值。它类似于在Javascript中说这个:
||=
在Ruby中,要将if (typeof x == undefined) { x = 'value' }
分配给'value
(如果尚未分配),您可以使用x
它的工作原理示例:
x ||= 'value
或者:
x = 1
x ||= 2
return x # Will return 1
有没有办法在没有明显更长的x ||= 2
return x # Will return 2
声明的情况下在Javascript中执行此操作?
已解决: @ tede24建议如下
if
与Ruby不同的唯一方法是,如果var x = x || newValue
已定义为x
,即0
,则会将var x = 0
设置为x
答案 0 :(得分:3)
x = typeof x !== 'undefined' ? x : newValue;
更新:tede24有更好的答案,我只是想学习 - 如何摆脱参考错误,如果使用没有var或已经没有声明
答案 1 :(得分:2)
var x = x || newValue;
这意味着每当x被评估为false(undefined,null,0)时,它将分配第二个值。