-4
爲什麼console.log(parseInt(0o22,8))
輸出1
?爲什麼「console.log(parseInt(0o22,8))」顯示「1」
爲什麼console.log(parseInt(0o22,8))
輸出1
?爲什麼「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?
你不必重複你的問題三次:) –