美文网首页javascript
JavaScript栈大小-javascript stack s

JavaScript栈大小-javascript stack s

作者: nico1988 | 来源:发表于2019-12-14 10:19 被阅读0次

    JavaScript引擎采用调用栈(call stack)来管理执行上下文(执行环境), 然而调用栈是有大小限制的,当入栈的执行环境超过一定的数量以后,就会引发栈溢出,同时这个引发栈溢出的栈大小由于浏览器的厂商、版本各不相同。

    JavaScript的栈结构

    执行如下函数,JavaScript引擎会为我们创建如下函数执行栈

    var a = 2
    function add(b,c){
      return b+c
    }
    function addAll(b,c){
      var d = 10
      result = add(b,c)
      return a+result+d
    }
    addAll(3,6)
    
    image.png

    查看栈溢出大小的代码

    chrome浏览器 ctrl + shift + i ,打开控制台输入:

    let i = 0;
    function a(){
      i++;
      a();
    }
    a()
    

    查看i的值


    image.png

    不同浏览器、版本的栈的限制

    Internet Explorer
    IE6: 1130
    IE7: 2553
    IE8: 1475
    IE9: 20678
    IE10: 20677
    Mozilla Firefox
    3.6: 3000
    4.0: 9015
    5.0: 9015
    6.0: 9015
    7.0: 65533
    8b3: 63485
    17: 50762
    18: 52596
    19: 52458
    42: 281810
    Google Chrome
    14: 26177
    15: 26168
    16: 26166
    25: 25090
    47: 20878
    51: 41753
    Safari
    4: 52426
    5: 65534
    9: 63444
    Opera
    10.10: 9999
    10.62: 32631
    11: 32631
    12: 32631
    

    参考

    相关文章

      网友评论

        本文标题:JavaScript栈大小-javascript stack s

        本文链接:https://www.haomeiwen.com/subject/lcrcnctx.html