我只是在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显示了此示例。
答案 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;如果你想在返回之前增加。