为什么“console.log(parseInt(0o22,8))”显示“1”
答
0oNNN
是用于字面八进制数字的ECMAScript 2015语法。
0o22
是18
十进制。 parseInt
需要一个字符串,因此该整数18
被强制为十进制字符串'18'
的parseInt
。并且由于8
不在碱-8,parseInt
捞出第一个数字之后的有效数位,并返回1.
从MDN文档parseInt
:
如果
parseInt
遇到一个字符不是数字在指定的基数中,它会忽略它和所有后续字符,并返回解析到该点的整数值。parseInt
将数字截断为整数值。前后空格是允许的。
参见:How do I work around JavaScript's parseInt octal behavior?
你不必重复你的问题三次:) –