zoukankan      html  css  js  c++  java
  • js递归错误

    错误信息:Uncaught RangeError: Maximum call stack size exceeded


    问题代码:


    js代码:
    $(function(){
        
        selectToggle();
    });


    //自动加载菜单栏
    function selectToggle(){

        $(".m-menu__toggle").click();
        
    }    


    html代码:
    <a  href="#" class="m-menu__link m-menu__toggle" onclick="selectToggle()">
        <i class="m-menu__link-icon flaticon-share"></i>
        <span class="m-menu__link-text">
        {{module.moduleName}}
        </span>
        <i class="m-menu__ver-arrow la la-angle-right"></i>
    </a>

    错误原因:
    错误根据中文翻译,意思为:最大堆栈超过了最大值。

    反复循环调用导致最大堆栈超过最大值

    每个浏览器都不一样,例如常用的Chrome和FireFox

    • Firefox: 50994
    • Chrome: 10402

    解决办法:仔细审查代码,出现这种情况是因为函数不合理的循环调用导致的。

    另外科普下什么是递归(引用百度百科):

    程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

  • 相关阅读:
    XML
    DAO
    JDBC
    事物、视图、索引、备份和恢复
    用户
    高级查询2
    高级查询1
    数据库设计
    初识MySQL
    古代和现在的区别Hashtable和HashMap
  • 原文地址:https://www.cnblogs.com/youcong/p/9629705.html
Copyright © 2011-2022 走看看