gpt4 book ai didi

javascript - 递归计数并使用 +1 vs++

转载 作者:行者123 更新时间:2023-11-30 09:53:52 25 4
gpt4 key购买 nike

我有一个关于递归的基本问题,以及 +1 和++ 的差异如何影响结果。

为什么这段代码:

var arrayLoop = function(idx){
if(idx < 5){
console.log(idx);
return arrayLoop(idx+1);
}
};
arrayLoop(0);

会工作得很好,但是这个:

var arrayLoop = function(idx){
if(idx < 5){
console.log(idx);
return arrayLoop(idx++);
}
};
arrayLoop(0);

导致无限循环?

最佳答案

在第二个示例中,您使用了 ++ 运算符作为后增量,因此您使用的是 idx++ 而不是 ++idx

发生的事情是,对于后增量,表达式是用增量之前的值计算的,然后它是增量的。你可以把它看成某种(请注意,这在语义上并不相同,只是为了给你一个想法):

return arrayLoop(idx);
idx = idx + 1;

因此您可以看到该方法总是以 0 作为参数调用。

预递增 ++idx 运算符会反转操作:

idx = idx + 1;
return arrayLoop(idx);

关于javascript - 递归计数并使用 +1 vs++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34985391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com