我到处都看到过这种模式,但我不确定它的作用:
x.memb = x.memb ? x.memb + 1 : 1;
我认为这是一个柜台,但我不太确定。有人可以解释这是做什么和逻辑吗?
我到处都看到过这种模式,但我不确定它的作用:
x.memb = x.memb ? x.memb + 1 : 1;
我认为这是一个柜台,但我不太确定。有人可以解释这是做什么和逻辑吗?
如果x.memb
is 已经定义并且 is not 0
,那么它会增加它。在其他情况下,它将其值设置为1
。
x.memb
它基本上只是处理未定义情况的增量。
你也可以把它写成
x.memb = (x.memb||0) +1;
这可能更惯用,就像value||defaultValue
javascript 中的常见构造一样。
这是一个三元算子做一些计数。
本质上它正在这样做
if(x.memb)
x.memb = xmemb + 1; //increment it
else
xmemb = 1; //start it off
这只是简写。如果之前的东西?
是真的,它会返回之前的东西:
如果它是假的,它会返回之后的东西:
请注意,对于与计数无关的各种分叉,这是一种非常方便的机制。在这种情况下就是这样使用的。