【发布时间】:2018-06-21 10:56:24
【问题描述】:
我有一个关于 JS 增量(++)的问题。我知道这里有很多人问过 JS 中 ++ 和 +1 的区别,但没有人在递归调用语句中提到它。
问题: 我想在 exec 函数中递归调用函数 exec ,但流动脚本运行不正常。
var exec = function(index){
if(index<7){
exec(index++);
}
}
exec(0);
output: Uncaught RangeError: Maximum call stack size exceeded
所以我把我的脚本改成了下面的,效果很好。
var exec = function(index){
if(index<7){
exec(index+=1);
}
}
exec(0);
为什么它在这个例子中表现得不同?我的递归调用错了吗?
【问题讨论】:
-
这看起来像是一个关于 postincrement vs preincrement
++ivsi++的问题。如果您尝试++i,它应该可以工作。 -
在这种情况下,您可能应该只使用
i+1 -
@raina77ow 这个问题与优化无关。出于性能原因,这个重复的问题是关于在循环中使用哪个。
标签: javascript recursion increment