-1

我到处都看到过这种模式,但我不确定它的作用:

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

我认为这是一个柜台,但我不太确定。有人可以解释这是做什么和逻辑吗?

4

2 回答 2

3

如果x.membis 已经定义并且 is not 0,那么它会增加它。在其他情况下,它将其值设置为1

x.memb它基本上只是处理未定义情况的增量。

你也可以把它写成

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

这可能更惯用,就像value||defaultValuejavascript 中的常见构造一样。

于 2013-02-06T20:04:22.420 回答
1

这是一个三元算子做一些计数。

本质上它正在这样做

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

这只是简写。如果之前的东西?是真的,它会返回之前的东西:如果它是假的,它会返回之后的东西:

请注意,对于与计数无关的各种分叉,这是一种非常方便的机制。在这种情况下就是这样使用的。

于 2013-02-06T20:04:51.623 回答