位置: IT常识 - 正文

Maximum call stack size exceeded错误

编辑:rootadmin
Maximum call stack size exceeded错误

推荐整理分享Maximum call stack size exceeded错误,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在写项目的时候,有个部分是判断数组内是否存在这个日期,如果不存在的话则日期减一天或加一天再遍历一次数组内是否存在这个日期,重复此操作直到找到日期为止。

日期操作代码如下

//日期加一天或减一天 function moreDate(date1,i) { let date =new Date(date1) let year = date.getFullYear(); //补全位数 let month = (date.getMonth()+1).toString().padStart(2,'0') let day = (date.getDate()+i).toString().padStart(2,'0') return year+"-"+month+"-"+day }

但是会存在一个问题就是,由于这个操作是递归操作,每次找不到日期时不是跳出方法,而是再执行一次这个方法,当重复多次这个递归操作时就会导致达到调用堆栈限制,就会有Maximum call stack size exceeded错误,这个错误的意思是 "超出最大调用堆栈大小"。

Maximum call stack size exceeded错误

发生这种错误大多都是语句判断没有写对,或者忘了写判断语句导致递归操作无限重复下去。

这里建议是在谷歌浏览器中f12对js文件中报错的位置打断点,一步步看究竟是哪的条件语句出错了。

在这里日期到10月01日的时候,进行日期减一操作时,日变成00了

再下一步操作时,日期2022-10-00就是一个错误日期了,然后就导致递归操作的判断条件一直错误,导致无限递归出现Maximum call stack size exceeded错误

 所以我们在这对日期加减方法进行改良,先对日期进行操作再获取年月日的数据。

//日期加一天或减一天 function moreDate(date1,i) { let date =new Date(date1) date.setDate(date.getDate()+i) //先对日期进行加减操作再将日期set回去 let year = date.getFullYear(); //补全位数 let month = (date.getMonth() + 1).toString().padStart(2, '0') let day = (date.getDate()).toString().padStart(2, '0') return year+"-"+month+"-"+day }

再执行方法,10月01日减一天就变成了9月30日了,接着顺利执行递归操作。

本文链接地址:https://www.jiuchutong.com/zhishi/288113.html 转载请保留说明!

上一篇:塞巴斯蒂安电影节举办地:圣塞巴斯蒂安和库尔萨尔文化中心 (© Aljndr/iStock/Getty Images Plus)(塞巴斯蒂安电影 豆瓣)

下一篇:波特兰比尔灯塔处的晨光和海浪,英格兰多塞特郡 (© Lee Pengelly/Getty Images Plus)(波特兰在哪)

  • 段后间距8磅怎么设置(段后间距8磅是几行)

  • 蚂蚁借呗关闭(蚂蚁借呗关闭后征信上还有记录吗)

  • iphonese2ios14怎么录屏(iphone se2ios14)

  • 快手限流会限制多久啊(快手限流会怎么样)

  • 华为mate8nfc感应不了(mate8的nfc感应区在哪)

  • 微信号四年没登注销了吗(微信号四年没登录怎么办)

  • 抖音直播延迟十几秒怎么解决(抖音直播间延迟)

  • 手环长期没用充不进电(手环长时间没用充不上电怎么回事)

  • 充电器充了一夜不变灯(充电器充了一夜忘拔了)

  • oppoa57t是全网通手机吗

  • wps云文档别人可以看见吗(wps云文档只有自己可以看到吗)

  • 网络显示已连接不可上网(网络显示已连接需要登录认证)

  • 爱奇艺随刻版什么意思(爱奇艺随刻版有什么坏处吗)

  • b站直播间的ul是什么意思(哔哩哔哩直播间ul是什么)

  • 快手无法关注对方怎么回事(快手无法关注对方怎么办)

  • 苹果11为什么充电那么慢(苹果11为什么充电时摸边上麻麻的还抖)

  • 多多口令复制怎么解除(多多口令复制怎么发送)

  • word设置页面纸型16开(word设置页面纸张大小怎么设置)

  • 抖音怎么大量删除喜欢(抖音怎么大量删粉丝)

  • 英伟达控制面板设置(英伟达控制面板没有了)

  • 荣耀20上市日期(华为荣耀20上市时间价格)

  • 华为nova4e卡槽怎么打开(华为nova4e卡槽怎么安装)

  • 手机上出现hd怎么回事(手机上出现HD怎么弄)

  • 苹果手机系统升级教程(苹果手机系统升级后电量消耗快)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络