摘要:本文討論關於js中萬能的調試函數alert的長度問題
前言:
js中萬能的調試工具alert可謂是屢試不爽的利器,不過今天在調試的時候意外發現一個很有意思的問題,在這里和大家一起討論。
鑒於作者js菜鳥一枚,還望高手指點一二。
alert出問題了?
今天下午在把ajax返回的數據拼裝成字符串,以便減少對DOM的多次插入問題的時候,alert拼裝成的字符串的時候發現,字符串不完整,貌似被自動截斷了,剛開始以為是js中的字符串難到還有長度限制,晚上回去的時候測試了一下,alert與字符串的問題。
測試代碼:這里采用for循環1000次拼裝成一個字符串,然后alert
<div id='count' width=100% height=30 style="background:red; font-size:30"></div> <script type="text/javascript"> var html =""; for(i=0;i<10000;i++){ html +=''+i+'abcdefghij' } alert(html) document.getElementById("count").innerHTML = html; </script>
alert測試的截圖:
可以看到這個字符串很明顯被截斷了:字符串最后幾個是774abcdefghij775abcdefghij776abcdefghij777abcdef
也就是alert只顯示了778次的循環值,
在看我這個這個拼接的字符串顯示在頁面的截圖:
字符串正好是循環10000次的字符串值,說明js中的字符串目前沒有長度限制的。
那么alert字符串難道有字符串限制?
我們錯了計算一下alert出了多長的字符串
10*777+ 6 +10 +90*2+ 678*3=10000字符
一個英文占一個字節,那么這個字符串的長度是10000字節/1024大約是10kb
但是為什么會是這樣呢?
自己在百度谷歌搜索alert長度 卻得到不到答案,也沒有相關資源,
博客園里有很多人寫js教程,希望js高手幫我解析一下,為什么萬能的alert有長度限制?
本文標題有標題黨嫌疑,但是為了解決這個問題,各位就見諒了