2013-02-06 28 views
-1

我已經看到了這個模式所有的地方,但我不知道它做什麼:這是一個JavaScript計數器嗎?

x.memb = x.memb ? x.memb + 1 : 1; 

我認爲這是一個計數器,但我不那麼肯定。有人可以解釋這是什麼和邏輯?

+0

「三元運算符」谷歌它。 – PeeHaa

+0

如果'x.memb'返回'true',則增加它,否則將其設置爲1. – Jashwant

+0

它只是一個語法糖http://en.wikipedia.org/wiki/Syntactic_sugar – bernabas

回答

3

如果x.memb已被定義,而不是0,那麼它會增加它。在其他情況下,它將其值設爲1

這基本上只是一個增量照顧的情況下x.memb未定義。

你還可以這樣寫它作爲

x.memb = (x.memb||0) +1; 

value||defaultValue是在JavaScript中常用的結構,這可能是更地道。

+0

謝謝!說得通。 –

1

這是一個三元操作者做一些計數。

它在本質上在做這個

if(x.memb) 
    x.memb = xmemb + 1; //increment it 
else 
    xmemb = 1; //start it off 

這只是簡寫。如果?前的事是真的,它將返回無論是:之前,如果它是假的,它將返回無論是:

注意,這是對各種有無關叉的一個非常方便的機制後,數數。這只是在這種情況下使用的方式。