我需要用javascript构造一个长字符串.多数民众赞成我试图这样做:
var html = '<div style="balbalblaba"> </div>';
for(i = 1; i <= 400; i++){
html+=html;
};
Run Code Online (Sandbox Code Playgroud)
当我在firefox中执行它时,它会花费很长时间或者让它崩溃.最好的方法是什么?通常什么是在JS中构造大字符串的最佳方法.
有人能帮我吗?
ken*_*ytm 12
我猜你的意思html += html;.
如果你这样做,你的html字符串的长度将是37×2 400 = 9.5×10 121,超出任何浏览器的限制,在任何[1]已知宇宙可以处理的任何计算机上.
如果您只想重复该字符串400次,请使用
var res = "";
for (var i = 0; i < 400; ++ i)
res += html;
return res;
Run Code Online (Sandbox Code Playgroud)
要么
var res = [];
for (var i = 0; i < 400; ++ i)
res.push(html);
return res.join("");
Run Code Online (Sandbox Code Playgroud)
有关更多选项,请参阅重复字符串 - Javascript.
[1]:与"这个宇宙"一样.
在某些浏览器中,字符串连接非常慢(咳嗽 IE6*咳嗽*).加入数组应该比使用连接循环快得多:
var arr = new Array(401);
var html = arr.join('<div style="balbalblaba"> </div>');
Run Code Online (Sandbox Code Playgroud)