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

js報錯:Maximum?call?stack?size?exceeded的解決方法

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

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

日期操作代碼如下

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

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

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

這里建議是在谷歌瀏覽器中f12對js文件中報錯的位置打斷點,一步步看究竟是哪的條件語句出錯了。

在這里日期到10月01日的時候,進行日期減一操作時,日變成00了

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

 所以我們在這對日期加減方法進行改良,先對日期進行操作再獲取年月日的數(shù)據(jù)。

       //日期加一天或減一天
        function moreDate(date1,i) {
            let date =new Date(date1)
             date.setDate(date.getDate()+i) //先對日期進行加減操作再將日期set回去
            let year = date.getFullYear();
            //補全位數(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報錯:Maximum call stack size exceeded的解決方法的文章就介紹到這了,更多相關(guān)Maximum call stack size exceeded錯誤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

    webpack搭建腳手架打包TypeScript代碼

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

    再談JavaScript線程

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

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

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

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

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

    Eclipse去除js(JavaScript)驗證錯誤

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

    JS模擬bootstrap下拉菜單效果實例

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

    微信小程序webSocket的使用方法

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

    微信小程序日期選擇器實例代碼

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

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

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

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

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

最新評論