我们正在分析一些代码,我得到它正在做的事情,但是有一行我不理解的代码

时间:2015-12-12 15:15:27

标签: javascript html html5

这是完整的代码:

<html>
<head>
<script type='text/javascript'>
var banners = ["Red.jpg","Amber.jpg","Green.jpg"];
var bnrCntr = 0;
var timer;
function banCycle()
{
  if(++bnrCntr == 3)
  bnrCntr = 0;

  document.images.banner.src = banners[bnrCntr];

  timer = setTimeout("banCycle()",1000);
}
function stopCycle()
{
  clearTimeout(timer);
}

</script>
</head>
<body>
<img src="Red.jpg" name="banner" width=110 height=200>

<form>
<input type="button" value="Cycle" name="Cycle" onclick="banCycle()">
<input type="button" value="Stop" name="Stop" onclick="stopCycle()">
</form>
</body>
</html>

这是我不理解的界限:

if(++bnrCntr == 3)

有人能告诉我这行是做什么的吗?

2 个答案:

答案 0 :(得分:2)

该行

if (++bnrCntr == 3)

做同样的事情
if ((bnrCntr += 1) == 3)

bnrCntr = bnrCntr + 1;
if (bnrCntr == 3)

bnrCntr的值递增,然后将结果分配回变量。然后将该值与3进行比较。 ++运算符称为前缀增量运算符。

答案 1 :(得分:0)

它首先将bnrCntr值增加1,如果该值等于3,则将其设置回0.您可以通过这种方式更改圆形横幅。你也可以这样写,所以它更容易理解:

if (++bnrCntr == banners.length)
    bnrCntr = 0;

因此,当索引超出数组的范围时,从头开始。