欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js報(bào)錯(cuò):Maximum?call?stack?size?exceeded的解決方法

 更新時(shí)間:2023年02月10日 11:17:59   作者:ttttter  
這篇文章主要給大家介紹了關(guān)于js報(bào)錯(cuò)Maximum?call?stack?size?exceeded的解決方法,文中通過實(shí)例代碼將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下

最近在寫項(xiàng)目的時(shí)候,有個(gè)部分是判斷數(shù)組內(nèi)是否存在這個(gè)日期,如果不存在的話則日期減一天或加一天再遍歷一次數(shù)組內(nèi)是否存在這個(gè)日期,重復(fù)此操作直到找到日期為止。

日期操作代碼如下

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

但是會(huì)存在一個(gè)問題就是,由于這個(gè)操作是遞歸操作,每次找不到日期時(shí)不是跳出方法,而是再執(zhí)行一次這個(gè)方法,當(dāng)重復(fù)多次這個(gè)遞歸操作時(shí)就會(huì)導(dǎo)致達(dá)到調(diào)用堆棧限制,就會(huì)有Maximum call stack size exceeded錯(cuò)誤,這個(gè)錯(cuò)誤的意思是 "超出最大調(diào)用堆棧大小"。

發(fā)生這種錯(cuò)誤大多都是語句判斷沒有寫對(duì),或者忘了寫判斷語句導(dǎo)致遞歸操作無限重復(fù)下去。

這里建議是在谷歌瀏覽器中f12對(duì)js文件中報(bào)錯(cuò)的位置打斷點(diǎn),一步步看究竟是哪的條件語句出錯(cuò)了。

在這里日期到10月01日的時(shí)候,進(jìn)行日期減一操作時(shí),日變成00了

再下一步操作時(shí),日期2022-10-00就是一個(gè)錯(cuò)誤日期了,然后就導(dǎo)致遞歸操作的判斷條件一直錯(cuò)誤,導(dǎo)致無限遞歸出現(xiàn)Maximum call stack size exceeded錯(cuò)誤

 所以我們?cè)谶@對(duì)日期加減方法進(jìn)行改良,先對(duì)日期進(jìn)行操作再獲取年月日的數(shù)據(jù)。

       //日期加一天或減一天
        function moreDate(date1,i) {
            let date =new Date(date1)
             date.setDate(date.getDate()+i) //先對(duì)日期進(jìn)行加減操作再將日期set回去
            let year = date.getFullYear();
            //補(bǔ)全位數(shù)
            let month = (date.getMonth() + 1).toString().padStart(2, '0')
            let day = (date.getDate()).toString().padStart(2, '0')
            return year+"-"+month+"-"+day
        }

再執(zhí)行方法,10月01日減一天就變成了9月30日了,接著順利執(zhí)行遞歸操作。

總結(jié)

到此這篇關(guān)于js報(bào)錯(cuò):Maximum call stack size exceeded的解決方法的文章就介紹到這了,更多相關(guān)Maximum call stack size exceeded錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • webpack搭建腳手架打包TypeScript代碼

    webpack搭建腳手架打包TypeScript代碼

    本文主要介紹了webpack搭建腳手架打包TypeScript代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 再談JavaScript線程

    再談JavaScript線程

    繼上篇討論了一些關(guān)于JavaScript線程的知識(shí),我們不妨回過頭再看看,是不是JavaScript就不能多線程呢?看下面一段很簡單的代碼(演示用,沒考慮兼容問題):
    2015-07-07
  • JS文字球狀放大效果代碼分享

    JS文字球狀放大效果代碼分享

    這篇文章主要展示了JS文字球狀放大效果,和放大鏡放大文字一樣,很神奇的代碼,感興趣的小伙伴們可以參考一下
    2015-08-08
  • Javascript的setTimeout()使用閉包特性時(shí)需要注意的問題

    Javascript的setTimeout()使用閉包特性時(shí)需要注意的問題

    這篇文章主要介紹了Javascript的setTimeout(0)使用閉包特性時(shí)需要注意的問題,需要的朋友可以參考下
    2014-09-09
  • Eclipse去除js(JavaScript)驗(yàn)證錯(cuò)誤

    Eclipse去除js(JavaScript)驗(yàn)證錯(cuò)誤

    這篇文章主要是對(duì)Eclipse去除js(JavaScript)驗(yàn)證錯(cuò)誤進(jìn)行了介紹。在Eclipse中,js文件常常會(huì)報(bào)錯(cuò)??梢酝ㄟ^如下幾個(gè)步驟解決
    2014-02-02
  • JS模擬bootstrap下拉菜單效果實(shí)例

    JS模擬bootstrap下拉菜單效果實(shí)例

    這篇文章主要介紹了JS模擬bootstrap下拉菜單效果,結(jié)合完整實(shí)例形式分析了javascript動(dòng)態(tài)操作頁面元素的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 微信小程序webSocket的使用方法

    微信小程序webSocket的使用方法

    這篇文章主要介紹了微信小程序webSocket的使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 微信小程序日期選擇器實(shí)例代碼

    微信小程序日期選擇器實(shí)例代碼

    本文通過一段實(shí)例代碼給大家介紹了微信小程序日期選擇器的實(shí)現(xiàn)思路,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-07-07
  • javascript每日必學(xué)之基礎(chǔ)入門

    javascript每日必學(xué)之基礎(chǔ)入門

    javascript每日必學(xué)之基礎(chǔ)入門,從了解javascript開始,一步一步地進(jìn)階到大神境界,想要成為javascript大神的朋友不要錯(cuò)過,閱讀一下
    2016-02-02
  • JavaScript知識(shí)點(diǎn)總結(jié)(十一)之js中的Object類詳解

    JavaScript知識(shí)點(diǎn)總結(jié)(十一)之js中的Object類詳解

    這篇文章主要介紹了JavaScript知識(shí)點(diǎn)總結(jié)(十一)之js中的Object類詳解的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評(píng)論