我试图得到一个特定的收敛系列函数在JavaScript中摸索出超出错误:最大调用堆栈尺寸上汇聚一系列功能
function cnvg(sum,marker){
if((marker--||1000)>=0){
return cnvg(sum=(sum||0) + 1/Math.pow(-3,marker)/(2*marker+1), marker)
} else {
return sum;
}
}
我期待cnvg()
回来与Math.PI/Math.sqrt(12)
相当于(请参阅下面的图片),但我一直得到“最大调用堆栈大小超出”错误。我认为这可能是迭代的次数,所以我放弃1000
参考100
,然后10
,最后到1
,但我似乎仍然收到错误。
从理论上讲,一旦倒计数至0,并执行最后的循环,应立即停止,并返回sum
价值,但是这似乎并没有这样的情况?谁能告诉我我做错了什么?
在此先感谢。
'marker - '在问题的代码中不会减少'marker'? – naomik
这是密切的...但这是给我'3 + Math.PI/Math.sqrt(12)'...(3.9068996821171087) –
谢谢亚伦,图片上传... –