Javascript 如何获取带前导零的数字的位数

Javascript 如何获取带前导零的数字的位数,javascript,Javascript,对于普通数字,如var a=123,很容易计算位数(使用a.toString().length),但是如果var a=00123,该怎么办?(假设它仍然是十进制的)。如果有一个简单的解决方案,您可能会遇到一些问题。首先输入带前导零的数字值,其解释将与预期不同。一般来说,它不会以十进制格式存储数字,而是以八进制或其他一些基数存储。如果只想获得该值的长度,则需要将其存储为字符串 var a = '00123'; console.log(a.length); 请记住,如果不将其存储为字符串,则数字可

对于普通数字,如
var a=123
,很容易计算位数(使用
a.toString().length
),但是如果
var a=00123
,该怎么办?(假设它仍然是十进制的)。

如果有一个简单的解决方案,您可能会遇到一些问题。首先输入带前导零的数字值,其解释将与预期不同。一般来说,它不会以十进制格式存储数字,而是以八进制或其他一些基数存储。如果只想获得该值的长度,则需要将其存储为字符串

var a = '00123';
console.log(a.length);
请记住,如果不将其存储为字符串,则数字可能不会存储为十进制

这是一个常见的Javascript问题,有一个简单的解决方案:

只需指定基数或“基数”,如下所示:

parseInt('000123',10); // 123
您也可以使用数字:

Number('000123'); // 123

据我所知,
a=00123
123
存储在
a
中。实际上,
a=00123
83
存储在
a
中。(它是一个八进制常量。)除非您处于严格模式,否则这是一个语法错误。对于ECMAScript 5中的parseInt(),前导零的字符串将不会被视为八进制。