为什么console.log(parseInt(0o22,8))
输出1
?
答案 0 :(得分:10)
0oNNN
是文字八进制数字的ECMAScript 2015语法。
0o22
的小数为18
。 parseInt
需要字符串,因此18
将此整数'18'
强制转换为parseInt
的十进制字符串8
。由于parseInt
不是base-8中的有效数字,parseInt
在第一个数字后退出并返回1.
来自parseInt
的MDN文档:
如果
parseInt
遇到的字符不是指定基数中的数字,它会忽略它和所有后续字符,并返回解析到该点的整数值。pg_dump --host localhost --port 5432 --username postgres --dbname test-new >D:\test5.sql psql --host localhost --port 5432 --username postgres --dbname test-qa < file.sql
将数字截断为整数值。允许前导和尾随空格。
另请参阅:How do I work around JavaScript's parseInt octal behavior?