JavaScript栈大小-javascript stack size limit

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

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,434评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,801评论 0 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,391评论 0 2
  • “立萍,晚上来这吃饭吧,我煮的棒子米粥。” 爸爸给我打电话叫我去家里吃饭。我告诉爸爸今天晚上去北京学习,坐火车走...
    大道至扑阅读 482评论 2 3