我有以下代码
var number = 0618260587
JSON.stringify(number)
字符串化结果为618260587,第一个零自动截断。
我尝试了以下修复
if(number.length<8)
{
var book1 = "0" + number;
alert(book1);
但它警告未定义。我不确定
1)为什么字符串化数据会截断第一个零 2)我认为javascript添加了两个变量而不管类型
答案 0 :(得分:5)
前导零是显示内容,通常不是数字的一部分。每个数字之前/之后都有无数个不可见的零,但它们通常不会显示。如果您想要前导零,请将数字视为字符串:
var number = '0618260587';
同样,在大多数情况下,具有前导零的数字被视为八进制,而不是十进制。裸露的前导零会导致难以跟踪的错误 - 因为这对你来说看起来像小数,但它与解释器的数字完全不同,例如..
0618260587 octal = 1616431 decimal