如何解决JavaScript的parseInt八进制行为?
尝试在JavaScript中执行以下操作: parseInt('01'); //equals 1 parseInt('02'); //equals 2 parseInt('03'); //equals 3 parseInt('04'); //equals 4 parseInt('05'); //equals 5 parseInt('06'); //equals 6 parseInt('07'); //equals 7 parseInt('08'); //equals 0 !! parseInt('09'); //equals 0 !! 我刚刚了解到JavaScript认为前导零表示八进制整数的困难方式,并且由于在基数8中没有"8"或"9",所以该函数返回零。是否喜欢,这是设计使然。 有哪些解决方法? 注意:为了完整起见,我将发布一个解决方案,但这是我讨厌的解决方案,因此请发布其他/更好的答案。 更新: JavaScript标准的第5版(ECMA-262)引入了一项重大更改,消除了此行为。Mozilla有一个很好的写了。