[JavaScript]JavaScript call stack overflow

摘要:[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 還多..

 

麻煩有知道問題在哪邊的可以幫我解答一下..


如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!