有人能帮我理解为什么会这样吗?

jua*_*uan 2 html javascript

我碰到了我遇到过的最奇怪的事情.

考虑这个测试页面:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
    <script language=javascript>
        function test(myParameter) {
            alert(myParameter);
        }
    </script>
</head>
<body>
    <input type="button" value="Strange" onclick="javascript: test(044024);" />
    <input type="button" value="Ok" onclick="javascript: test('044024');" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我点击"奇怪"按钮,我得到18452,如果我点击"确定"按钮我得到044024

有谁知道发生了什么并向我解释?

Ant*_*ley 14

由于前导0,Javascript将符号044024解释为八进制值.

044024十月到十二月是18452

  • @ d03boy:据我所知,由于故意做出决定或者代码生成过于繁琐,所以前导零只能在那里.它不可能偶然发生,真的,所以我想我不会把它归类为"可怕的设计失败". (2认同)

Mil*_*kov 5

前缀为0的数字被认为是八进制(基数为8)