Javascript与具有前导零的值的行为不同。 警报(b) - 打印不同的值。
var a = 67116;
var b = 00015;
alert(a);
alert(b);
我更感兴趣知道javascript里面警报(b)在这里应用了什么转换? (如果我用双引号它们。它们工作正常。)
答案 0 :(得分:4)
答案 1 :(得分:3)
前导0
使值成为八进制文字,因此您输入的值将被解释为基数为8的整数。
换句话说,015
将等同于parseInt('15', 8)
。
答案 2 :(得分:1)
正如其他答案所说,前导零使数字成为八进制文字。八进制“15”的十进制表示为“13”。
请注意,除非您真的希望将它们解释为八进制,否则没有理由在数字文字上使用前导零。我的意思是,不要使用var b = 00015
。如果您从用户输入获得该值,那么它将是一个字符串(即"00015"
),您可以使用parseInt
转换为十进制数字:
var b = "00015"; // or var b = document.getElementById('some_input').value
var numB = parseInt(b, 10); // 15