摘要:[JavaScript]JavaScript call stack overflow
最近在寫hybrid app的功能時,有時候會遇到明明在pc 上的browser可以執行,但在行動裝置上就是會有js錯誤的情形
查了一下發現有JavaScript call stack overflow的問題發生,導致在呼叫時候可能會有錯誤
寫了簡單一段js在pc上面跟iOS上面跑檢查stack size
var stackCnt=0;
try{
doTest();
}catch(err)
{
console.log(stackCnt+":"+err.message);
}
function doTest(){
stackCnt++;
doTest2();
}
function doTest2(){
stackCnt++;
doTest();
}
跑出來的結果如下:
-
chrome:
25166:Maximum call stack size exceeded -
iOS:
65534:Maximum call stack size exceeded
WTF?為什麼iOS比chrome多還會出錯??
根據這位大師
http://www.nczonline.net/blog/2009/05/19/javascript-stack-overflow-error/
- Internet Explorer 7: 1,789
- Firefox 3: 3,000
- Chrome 1: 21,837
- Opera 9.62: 10,000
- Safari 3.2: 500
實在有點不太相信為什麼我的手機跑出來會比其他舊版的PC上的Browser 還多..
麻煩有知道問題在哪邊的可以幫我解答一下..
如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!