js支援的最大遞迴次數簡單介紹
可能很多朋友對js能夠支援最大的遞迴次數比較感興趣,下面就簡單做一下介紹,希望能夠給需要的朋友帶來幫助,最好自己在本地進行一下相關的測試,這才能夠給自己深刻的印象。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function computeMaxCallStackSize(){ try{ return 1 + computeMaxCallStackSize(); } catch (e){ // Call stack overflow return 1; } }
測試結果如下:
[JavaScript] 純文字檢視 複製程式碼Node.js: 11034 Firefox: 50994 Chrome: 10402
在V8中,遞迴呼叫的數量取決於兩個量:堆疊的大小和堆疊幀(儲存引數的區域性變數)的大小。可以通過在computeMaxCallStackSize() 新增區域性變數進行驗證,它會返回低位值。
ECMAScript6中的尾部呼叫(Tail call)優化:
ES6有尾部呼叫優化:如果一個函式中的最後一步也是一個函式呼叫,它會被“跳”過,而不是通過子函式呼叫。這就意味著在ES6(嚴格模式)下,你只要稍微改一下computeMaxCallStackSize函式,它就可以永遠執行下去。
[JavaScript] 純文字檢視 複製程式碼function computeMaxCallStackSize(size) { size = size || 1; return computeMaxCallStackSize(size + 1); }
相關文章
- javascript遞迴概念簡單介紹JavaScript遞迴
- js函式引數值傳遞和引用傳遞簡單介紹JS函式
- js迴圈中reduce的用法簡單介紹JS
- js如何退出迴圈語句簡單介紹JS
- javascript獲取數字中最大的一個簡單介紹JavaScript
- setTimeout()呼叫的函式傳遞引數簡單介紹函式
- JSON簡單介紹JSON
- nodejs簡單介紹NodeJS
- JSON物件簡單介紹JSON物件
- js WebSocket用法簡單介紹JSWeb
- angularJS的router用法簡單介紹AngularJS
- require.js的作用簡單介紹UIJS
- JSON的優點簡單介紹JSON
- javascript 變數簡單介紹JavaScript變數
- margin引數簡單介紹
- margin 引數簡單介紹
- 遞迴的簡單應用遞迴
- js字串連線簡單介紹JS字串
- js cookie路徑簡單介紹JSCookie
- js 特權方法簡單介紹JS
- js短路運算簡單介紹JS
- js與&&運算子簡單介紹JS
- js isNaN函式的用法簡單介紹JSNaN函式
- js中大括號{}的用法簡單介紹JS
- js eval()函式的用法簡單介紹JS函式
- js如何阻止表單提交簡單介紹JS
- 簡單介紹nginx 變數使用Nginx變數
- javascript變數宣告簡單介紹JavaScript變數
- javascript變數汙染簡單介紹JavaScript變數
- JavaScript之遞迴的簡單使用JavaScript遞迴
- 簡單的加減乘除(遞迴)遞迴
- 簡單介紹一下 JSONJSON
- js style.cssText用法簡單介紹JSCSS
- js事件委託原理簡單介紹JS事件
- js isPrototypeOf()函式用法簡單介紹JS函式
- node.js操作mongodb簡單介紹Node.jsMongoDB
- ReactJs環境配置簡單介紹ReactJS
- 是什麼JSON,簡單介紹JSON