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

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

与我的输出结果不符合,

<!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>

为什么会不一样呢?

在书的下面发现。

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

也在MDN中找到依据。

ECMAScript 5 移除了八进制解析

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

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

05-11 16:54