Javascript警报号码从0开始

Rob*_*ger 2 javascript

我有一个按钮,在后面的代码我添加一个onclick,我传递一个唯一的ID,将传递给js函数.id以0开头.

它没有工作,最终我发现数字,身份证,传递是错误的......

IE浏览器.看到这个:js小提琴

它与数字的开头和结尾一起使用.只是想知道为什么013转到11.我做了一些谷歌搜索,找不到任何东西......

干杯

知更鸟

编辑:

多谢你们.是的,现在明白了.

在这种情况下,开头的0有一个含义,这里是邮件列表中的收件人ID,我将使用'013'而不是013,即一个字符串.然后我可以在js中拆分值,因为3个值中的每一个代表一个不同的id,它总是只有1个字符长,即0-9.

nnn*_*nnn 8

以a开头的数字文字0被视为八进制数.所以基地8的13是基地10的11 ...

八进制数字文字已被弃用,但如果您未处于严格模式,则仍可使用.

(你没有问,但是)以数字文字开头的数字文字0x被视为十六进制.

更多信息在MDN.

在您的演示中调用参数id,这意味着您不需要对其进行数值运算 - 如果是这样,只需将其放在引号中并将其用作字符串即可.

如果你需要能够传递前导零,但仍然将数字视为基数10来对其进行数值运算,则可以将其括在引号中以将其作为字符串传递,然后将字符串转换为数字,方式为部队基地10,例如:

something('013');

function something(id){    
    alert(+id);             // use unary plus operator to convert
    // OR
    alert(parseInt(id,10)); // use parseInt() to convert        
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/XYa6U/5/