JavaScript assignment operators对应arithmetic个:+=
,-=
,*=
,/=
,%=
。< / p>
JavaScript还有assignment operators对应bitwise个:<<=
,>>=
,>>>=
,&=
,^=
, |=
。
但它没有与assignment operators个logical相对应的this other question:||=
,&&=
。
然后,我不能做像
这样的事情aVeryLongVariableIdontWantToRepeat ||= 1;
在{{3}}中解释了为什么 JS Java没有这样的运算符。我想这对JS来说是一样的。
但我想知道是否有一种简单的方法来模仿它们,避免
aVeryLongVariableIdontWantToRepeat = aVeryLongVariableIdontWantToRepeat || 1;
答案 0 :(得分:2)
不,没有。我觉得应该有更多这个答案,但实际上,就是这样。最短版本的a = a || x
是...... a = a || x
。
答案 1 :(得分:1)
使用Coffeescript可以帮助您调查编写代码,Coffeescript具有|| =运算符。
答案 2 :(得分:0)
没有更短的方法:a = a || 1
是最简单的方法。
但是,为了避免不必要的值分配(稍微以牺牲可读性为代价),您也可以执行a || ( a = 1)
。
var a,b='x';
a || ( a = 1 );
b || ( b = 2 );
console.log( a + ', ' + b ); // Outputs "1, x"