猿问

回调函数中判断条件使用后置递减会无限调用报错

function factorialize(num){

  return num<=1?1:num*factorialize(num--);

}

factorialize(5);

在上面这个函数中,前置使用递减是正确的,后置使用递减会报错:

RangeError: Maximum call stack size exceeded

我觉得后置使用的结果难道不应该是5*5*4*4*3*3*2*2*1么,为什么会无限调用导致溢出呢?

心有法竹
浏览 504回答 1
1回答

莫回无

后置递减是5x5x5x5x……,因为后置递减只有当表达式执行完毕后才会使值减去1
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答