IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    setTimeout的执行效率问题,递归调用适合用setTimeout吗?

    wwmin发表于 2017-02-24 02:17:12
    love 0

    在递归调用时调用次数很大时,会导致堆栈溢出,window的堆栈空间为1M,调用函数存储参数,变量,返回值等,占用一定空间大量的话导致溢出 我的解决办法用setTimeout 但是…问题出现了,这样会导致计算会明显滞后 function isEven(num){ if(num===0)return console.log(true); if(num===1)return cosnole.log(false); return isEven(Math.abs(num)-2); } isEven(100); //加setTimeout后 function isEven2(num){ if(num===0)return console.log(true); if(num===1)return cosnole.log(false); return setTimeout(()=>isEven2(Math.abs(num)-2)); } isEvent2(100); //时间明显变慢了,猜测是因为用setTimeout导致的. 难道setTimeout的开销挺大的吗?求解释.



沪ICP备19023445号-2号
友情链接