亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

JS的函數調用棧stack size的計算方法

2024-05-06 16:45:01
字體:
來源:轉載
供稿:網友

如果你寫了一個一直調用自身的死循環,那么恭喜你,很快就可以看到報錯:Uncaught RangeError: Maximum call stack size exceeded。那么這個call stack size有多少呢?

1. 計算方法

如下的方法可以為你計算出你使用的JavaScript引擎可以支持多深的調用(由Ben Alman的一段代碼獲得靈感):

function computeMaxCallStackSize() {    try {      return 1 + computeMaxCallStackSize();    } catch (e) {      // Call stack overflow      return 1;    }  }

運行得到如下三個結果:

  • Node.js: 11034
  • Firefox: 50994
  • Chrome: 10402

這些數字代表了什么呢?Mr.Aleph告訴我在V8,可調用的層數基于兩個方面:1. 棧的大??;2. 每一棧幀的大小(用于記錄函數參數和局部變量)。你可以在computeMaxCallStackSize聲明局部變量來測試,你會發現數字變小。

2. ECMAScript 6中尾遞歸優化

ECMAScript 6支持尾遞歸優化:如果一個函數的最后一個操作是函數調用,那么將會用“跳轉”而不是“子調用”。也就是說如果你將computeMaxCallStackSize重寫成如下形式,在ES6的嚴格模式下,就會一直運行了。

function computeMaxCallStackSize(size) {    size = size || 1;    return computeMaxCallStackSize(size + 1);  }

3. 亮點評論

Andrei: “ECMAScript 6”版本的代碼根本跑不通。雖然size會被更改,但是最終并沒有值返回。

回復Andrei: 有趣!你不能用這段代碼去計算stack size。在ES6下,這段代碼會一直運行,因此不會返回數據。在其它情況下,會返回RangeError。為了使其工作,我把代碼重寫了一下:

var computeMaxCallStackSize = (function() { return function() {  var size = 0;  function cs() {   try {    size++;    return cs();   } catch(e) {    return size + 1;   }  }  return cs(); };}());


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品电影网在线观看| 国产日韩欧美视频在线| 亚洲xxxx3d| 亚洲精品美女网站| 美女精品久久久| 亚洲国产精品推荐| 岛国av一区二区在线在线观看| 26uuu另类亚洲欧美日本老年| 亚洲三级 欧美三级| 中文字幕欧美日韩精品| 伊人久久久久久久久久久久久| 国产视频在线观看一区二区| 久久精品国产亚洲7777| 日韩在线视频线视频免费网站| 国产精品夜色7777狼人| 久久久久国产精品免费| 亚洲精品电影在线观看| 欧美在线亚洲在线| 亚洲国产精品久久精品怡红院| 欧美高清视频在线播放| 亚洲一区二区免费| 亚洲网站在线观看| 欧美在线观看网址综合| 91热精品视频| 91久久久亚洲精品| 成人天堂噜噜噜| 国产日韩欧美成人| 国产精品永久在线| 91日韩在线视频| 国产精品流白浆视频| 91色在线观看| 亚洲自拍偷拍色片视频| 国产精品久久久久不卡| 国产亚洲a∨片在线观看| 亚洲tv在线观看| 亚洲成年人在线| 亚洲人成在线观看网站高清| 国产suv精品一区二区三区88区| 91在线看www| 69av成年福利视频| 久久香蕉国产线看观看av| 亚洲另类欧美自拍| 欧美激情综合亚洲一二区| 欧美午夜影院在线视频| 97avcom| 国产精品久久久久久久av电影| 亚洲自拍欧美另类| 久久中文字幕国产| 精品网站999www| 91国产一区在线| 日韩视频一区在线| 国产91免费观看| 久久久久久久网站| 亚洲成人精品视频在线观看| 国产成人a亚洲精品| 91香蕉嫩草神马影院在线观看| 欧美精品在线免费观看| 亚洲人成电影网站色| 亚洲精品久久久久久久久| 亚洲人成77777在线观看网| 欧美日韩免费区域视频在线观看| 欧美日韩色婷婷| 中文字幕日韩欧美精品在线观看| 亚洲第一视频网站| 日韩av在线高清| 久久久最新网址| 国产欧美精品一区二区| 亚洲精品国产精品久久清纯直播| 国产一区二区三区日韩欧美| 日韩中文字幕视频在线| 国产精品免费在线免费| 国产精品高清网站| 欧美精品免费在线| 亚洲а∨天堂久久精品喷水| 国产成人高清激情视频在线观看| 91sa在线看| 在线免费观看羞羞视频一区二区| 91久久久久久久久久| 亚洲精品www久久久久久广东| 奇门遁甲1982国语版免费观看高清| 久久久久久亚洲精品不卡| 九九精品视频在线观看| 国产91网红主播在线观看| 亚洲乱码一区av黑人高潮| 91po在线观看91精品国产性色| 伊人久久久久久久久久| 国产91精品网站| 日韩最新中文字幕电影免费看| 国产一区在线播放| 亚洲国产精品va在线观看黑人| 91亚洲国产成人久久精品网站| 日韩中文字幕在线看| 欧美激情一区二区久久久| 成人久久18免费网站图片| 97精品视频在线播放| 久久久久久久久久久久av| 在线电影av不卡网址| 色琪琪综合男人的天堂aⅴ视频| 国产精品情侣自拍| 久久久久久久91| 亚洲xxxxx电影| 国产精品网址在线| 久久久久亚洲精品| 久久九九全国免费精品观看| 久久av红桃一区二区小说| 岛国av一区二区三区| 国产在线视频欧美| 久久久久久久久久av| 欧美精品在线免费观看| 亚洲精品午夜精品| 欧美日韩xxxxx| 成人久久久久久| 亚洲激情小视频| 国模叶桐国产精品一区| 亚洲精品午夜精品| 中文国产成人精品久久一| 成人做爰www免费看视频网站| 欧美精品福利在线| 亚洲欧美精品在线| 国产精品久久久久91| 亚洲在线第一页| 日韩中文字幕av| 久久久久久久电影一区| 亚洲精品欧美日韩| 国内精品国产三级国产在线专| 亚洲一区二区三区四区在线播放| 超薄丝袜一区二区| 另类专区欧美制服同性| 77777少妇光屁股久久一区| 日韩精品在线影院| 久久福利视频网| 欧美午夜精品久久久久久浪潮| 色先锋资源久久综合5566| 午夜精品久久久久久久男人的天堂| 日韩在线观看成人| 日韩国产欧美精品一区二区三区| 成人av在线亚洲| 亚洲小视频在线| 中文字幕av一区中文字幕天堂| 久久久久久久网站| 亚洲成人av在线播放| 国产精品va在线| 欧美一区三区三区高中清蜜桃| 亚洲欧美日韩图片| 亚洲国产美女久久久久| 欧美精品在线播放| 久久香蕉国产线看观看网| 国产精品视频专区| 日韩大片免费观看视频播放| 91久久久久久国产精品| 日韩美女福利视频| 日韩精品在线第一页| 成人做爰www免费看视频网站| 精品福利樱桃av导航| 日韩电影大全免费观看2023年上| 少妇久久久久久| 久久久久免费视频| 日韩在线观看免费高清完整版| 亚洲综合视频1区| 最近2019中文字幕在线高清| 国产69精品99久久久久久宅男| www日韩欧美| 日韩av在线网站| 精品偷拍一区二区三区在线看|