为什么JavaScript会减零?

为什么JavaScript会减零?,javascript,string,number-formatting,Javascript,String,Number Formatting,我有一个简单的函数,可以在数字之前添加零: function validateString(length, str){ var newStr = '' + str; for (var i = str.length; i < length; i++) newStr = '0' + newStr; return newStr; } 发生这种情况是因为您正在调用str.length,而不是newStr.length。数值具有未定义的长度 更改:

我有一个简单的函数,可以在数字之前添加零:

function validateString(length, str){
    var newStr = '' + str;
       for (var i = str.length; i < length; i++)
          newStr = '0' + newStr;
    return newStr;
}

发生这种情况是因为您正在调用
str.length
,而不是
newStr.length
。数值具有未定义的长度

更改:

for (var i = str.length; i < length; i++)
for(var i=str.length;i
致:

for(var i=newStr.length;i

函数验证字符串(长度,str){
var newStr=''+str;
for(var i=newStr.length;ilog(validateString(12,'2'))
您的预期结果是
000000000002
?数字不能以0开头,这就是为什么您必须使用字符串。非常感谢
for (var i = str.length; i < length; i++)
for (var i = newStr.length; i < length; i++)