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); }
相關文章
- js迴圈中reduce的用法簡單介紹JS
- 簡單介紹nginx 變數使用Nginx變數
- 簡單的加減乘除(遞迴)遞迴
- JavaScript之遞迴的簡單使用JavaScript遞迴
- 簡單介紹js 陣列 fill() 填充方法JS陣列
- Webpack 的簡單介紹Web
- AOP的簡單介紹
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- 簡單介紹Lua中三種迴圈語句的使用
- form表單的簡單介紹ORM
- Flownet 介紹 及光流的簡單介紹
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- Map簡單介紹
- JSON簡單介紹JSON
- ActiveMQ簡單介紹MQ
- 函子的簡單介紹
- 簡單介紹Vue中使用js-cookie詳情VueJSCookie
- 用遞迴求出最大公約數和最小公倍數,求補充最小公倍數的遞迴用法遞迴
- 二分法的簡單實現——-遞迴和非遞迴遞迴
- 簡單介紹Linux環境變數檔案Linux變數
- Git_簡單介紹Git
- jQuery Validate簡單介紹jQuery
- JSON物件簡單介紹JSON物件
- <svg>元素簡單介紹SVG
- 簡單介紹 ldd 命令
- 禪道簡單介紹
- Apache Curator簡單介紹Apache
- spark簡單介紹(一)Spark