今天在看《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