JavaScript 将 int 转换为 String

JavaScript convert int to String

本文关键字:String 转换 int JavaScript      更新时间:2023-09-26

我在JavaScript中面临着奇怪的转换:

    function getFromDatabase(){
      //the result may be gotten from database or some complex methods and CANT be changed!
      return 000000;
    }
    var param = getFromDatabase();
    alert(param);// -> 0        
    alert(param.toString());// -> 0         
    alert("" +param + "");// -> 0       
如何获得 000000

或"000000"?

如果要区分 000000 和 0,则不能。 000000 在离开函数之前"转换"为 0。

如果要打印前导零,请尝试类似

function intToLeadingZerosString(myint){
  var s= myint.toString(10);
  return Array( 6-s.length+1 ).join("0") + s;
}
alert(intToLeadingZerosString(param));

或:

Number.prototype.toStringLeading = function() {
   var s = this.toString(10);
   return Array( (arguments.length?arguments[0]:6)-s.length+1 ).join("0") + s;
};
alert(param.toStringLeading(6));
alert(param.toStringLeading());

为什么在返回它时不将其转换为字符串?因为,返回语句发送的值将按"按值复制"的概念返回。此外,它通过复制它(即按值复制)分配给参数。因此,000000 仅转换为 0。之后,将其转换为字符串将为"0"。

    function getFromDatabase(){
      return '000000'; 
    }
    var param = getFromDatabase();      
    alert(param);// -> 000000         
    alert(isNaN(param)?"":parseInt(param));// -> 0

返回为字符串,然后根据需要将其转换为 int。这将是处理方案的最佳方式。

因为你的函数返回'int'值。尝试改变return '000000';