我有一个按钮,在后面的代码中我添加了一个onclick
,并且我传递了一个将传递给js函数的唯一ID。该ID以0以0开头的Javascript提醒号码
它不工作开始,最终我想通了,数,ID,它是通过错了...
IE浏览器。看到这个:js fiddle
它与数字的开头和结尾的'一起工作。只是想知道为什么013变成11.我做了一些谷歌搜索,但没有找到任何东西...
干杯
罗宾
编辑:
谢谢你们。是的,现在明白了。
正如在这种情况下,0在开始时有一个含义,这里是邮件列表中的收件人ID,我将使用'013'而不仅仅是013,即一个字符串。然后,我可以在js中拆分这些值,因为这三个值中的每一个代表了一个不同的id,它总是只有1个字符长,即0-9。
Javascript不会将'08'视为一般的八进制,只有'parseInt'。其他将字符串转换为数字的方法也很好,例如, 'Number('08')','+('08')','1 *'08''全部返回'8',而'parseInt('08')'返回'0'。将前导零表示为八进制是可选的,但大多数浏览器似乎仍在继续实现它。 – RobG
@RobG看到我的小提琴:[https://jsfiddle.net/Lc9ktzn1/](https://jsfiddle.net/Lc9ktzn1/)parseInt将数字解析为基数10,无论如何。同样在那个小提琴上 - 如果一个数字有8个,即使它以0开始,它也不能被解释为基数8,所以javascript将其作为基数10。 – Jan
@ Jan - 这是2012年的规格从那以后发生了变化。虽然ES5在2011年6月成为标准,但大多数浏览器都不符合标准,并且在一段时间内继续遵循ECMA-262的八进制数字行为。但是,现在ECMA-262第6版是规范,看起来现代浏览器至少符合规范。但是仍然有一个很好的数字,其中前导'0'表示parseInt的八进制数。 ;-) – RobG