Javascript代码段崩溃了网络浏览器

时间:2013-09-15 18:30:03

标签: javascript

普通网页的<head>标记中的这个代码段崩溃了我使用过的浏览器:

function insert(str, position, insert) {
    var current = str;
    var start = current.slice(0, position);
    var end = current.slice(position, current.length);
    return start + insert + end;
};

var str = "1000";
var nbd = str.length;
var mod = nbd%3;

for (var i = mod; i < str.length; i+3) {
    str = insert(str,i,",");
}

console.log(str);
console.log("mod: " + mod); 

如果函数insert是字符串的原型,那么它也会崩溃:

String.prototype.insert(position, insert) {
    var current = this;
    var start = current.slice(0, position);
    var end = current.slice(position, current.length);
    return start + insert + end;
}

2 个答案:

答案 0 :(得分:1)

for循环中的

i不会递增。使用:

for (var i = mod; i < str.length; i = i+3) ...

答案 1 :(得分:1)

你在for()循环中向i添加了三个,但是该值不会保存回i。 for循环中的第三个子句应该是i + = 3,将3加回到变量i。