3

JavaScript有assignment operators對應arithmetic的:+=-=*=/=%=簡單的JavaScript代碼中賦值運算符的替代?

的JavaScript也有assignment operators對應bitwise的:<<=>>=>>>=&=^=|=

但它沒有assignment operators對應於logical個:||=,&&=

然後,我不能做這樣的事情

aVeryLongVariableIdontWantToRepeat ||= 1; 

this other question它解釋了爲什麼 JS Java沒有這樣的運營商。我想JS也是一樣。

但我想知道是否有一個簡單的方法來模仿他們,避免

aVeryLongVariableIdontWantToRepeat = aVeryLongVariableIdontWantToRepeat || 1; 
+2

簡單縮短變量名稱怎麼樣? –

+1

您鏈接到的其他問題不是關於JavaScript,而是關於Java。 –

+0

@ T.J.Crowder Oh,true – Oriol

回答

2

沒有,沒有。我覺得應該有更多的答案,但真的,就是這樣。 a = a || x的最短版本是... a = a || x

+0

還有'a = a? a:x',但稍微長一些。 – RobG

0

沒有簡短的方法:a = a || 1是最簡單的方法。

但是,爲了避免不必要的值分配(稍微以可讀性爲代價),您也可以執行a || (a = 1)

JSFIDDLE

var a,b='x'; 
a || (a = 1); 
b || (b = 2); 
console.log(a + ', ' + b); // Outputs "1, x" 
+1

當然,'a || (a = 1)'不短於'a = a || 1',我們可以指望發動機不要浪費時間去完成任務。 –

1

它可以幫助你去調查使用的CoffeeScript,它具有|| =操作員可編寫代碼。