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