为什么调试器显示一个值,当返回数字++时没有返回正确的数字javascript

时间:2014-07-16 04:10:54

标签: javascript

我只是在javascript上测试它,并注意到每次我返回一个带有++的变量时,它都没有返回新的数字。我知道++之后添加了++,但是在返回之前不应该添加。当我调试它时,显示的是正确的数字,但是当它返回时它并没有。返回后,解释器是否执行此行?如果这就是为什么调试器显示正确的值?

此函数返回正确的数字而不使用++。它返回10。

function test(){
  var counter=0;
  for(i=0;i<10;i++){
    counter++;
  }
  return counter;
}

这个其他功能,我认为它应该返回11,但它不会返回10。

function test1(){
  var counter=0;
  for(i=0;i<10;i++){
    counter++;
  }
  return counter++;
}

Demo显示了此示例。

3 个答案:

答案 0 :(得分:1)

counter++post increment运营商。它首先使用当前值执行操作,然后递增值。

您应该++counter pre increpent运营商。

答案 1 :(得分:0)

function test1(){
  var counter=0;
  for(i=0;i<10;i++){
    counter++;
  }
  return ++counter;
}

通过移动前面的++,它会在变量返回之前影响变量。

答案 2 :(得分:0)

++在执行行后增加数字。因此,如果你之后检查你的计数器变量,它将是11,但是当你返回它时,它是10.使用&#34; ++ counter&#34;如果你想在返回之前增加。