js parseInt()函数中的问题。。

今天在看《javascript 高级程序设计》时,

与我的输出结果不符合,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script>
        document.writeln(parseInt("11",8)); //9
        document.writeln(parseInt('1234fdas')); //1234
        document.writeln(parseInt("")); //NaN
        document.writeln(parseInt("0xA"));  //10
        document.writeln(parseInt(22.4));   //22
        document.writeln(parseInt("017"));  //10
        document.writeln(parseInt("80"));   //80
        document.writeln(parseInt("0xf"));  //15
    </script>
</head>
<body>

</body>
</html>

为什么会不一样呢?

在书的下面发现。

也在MDN中找到依据。

ECMAScript 5 移除了八进制解析

ECMAScript 5 规范不再允许parseInt函数的实现环境把以0字符开始的字符串作为八进制数值

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt

原文地址:https://www.cnblogs.com/tumio/p/4856187.html