javascript returns 9 代表 0011

javascript returns 9 for 0011

我有一个动态传递值的函数

<a href="javascript:void(0);" onclick="searchError(0011)">0011</a>

在 javascript 中,我只是传递这个值,它 returns 我 9

JS

function searchError(s){
        alert(s);           
}

需要帮助来理解为什么?

我通过引用

这样的值来修复它
<a href="javascript:void(0);" onclick="searchError('0011')">0011</a>

JS Fiddle

0011 是一个 octal number 因为它有一个最左边的 0 所以它等于 0 x 82 + 1 x 81 + 1 x 80 = 9。最初该值被解释为数字。将它括在引号中导致它被视为字符串文字。